{"_id":"@alanarantes/mcp-ftp-server","_rev":"2-097981dcfeccf3d643e2414095518008","name":"@alanarantes/mcp-ftp-server","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@alanarantes/mcp-ftp-server","version":"1.0.0","keywords":["mcp","model-context-protocol","ftp","ftps","npx"],"author":{"name":"Alan Arantes"},"license":"MIT","_id":"@alanarantes/mcp-ftp-server@1.0.0","maintainers":[{"name":"alanarantes","email":"alanarantes@gmail.com"}],"bin":{"mcp-ftp-server":"build/index.js"},"dist":{"shasum":"58f14a2aa10788def46fd2847f9b0946d10bfaf0","tarball":"https://registry.npmjs.org/@alanarantes/mcp-ftp-server/-/mcp-ftp-server-1.0.0.tgz","fileCount":6,"integrity":"sha512-t5kW0vMyh2nlhIN14zRG0oPDjoSJwU5xFfk0JPQOcVT6vdqtikzbDYuPLLgUpEqFf0DCroSmH5d4b6NKNJsCvQ==","signatures":[{"sig":"MEUCIQDMc/RMhP/i3TNPhjMjn7AvFZXGX3GWUf8yxqjBQJKBMAIgK2rrPekxw4kSRvBd9oB5nnccVM6wfkjVlGvnk9YvBLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13333},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"01ccb074cbbf527c7485ca71b6b4d7d0cced94f2","scripts":{"build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"alanarantes","email":"alanarantes@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server providing FTP remote filesystem operations for LLMs","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.5","basic-ftp":"^5.0.5","@modelcontextprotocol/sdk":"^1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ftp-server_1.0.0_1784596901088_0.8289749519411704","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alanarantes/mcp-ftp-server","version":"1.0.1","description":"MCP server providing FTP remote filesystem operations for LLMs","main":"build/index.js","type":"module","bin":{"mcp-ftp-server":"build/index.js"},"scripts":{"build":"tsc","prepublishOnly":"npm run build","start":"node build/index.js","mock-server":"npm run build && node build/mock-server.js"},"keywords":["mcp","model-context-protocol","ftp","ftps","npx"],"author":{"name":"Alan Arantes"},"license":"MIT","dependencies":{"@alanarantes/mcp-ftp-server":"^1.0.0","@modelcontextprotocol/sdk":"^1.5.0","basic-ftp":"^5.0.5","dotenv":"^16.4.5","zod":"^3.24.1"},"devDependencies":{"@types/node":"^22.10.1","ftp-srv":"^4.6.3","typescript":"^5.7.2"},"gitHead":"d5abb830bf1a72ddc29a18e060ed915360ba589f","types":"./build/index.d.ts","_id":"@alanarantes/mcp-ftp-server@1.0.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-jrra0hkWnqCdL8dbo/wZEKZq8Xa5TlxMIq1w/3Qu/WYjwAMd8skE3dJAWzs5dIXLFr57tvMyc0eIbN7PkjGrVQ==","shasum":"0f502f30066bed24aaee24aafbf5023302a77581","tarball":"https://registry.npmjs.org/@alanarantes/mcp-ftp-server/-/mcp-ftp-server-1.0.1.tgz","fileCount":8,"unpackedSize":15659,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqtFvHA6TpVhpqW867/NrEG82m9z/Z+macAThhrcXdAAIgTZITN9uz5dKJmJZ7queGuBdvaxlkkCfPtZvuXoMzPTA="}]},"_npmUser":{"name":"alanarantes","email":"alanarantes@gmail.com"},"directories":{},"maintainers":[{"name":"alanarantes","email":"alanarantes@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-ftp-server_1.0.1_1784602129578_0.8718751279764487"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T01:21:40.978Z","modified":"2026-07-21T02:48:49.901Z","1.0.0":"2026-07-21T01:21:41.218Z","1.0.1":"2026-07-21T02:48:49.765Z"},"author":{"name":"Alan Arantes"},"license":"MIT","keywords":["mcp","model-context-protocol","ftp","ftps","npx"],"description":"MCP server providing FTP remote filesystem operations for LLMs","maintainers":[{"name":"alanarantes","email":"alanarantes@gmail.com"}],"readme":"# @alanarantes/mcp-ftp-server\n\nAn official [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that provides LLMs with remote FTP/FTPS filesystem access (browse, read, upload, delete, create directories).\n\nDesigned to be executed directly via `npx` without persistent local installation.\n\n---\n\n## Quick Start (npx)\n\nYou can run this server directly using `npx`:\n\n```bash\nnpx -y @alanarantes/mcp-ftp-server\n```\n\n---\n\n## Testing with Local Mock FTP Server\n\nYou can run an isolated local FTP server to test all MCP tools (`ftp_list`, `ftp_read`, `ftp_write`, etc.) without needing a remote FTP host:\n\n1. Start the local mock server:\n   ```bash\n   npm run mock-server\n   ```\n   *This starts an FTP server at `ftp://127.0.0.1:2121` serving a virtual test directory `./test-ftp-root`.*\n\n2. Configure your MCP client to connect to the mock server:\n   ```json\n   {\n     \"mcpServers\": {\n       \"ftp\": {\n         \"command\": \"npx\",\n         \"args\": [\"-y\", \"@alanarantes/mcp-ftp-server\"],\n         \"env\": {\n           \"FTP_HOST\": \"127.0.0.1\",\n           \"FTP_PORT\": \"2121\",\n           \"FTP_USER\": \"test\",\n           \"FTP_PASSWORD\": \"password\"\n         }\n       }\n     }\n   }\n   ```\n\n---\n\n## Integration with MCP Clients\n\n### Claude Desktop Configuration\n\nAdd the following to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ftp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alanarantes/mcp-ftp-server\"],\n      \"env\": {\n        \"FTP_HOST\": \"ftp.example.com\",\n        \"FTP_PORT\": \"21\",\n        \"FTP_USER\": \"myusername\",\n        \"FTP_PASSWORD\": \"mypassword\",\n        \"FTP_SECURE\": \"false\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Provided MCP Tools\n\n- **`ftp_list`**: List files and directories in a given path.\n- **`ftp_read`**: Read text file content from remote FTP path.\n- **`ftp_write`**: Create or overwrite a file on remote FTP path with given text content.\n- **`ftp_delete`**: Delete a file or directory on remote FTP server.\n- **`ftp_mkdir`**: Create a directory path on remote FTP server.\n\n---\n\n## Publishing to npm\n\nTo publish your own version to npm registry:\n\n1. Update package name in `package.json`.\n2. Login to your npm account:\n   ```bash\n   npm login\n   ```\n3. Build & publish:\n   ```bash\n   npm run build\n   npm publish --access public\n   ```\n\n---\n\n## License\n\nMIT © Alan Arantes\n","readmeFilename":"README.md"}