{"_id":"@cordfuse/sftp-mcp","_rev":"2-15101c941b1b3a539b4d3754c06b86af","name":"@cordfuse/sftp-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@cordfuse/sftp-mcp","version":"0.0.1","keywords":["mcp","model-context-protocol","sftp","ftp","ssh","file-transfer","filesystem","ai-agent"],"author":{"name":"Cordfuse"},"license":"MIT","_id":"@cordfuse/sftp-mcp@0.0.1","maintainers":[{"name":"cordfuse","email":"cordfuseinc@gmail.com"}],"bin":{"sftp-mcp":"dist/index.js"},"dist":{"shasum":"8b24980f78409aaea5929a4afea78b0c82b795af","tarball":"https://registry.npmjs.org/@cordfuse/sftp-mcp/-/sftp-mcp-0.0.1.tgz","fileCount":6,"integrity":"sha512-6vFWxurAXo0oVEX8UPksN79zq5Vd+n4eVlQfmMytlqWxugpvymiuUQwwpQfOwj8DLmav1AQIjOhoGKOTyQPe/w==","signatures":[{"sig":"MEQCIHasqpQRp18MuKREirC5Kv34WyJpbQtq7JQ3MlzHtg2cAiBKdr9VOvC3BWA9dX/Bc+2Ihl2pyWnNm1B0OJrSXCcGzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22955},"main":"dist/server.js","type":"module","engines":{"node":">=20"},"gitHead":"5965586a5acc368e7c9df2e45ad2b14ff78aa247","scripts":{"dev":"tsx src/index.ts","test":"node --test test/*.test.mjs","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"cordfuse","email":"cordfuseinc@gmail.com"},"_npmVersion":"10.9.8","description":"SFTP as a browsable filesystem for AI agents (MCP): list, stat, move, mkdir, delete, batch, upload, download — not just upload/download. Node, stdio + streamable HTTP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.8","basic-ftp":"^5.0.5","ssh2-sftp-client":"^11.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/ssh2-sftp-client":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/sftp-mcp_0.0.1_1783257387810_0.5758158628670984","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@cordfuse/sftp-mcp","version":"0.1.0","description":"SFTP as a browsable filesystem for AI agents (MCP): list, stat, move, mkdir, delete, batch, upload, download — not just upload/download. Node, stdio + streamable HTTP.","type":"module","bin":{"sftp-mcp":"dist/index.js"},"main":"dist/server.js","engines":{"node":">=20"},"publishConfig":{"access":"public"},"keywords":["mcp","model-context-protocol","sftp","ftp","ssh","file-transfer","filesystem","ai-agent"],"scripts":{"build":"tsc","dev":"tsx src/index.ts","typecheck":"tsc --noEmit","test":"node --test test/*.test.mjs","prepublishOnly":"npm run build"},"author":{"name":"Cordfuse"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","basic-ftp":"^5.0.5","ssh2-sftp-client":"^11.0.0","zod":"^3.23.8"},"devDependencies":{"@types/node":"^22.0.0","@types/ssh2-sftp-client":"^9.0.4","tsx":"^4.19.0","typescript":"^5.6.0"},"_id":"@cordfuse/sftp-mcp@0.1.0","gitHead":"69cfa210e1a038404a4e2f253c782c87c8a05632","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-c7lxT02lcQruv7suWIktDdQvTdhuKRDTcWUVFsWzvfGgp9X0D78VgeqSOa+AQy8Zu2I4NvLcR2JFJratR4bzUA==","shasum":"f7cdd07cd1d95802016dee80aececd174116a966","tarball":"https://registry.npmjs.org/@cordfuse/sftp-mcp/-/sftp-mcp-0.1.0.tgz","fileCount":6,"unpackedSize":33356,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA8PpqbuQr/YUa5DpJwL1gHZRpobXd3OA8E8GpLWQo7MAiB1VMT8PU4ff2aTIVkqZJF9ShQAFmH0DnsYtP7R2pzuzQ=="}]},"_npmUser":{"name":"cordfuse","email":"cordfuseinc@gmail.com"},"directories":{},"maintainers":[{"name":"cordfuse","email":"cordfuseinc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sftp-mcp_0.1.0_1783264213897_0.14224631603351123"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-05T13:16:27.537Z","modified":"2026-07-05T15:10:14.400Z","0.0.1":"2026-07-05T13:16:27.975Z","0.1.0":"2026-07-05T15:10:14.027Z"},"author":{"name":"Cordfuse"},"license":"MIT","keywords":["mcp","model-context-protocol","sftp","ftp","ssh","file-transfer","filesystem","ai-agent"],"description":"SFTP as a browsable filesystem for AI agents (MCP): list, stat, move, mkdir, delete, batch, upload, download — not just upload/download. Node, stdio + streamable HTTP.","maintainers":[{"name":"cordfuse","email":"cordfuseinc@gmail.com"}],"readme":"# @cordfuse/sftp-mcp\n\n**SFTP as a browsable, mutable filesystem for AI agents** (MCP) — list, stat,\nmove, mkdir, delete, batch, upload, download. Not just upload/download. Node,\nserved over **stdio** and **streamable HTTP**, zero required native deps.\n\n## Install\n\n```bash\nnpx @cordfuse/sftp-mcp          # stdio (default)\nnpx @cordfuse/sftp-mcp --http   # streamable HTTP on :3901 (PORT to change)\n```\n\nMCP client config (stdio):\n\n```json\n{\n  \"mcpServers\": {\n    \"sftp\": { \"command\": \"npx\", \"args\": [\"-y\", \"@cordfuse/sftp-mcp\"] }\n  }\n}\n```\n\n## Tools\n\n`test_connection` · `list_files` (glob + type filter, sort, recursive) · `stat` ·\n`download_file` · `download_files` · `upload_file` · `delete_file` ·\n`delete_dir` (recursive) · `make_directory` (recursive) · `move` · `chmod`.\n\n## Credentials — 100% per-call, zero config\n\nEvery call names its own target + secret, so one server instance reaches **any\nnumber of SFTP hosts, switched call-to-call**. The secret is **optional**: pass\n`password` or `privateKey` (+ `passphrase`) inline, or **omit it** to use the\nlocal ssh-agent / default `~/.ssh` key (stdio only — keeps keys out of the model).\n\n**Security:** stdio is the safe mode for inline secrets (local, private). Do **not**\nput inline passwords through a public streamable-HTTP endpoint. Built-in: size\ncap, no credential logging, sanitized errors.\n\n## Transports\n\n- **stdio** (default) — Claude Code, Cursor, local agents.\n- **streamable HTTP** (`--http`, `PORT`/`--port`) — stateful sessions, `GET /health`.\n  Prebuilt image: `ghcr.io/cordfuse/sftp-mcp`.\n\nSource + Docker: https://github.com/cordfuse/sftp-mcp\n\n## License\n\nMIT\n","readmeFilename":"README.md"}