](https://mseep.ai/app/alxspiker-mcp-server-ftp)
用于FTP访问的MCP服务器
](https://smithery.ai/server/@alxspiker/mcp-server-ftp)
此模型上下文协议(MCP)服务器提供了与FTP服务器交互的工具。它允许Claude.app在FTP服务器上列出目录、下载和上传文件、创建目录和删除文件/目录。
特性
- 列出目录内容:查看FTP服务器上的文件和文件夹
- 下载文件:从FTP服务器检索文件内容
- 上传文件:创建新文件或更新现有文件
- 创建目录:在FTP服务器上创建新文件夹
- 删除文件/目录:删除文件或目录
安装
通过史密瑟里安装
通过以下方式自动为Claude Desktop安装mcp服务器ftp 史密瑟里:
npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claude先决条件
- Node.js 16或更高版本
- Claude桌面版(或其他MCP兼容客户端)
从源代码构建
Linux/macOS
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Install dependencies
npm install
# Build the project
npm run build视窗
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Run the Windows build helper script
build-windows.bat这 build-windows.bat 该脚本处理Windows系统上的依赖项安装和构建,如果TypeScript编译器有问题,则具有回退选项。
配置
要将此服务器与Claude for Desktop一起使用,请将其添加到配置文件中:
MacOS/Linux
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}视窗
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["C:\\path\\to\\mcp-server-ftp\\build\\index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}Windows内部版本问题疑难解答
如果您在Windows上遇到构建问题:
- 使用提供的
build-windows.bat处理常见构建问题的脚本 - 确保Node.js和npm安装正确
- 尝试直接运行TypeScript编译器:
npx tsc - 如果您仍然有问题,可以使用
build通过运行以下命令访问目录:
node path\to\mcp-server-ftp\build\index.js配置选项
| 环境变量 | 描述 | 默认值 |
|---|---|---|
FTP_HOST | FTP服务器主机名或IP地址 | localhost |
FTP_PORT | FTP服务器端口 | 21 |
FTP_USER | FTP用户名(支持加密) | 匿名 |
FTP_PASSWORD | FTP密码(支持加密) | (空字符串) |
FTP_SECURE | 使用安全FTP(FTPS),在以下情况下忽略 FTP_PROTOCOL=sftp 错误的 | |
FTP_PROTOCOL | 使用协议: ftp 或 sftp | ftp |
FTP_PRIVATE_KEY_PATH | SFTP的SSH私钥路径(例如。 ~/.ssh/id_ed25519) | (自动检测) |
FTP_PASSPHRASE | SSH私钥的密码短语(支持加密) | (空字符串) |
FTP_ENCRYPTION_KEY | 用于解密凭据的64字符十六进制AES-256密钥 | (已禁用) |
SSH/SFTP支持
除了普通的FTP和FTPS,服务器还支持SFTP——SSH文件传输协议——它通过加密的SSH连接运行,与FTPS无关。
集 FTP_PROTOCOL=sftp 将服务器切换到SFTP模式。默认端口更改为 22.
认证
SFTP支持两种自动选择的身份验证方法:
- 私钥 --如果找到密钥(见下文),则将其用于身份验证。
FTP_PASSPHRASE如果密钥受密码保护,则用于解密密钥。 - 密码 --如果没有找到密钥,
FTP_PASSWORD用于密码验证。
关键发现
服务器按以下顺序查找私钥:
- 路径在
FTP_PRIVATE_KEY_PATH(如果设置) ~/.ssh/id_ed25519~/.ssh/id_rsa~/.ssh/id_ecdsa
配置示例
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "sftp.example.com",
"FTP_PORT": "22",
"FTP_PROTOCOL": "sftp",
"FTP_USER": "your-username",
"FTP_PRIVATE_KEY_PATH": "~/.ssh/id_ed25519",
"FTP_PASSPHRASE": "your-key-passphrase"
}
}
}
}FTP_PASSPHRASE 和 FTP_USER 两者都支持 enc: 加密格式--请参阅 凭证加密.
凭证加密
在Claude配置文件中存储明文密码存在安全风险。服务器支持AES-256-GCM加密 FTP_USER 和 FTP_PASSWORD 因此,配置只包含密文。
1.生成加密密钥
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"保守这个密钥的秘密——把它当作主密码。
2.加密凭据值
npm run build
FTP_ENCRYPTION_KEY= npm run encrypt-env --
输出是一个自包含的加密字符串,格式为 enc:::.
3.在配置中使用加密值
集 FTP_ENCRYPTION_KEY 与加密凭证一起。不以开头的值 enc: 被视为明文,因此您可以选择性地加密。
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "enc:aabbcc...:ddeeff...:112233...",
"FTP_PASSWORD": "enc:aabbcc...:ddeeff...:112233...",
"FTP_SECURE": "false",
"FTP_ENCRYPTION_KEY": ""
}
}
}
}用法
配置并重新启动Claude for Desktop后,您可以使用自然语言执行FTP操作:
- “列出FTP服务器上/public目录中的文件”
- “从FTP服务器下载文件/data/report.txt”
- “将此文本作为名为notes.txt的文件上传到FTP服务器”
- 在FTP服务器上创建一个名为“backups”的新目录
- “从FTP服务器中删除obsolete.txt文件”
- “从FTP服务器中删除空目录/旧项目”
可用工具
| 工具名称 | 描述 |
|---|---|
list-directory | 列出FTP目录的内容 |
download-file | 从FTP服务器下载文件 |
upload-file | 将文件上传到FTP服务器 |
create-directory | 在FTP服务器上创建新目录 |
delete-file | 从FTP服务器中删除文件 |
delete-directory | 从FTP服务器中删除目录 |
安全考虑
- 使用 凭证加密 避免在配置文件中存储明文密码的功能。
- 更喜欢SFTP(
FTP_PROTOCOL=sftp)在可能的情况下,通过普通FTP或FTPS——它使用SSH,不需要证书管理。 - 考虑通过设置使用FTPS(安全FTP)
FTP_SECURE=true如果您的服务器支持它,但SFTP不可用。 - 服务器在系统的temp目录中创建用于上传和下载的临时文件。
许可证
麻省理工学院
