{"_id":"@cynosure-mcp/sftp-ssh","name":"@cynosure-mcp/sftp-ssh","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@cynosure-mcp/sftp-ssh","mcpName":"io.github.andreasjhagen/sftp-ssh","version":"1.0.0","description":"MCP server for SFTP file operations and SSH command execution","type":"module","main":"dist/index.js","bin":{"sftp-ssh":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsx src/index.ts"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","ssh2":"^1.17.0","zod":"^3.24.0"},"devDependencies":{"@types/node":"^22.0.0","@types/ssh2":"^1.15.5","tsx":"^4.19.0","typescript":"^5.7.0"},"publishConfig":{"access":"public"},"keywords":["mcp","model-context-protocol","sftp","ssh","remote-files","remote-shell"],"_id":"@cynosure-mcp/sftp-ssh@1.0.0","gitHead":"a114eae53425d9d6ffe88b883a04b2ccabac7e7d","types":"./dist/index.d.ts","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-eMcuQ1JJR3/uZSOtYmSSLSuLgxQjG4Fnm0oo8iaUGHUjSPzFkkoplzyW2Vx6TnrTzMuVPhCceKuv3b2UjqKwbA==","shasum":"51ff3a93b6fc8c6a1505332411db0bf8f3672d5d","tarball":"https://registry.npmjs.org/@cynosure-mcp/sftp-ssh/-/sftp-ssh-1.0.0.tgz","fileCount":7,"unpackedSize":87655,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFqkysW5uFKxJ5ZSvUMPasMkmzAf0G7K3+cP0HAZPXi6AiEA7ffK235P6L07hz/MW4tJFLs5DbfRy4fHXIyjobT3QhA="}]},"_npmUser":{"name":"andjhagen","email":"voidvalkon@gmail.com"},"directories":{},"maintainers":[{"name":"andjhagen","email":"voidvalkon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sftp-ssh_1.0.0_1786486119065_0.3680554781027532"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-11T22:08:38.842Z","1.0.0":"2026-08-11T22:08:39.229Z","modified":"2026-08-11T22:08:39.423Z"},"maintainers":[{"name":"andjhagen","email":"voidvalkon@gmail.com"}],"description":"MCP server for SFTP file operations and SSH command execution","keywords":["mcp","model-context-protocol","sftp","ssh","remote-files","remote-shell"],"readme":"# SFTP and SSH MCP\n\nMCP server for browsing and modifying files over SFTP and executing non-interactive commands over SSH. Both protocols use the same SSH connection settings.\n\n## Tools\n\n- `sftp_list`, `sftp_stat`, `sftp_read`\n- `sftp_write`, `sftp_mkdir`, `sftp_rename`, `sftp_delete`\n- `ssh_exec`\n\n`sftp_delete` is deliberately non-recursive. Set `SFTP_ROOT` to confine all SFTP tools to one remote directory. SSH commands are not confined by `SFTP_ROOT` and run with the configured user's permissions.\n\n## Authentication\n\nSet `SFTP_HOST` and `SFTP_USERNAME`, then provide either `SFTP_PASSWORD`, `SFTP_PRIVATE_KEY_PATH`, or `SFTP_PRIVATE_KEY`. An encrypted key also needs `SFTP_PRIVATE_KEY_PASSPHRASE`.\n\nThe equivalent `SSH_*` variable names are accepted as fallbacks. Set `SSH_HOST_FINGERPRINT` to the server host key's SHA-256 fingerprint in standard OpenSSH `SHA256:base64` or hexadecimal form to prevent machine-in-the-middle attacks.\n\n## MCP config\n\n```json\n{\n  \"mcpServers\": {\n    \"sftp-ssh\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cynosure-mcp/sftp-ssh\"],\n      \"env\": {\n        \"SFTP_HOST\": \"server.example.com\",\n        \"SFTP_USERNAME\": \"deploy\",\n        \"SFTP_PRIVATE_KEY_PATH\": \"/home/me/.ssh/id_ed25519\",\n        \"SFTP_ROOT\": \"/srv/app\",\n        \"SSH_HOST_FINGERPRINT\": \"0123456789abcdef...\"\n      }\n    }\n  }\n}\n```\n\n## Development\n\n```bash\nnpm install\nnpm run build\n```\n","readmeFilename":"README.md","_rev":"1-fb83eb5368b00ec24961283f37884ace"}