ftp mcp
企业级模型上下文协议(MCP)服务器,提供专门针对AI编码助手优化的复杂FTP和SFTP操作。具有智能同步、连接池、目录缓存、统一差异修补和全面的安全控制功能。
为什么存在
您的AI可以:
- 启动VPS
- 安装web服务器
- 构建整个应用程序
…然后在上传文件时遇到困难。
因此,它编写了一个Python脚本。\ 然后忘记它的存在。\ 然后在下次会话中再次写入。
这解决了这个问题。
一个连接。一个电话。完成。
专为AI安装而设计。专为AI使用而设计。
特性
- 连接池和缓存:跨工具调用维持底层连接,并利用严格的内存缓存和智能主动失效,实现低于15ms的极端性能。
- AI优化工具:实现分块(
startLine/endLine)对于大型文件,光标分页limit庞大目录的边界,以及diff-基于FTP原生的本地文件变形,无需拉取大量文件。 - 安全与授权:本地支持SSH密钥交换(直接和代理转发)、密码短语身份验证和显式
readOnly: true配置分析以沙盒危险的修改。 - 智能目录同步:用于最小网络有效负载部署的深度哈希和大小同步算法,包括
--dryRun切换以将差异记录回LLM,而无需修改活动目录。 - Git和节点感知:自动解包
.gitignore和.ftpignore环境。语义评估package.json用于智能上下文摘要。 - AI引导初始化:专门的“AI优先”配置轨道(
--init)它在设置过程中提供了非常详细的指令上下文,确保AI助手将服务器功能和操作限制直接吸收到他们的工作内存中。 - 交互式初始化器:通过CLI为人类用户原生构建简单的配置框架。
- 审计日志:稳健的仪器生成结构化
.ftp-mcp-audit.log所有文件系统突变的痕迹。 - 全面的E2E测试:基于节点的MCP IO测试编排持续验证有保证的操作功能。
快速开始
1.安装并初始化
在目标项目目录中运行此命令以安全地构建配置:
npx ftp-mcp --init这将运行一个交互式初始化向导,删除 .ftpconfig 将实例本机导入您的工作目录。然后全局安装该包,以便您的MCP客户端可以全局访问它:
npm install -g ftp-mcp2.配置凭据
选项A:项目配置文件(推荐)
你的 .ftpconfig 可以容纳数十个孤立的环境。
{
"production": {
"host": "ftp.example.com",
"user": "prod-user",
"password": "your-password",
"port": 21,
"secure": false,
"readOnly": true
},
"staging": {
"host": "sftp://staging.example.com",
"user": "staging-user",
"privateKey": "./keys/id_rsa",
"passphrase": "my-secure-key",
"port": 22
},
"default": {
"host": "ftp.mysite.com",
"user": "default-user",
"password": "your-password"
}
}服务器自动识别 .ftpconfig 相对于您的执行层,回退到环境属性。
选项B:环境变量
必修的:
# Windows
setx FTPMCP_HOST "ftp.example.com"
setx FTPMCP_USER "username"
setx FTPMCP_PASSWORD "password"
# Linux/Mac
export FTPMCP_HOST="ftp.example.com"
export FTPMCP_USER="username"
export FTPMCP_PASSWORD="password"高级SFTP密钥:
export FTPMCP_PRIVATE_KEY="/path/to/id_rsa"
export FTPMCP_PASSPHRASE="optional-phrase"
export FTPMCP_AGENT="pageant"3.客户集成
将MCP服务器直接注册到您的AI代码编辑器(Cursor、Cline、Claude Desktop、Windsurf等)。
集成示例:
- 命令:
npx - 论据:
-y ftp-mcp
高级AI操作
内存自动分块
在导航大型远程代码库时,人工智能助手通常会达到令牌溢出限制。 ftp_get_contents 支持 startLine 和 endLine 参数。 ftp-mcp 在字节码层拦截入站下载流,并将数据干净地丢弃在严格的索引边界之外,只返回所请求的确切行,而不会破坏上下文。
统一差异修补
与其请求5000行远程文件,在本地进行2行编辑,然后将巨大的文件推回, ftp-mcp 暴露一个 ftp_patch_file 命令。只需提供标准的统一Diff patch 字符串,以及 ftp-mcp 将读取实时目的地,映射差异逻辑,并直接通过SCP提交修改。
语义工作空间分析
召唤 ftp_analyze_workspace 将遍历远程文件系统,以本机方式调查配置(package.json, composer.json).它将评估结构模式和包依赖关系,立即报告远程语言映射的确切上下文(例如“Node.js环境操作React映射到Express”)。
本地MCP提示
服务器提供内置提示,指导AI代理完成复杂的工作流程:
audit-project:指导代理如何对远程代码库执行深度安全和架构审计。deploy-checklist:为代理提供标准安全检查表,以便在执行生产部署或大规模同步之前进行验证。
资源模板(远程文件访问)
无需显式调用工具即可将远程文件作为标准MCP资源访问:
- URI模板:
mcp://remote-file/{path} - 支持直接UTF-8读取,尊重所有
PolicyEngine安全边界和路径遍历保护。
操作透明度
- 实时日志记录:为连接池、缓存重用和传输生命周期步骤等内部事件发出协议本机日志通知。
- 进度跟踪:长时间运行(
ftp_sync,ftp_batch_upload等)发出粒度进度更新(0-100%),因此AI代理和用户可以实时监控大型传输。
严格安全模式执行
集 "readOnly": true 无论如何 .ftpconfig 轮廓。AI交互结束 ftp_delete, ftp_patch_file, ftp_put_contents,或 ftp_sync(direction: "upload") 将立即停止标准化的沙盒违规,使生产环境完全安全,免受幻觉工具执行的影响。
智能同步生成
通过以下方式利用深度比较树部署环境 ftp_sync.
- 使用
dryRun: true让系统安全地评估整个同步矩阵,将标准输出本地打印到上下文控制台,准确报告逻辑 *会* 已经执行。 ftp_sync与标准深度融合.gitignore索引和自定义.ftpignore图案文件完全开箱即用。
完整的工具参考
连接管理
ftp_connect:在指定的FTP配置文件之间切换。
文件内容操作
ftp_get_contents:使用分页行提取直接从服务器读取文件内容。ftp_put_contents:将内容直接写入远程文件。ftp_patch_file:在网络上干净地应用统一的差异修改。ftp_summarize_file:生成表示文件内容的令牌光结构签名。
元数据和文件信息
ftp_stat:获取有关权限、字节和修改数组的详细元数据。ftp_exists:用于执行路径的条件逻辑管道,无需遍历子目录。ftp_disk_space:系统操作系统级自由字节解析(仅限SFTP)。ftp_analyze_workspace:基于工作区根配置定义拉取复杂的语义环境。
目录操作
ftp_list:列出所有受约束的文件/目录limit和offset令牌边界规则。ftp_tree:构建完整的递归映射。ftp_search:通过通配符属性在文档树中立即定位文件。ftp_mkdir/ftp_rmdir:文件夹创建和复杂的递归销毁命令。
文件传输
ftp_upload/ftp_download:严格的文件1对1传输。ftp_batch_upload/ftp_batch_download:多映射阵列上传避免了多工具开销。ftp_sync:高级深度逻辑大小树映射放入部署同步池。
文件管理
ftp_delete:删除目标属性。ftp_copy:忽略大量TCP IO传输阵列的操作系统级SSH文件重复。ftp_rename:目标位移映射。ftp_chmod:操作系统级权限标志在SFTP套接字上本机执行位掩码规则。
架构指南
- 持续启用审核日志记录。确保运行MCP协议的终端保持对本地项目部署文件夹的结构写入权限。
- 确保任何
currentConfig缓存重置仅与ftp_connect轮廓旋转。
更新日志
看 更改日志.md 查看每个版本的详细更改列表。
许可证
作者 Kynlo Akari
