Token导航 LogoToken导航

MCP Server · 运维云端

MCP Go Ftp

基于Go语言的MCP协议FTP服务器,支持FTP、SFTP和FTPS操作,使AI助手能够安全高效地与远程文件系统交互。

未说明官方级别未说明来源级核验工具 9
GoClaude云端部署Claude DesktopCline

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
scopweb
提供方
scopweb

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Go Ftp 属于运维云端类 MCP Server,公开资料标注 9 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude、Cline,没有现成的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

MCP Go FTP服务器🚀

⚠️ β版 -该项目目前处于测试阶段,仅用于测试目的。使用风险和责任自负。

用于FTP、SFTP和FTPS操作的基于Go的MCP(模型上下文协议)服务器。使像Claude这样的人工智能助手能够安全有效地与远程文件系统进行交互。

✅ 经过全面测试的项目 -所有测试均成功通过

✨ 特性

  • 符合MCP 2025-11-25标准:完全符合最新的模型上下文协议规范(~95%)
  • 通用客户端兼容性:适用于Claude Desktop、Cline和所有MCP客户端
  • 多协议支持:同时进行SFTP、FTP和FTPS连接
  • 预定义服务器:配置服务器一次,仅按名称连接(v2.2.0+)
  • 工具注释:安全AI操作的安全提示(破坏性、只读、幂等)(v2.3.0+)
  • 完成文件操作:连接、列出、上传、下载、删除文件
  • 远程目录管理:导航和管理远程文件系统
  • 实时连接状态:监视活动连接
  • 高级安全:SSH主机密钥验证、路径净化、基于环境的凭据
  • 稳健验证:全面的错误处理和描述性消息
  • 自动化测试:完整的测试套件,内置FTP测试服务器

🛠️ 安装

# Clone the repository
git clone https://github.com/scopweb/mcp-go-ftp.git
cd mcp-go-ftp

# Build the MCP server
.\compile.bat

# Build the GUI (optional - for testing)
cd src\cmd\gui
go build -o ..\..\..\ftp-gui.exe .
cd ..\..\..

# Run basic tests
.\tests\run-tests.bat

# Run comprehensive tests
.\tests\run-full-tests.bat

🖥️ GUI测试工具

包含一个独立的基于web的GUI,便于测试:

# Run the GUI
.\ftp-gui.exe

GUI将在您的浏览器中自动打开 http://127.0.0.1:9876 并提供:

  • 可视化文件浏览器(本地和远程)
  • 连接到服务器(预定义或手动)
  • 通过拖放或文件选择上传/下载文件
  • 删除远程文件
  • 实时操作日志

非常适合在与Claude Desktop集成之前测试FTP操作!

🤖 GitHub Copilot

此存储库包括 副驾驶说明 帮助GitHub Copilot更好地理解和协助此代码库。这些说明提供了有关MCP协议、项目结构和开发指南的上下文。

⚙️ Claude桌面配置

基本配置(无预定义服务器)

{
  "mcpServers": {
    "ftp-mcp": {
      "command": "C:\\path\\to\\mcp-go-ftp\\ftp-mcp-server.exe",
      "args": []
    }
  }
}

使用此配置,每次连接时都需要提供凭据。

______________________________________________________________________

使用预定义服务器进行配置(推荐)

此配置允许您定义一次服务器,并仅使用其名称进行连接。

第一步:创建 servers.json 文件

创建一个 servers.json 文件(你可以复制 servers.example.json):

{
  "servers": {
    "production": {
      "host": "ftp.example.com",
      "port": 22,
      "username": "admin",
      "password": "env:FTP_PROD_PASS",
      "basePath": "/var/www/html"
    },
    "development": {
      "host": "dev.example.com",
      "port": 22,
      "username": "developer",
      "password": "env:FTP_DEV_PASS",
      "basePath": "/home/developer/projects"
    },
    "backup": {
      "host": "backup.example.com",
      "port": 21,
      "username": "backup_user",
      "password": "your_direct_password_here"
    }
  }
}

配置选项:

字段必填描述
host是FTP/SFTP服务器地址
port是端口(22=SFTP,21=FTP,990=FTPS)
username是连接用户名
password是密码(直接或 env:VARIABLE)
basePath否初始路径(限制对此文件夹的访问)

关于 basePath:

  • 如果你定义 "basePath": "/var/www/html",当您请求列出 /,它实际上会列出 /var/www/html
  • 有助于限制对特定文件夹的访问
  • 如果未定义,则访问整个服务器(从 /)
步骤2:配置Claude桌面

编辑您的 claude_desktop_config.json 文件:

窗户: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ftp-mcp": {
      "command": "C:\\path\\to\\ftp-mcp-server.exe",
      "args": ["--config", "C:\\path\\to\\servers.json"],
      "env": {
        "FTP_PROD_PASS": "your_actual_production_password",
        "FTP_DEV_PASS": "your_actual_development_password"
      }
    }
  }
}

关于密码的重要信息:

  • 实际密码在 "env" 节内 claude_desktop_config.json
  • 这 servers.json 文件仅包含引用 "env:VARIABLE_NAME"
  • 这允许版本控制 servers.json 在git中不公开凭据
步骤3:与Claude一起使用

现在你可以告诉克劳德:

  • “连接到生产”
  • “列出正在开发的文件”
  • “上传此文件进行备份”

Claude将自动使用配置的凭据。

配置图
┌─────────────────────────────────────────────────────────────────┐
│                    claude_desktop_config.json                    │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ "command": "ftp-mcp-server.exe"                           │  │
│  │ "args": ["--config", "servers.json"]  ──────────┐         │  │
│  │ "env": {                                        │         │  │
│  │   "FTP_PROD_PASS": "password123" ◄──────────────┼────┐    │  │
│  │ }                                               │    │    │  │
│  └───────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘
                                                     │    │
                                                     ▼    │
┌─────────────────────────────────────────────────────────────────┐
│                         servers.json                             │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ "production": {                                           │  │
│  │   "host": "ftp.example.com",                              │  │
│  │   "password": "env:FTP_PROD_PASS"  ───────────────────────┼──┘
│  │ }                                                         │
│  └───────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────────┘

🧪 可用工具

功能说明
ftp_connect连接到FTP/SFTP服务器(通过预定义的名称或凭据)
ftp_断开连接断开与服务器的连接
ftp_list列出文件/目录
ftp_upload将文件上传到服务器
ftp下载从服务器下载文件
ftp_delete从服务器删除文件
ftp_mkdir在服务器上创建目录
ftp状态显示活动连接
ftp服务器列出可用的预定义服务器

🚀 基本用法

1.连接到预定义的服务器(推荐)

ftp_connect:
- name: "production"

如果服务器在中配置,则只需要该名称 servers.json.

1b。列出预定义服务器

ftp_servers

1c。使用凭据连接到SFTP服务器

ftp_connect:
- name: "my-server"
- host: "example.com"
- port: "22"
- username: "user"
- password: "password"

1d。使用环境凭据连接

ftp_connect:
- name: "my-server"
- host: "example.com"
- port: "22"
- username: "user"
- password: "env:FTP_PASSWORD"

1e。连接到传统FTP服务器

ftp_connect:
- name: "my-ftp"
- host: "example.com"
- port: "21"
- username: "user"
- password: "password"

1f。连接到FTPS服务器

ftp_connect:
- name: "my-ftps"
- host: "example.com"
- port: "990"
- username: "user"
- password: "password"

2.列出文件

ftp_list:
- name: "my-server"
- path: "/home/user"

3.上传文件

ftp_upload:
- name: "my-server"
- local_path: "C:\\file.txt"
- remote_path: "/home/user/file.txt"

4.下载文件

ftp_download:
- name: "my-server"
- remote_path: "/home/user/file.txt"
- local_path: "C:\\download\\file.txt"

🔒 支持的协议

  • SFTP(端口22): ✅ 全面实施

- SSH加密连接 - 密码认证 - 安全主机密钥验证 - 所有可用操作

  • FTP(端口21): ✅ 全面实施

- 传统FTP - 密码认证 - 所有可用操作

  • FTPS(端口990): ✅ 实现

- SSL/TLS上的FTP - 密码认证 - 所有可用操作

默认端口: 22 (SFTP)

🧪 测试

该项目包括一个完整的自动化测试套件:

# Basic tests (without FTP server)
.\tests\run-tests.bat

# Complete tests with included FTP server
.\tests\run-full-tests.bat

# Advanced test suite
.\tests\test-suite.exe

测试状态: ✅ 所有测试均成功通过

  • ✅ MCP初始化
  • ✅ 工具列表
  • ✅ FTP/SFTP/FTPS连接
  • ✅ 文件操作(上传/下载)
  • ✅ 连接管理
  • ✅ 安全和验证

项目结构

├── src/                       # Código fuente
│   ├── main.go               # Punto de entrada
│   ├── internal/             # Código interno
│   ├── go.mod               # Dependencias Go
│   └── go.sum               # Checksums
├── tests/                    # Tests y archivos de prueba
│   ├── test-files/          # Archivos de prueba
│   ├── run-tests.bat        # Tests básicos
│   ├── run-full-tests.bat   # Tests completos
│   ├── test-suite.exe       # Suite avanzada
│   └── ftp-test-server.py   # Servidor FTP de prueba
├── docs/                     # Documentación adicional
│   ├── MANUAL.md            # Manual detallado
│   └── EXAMPLES.md          # Ejemplos de uso
├── servers.example.json     # Ejemplo de configuración de servidores
├── compile.bat              # Script de compilación
├── README.md                # Este archivo
└── CHANGELOG.md             # Historial de cambios

🔒 安全和凭据

  • 主机密钥验证:SFTP自动验证主机密钥以防止MITM攻击
  • 安全凭据:支持使用从环境变量读取密码 env:VARIABLE_NAME
  • 预定义服务器:配置服务器一次,密码保留在Claude Desktop中(不在可共享文件中)
  • 路径消毒:所有远程路径都经过清理,以防止路径遍历攻击
  • 验证:在执行操作之前,验证所需的输入

安全最佳实践

  1. 使用环境变量 用于密码,而不是直接写入密码
  2. 不要版本 这 servers.json 如果文件包含直接密码
  3. 使用SFTP (端口22)而不是FTP(端口21)(如果可能)-它是加密的
  4. 这 claude_desktop_config.json 文件是私有的,不共享

📊 项目状态

  • ✅ SFTP连接:已实施和测试
  • ✅ FTP连接:已实施和测试
  • ✅ FTPS连接:已实施和测试
  • ✅ 完成操作:上传、下载、列表、删除、mkdir
  • ✅ 预定义服务器:配置一次,按名称连接(v2.2.0)
  • ✅ 多重管理:已实施
  • ✅ 安全:主机密钥验证、净化、环境变量
  • ✅ 测试:完整的自动化套件
  • ✅ 文档:完整且最新

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

FTP服务Go本地部署SFTP支持文件管理AI集成远程文件系统

支持客户端

Claude DesktopClaudeCline

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude Desktop、Claude、Cline,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Go Ftp

MCP World · 本页

9未说明未标注1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Go Ftp 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

MCP Go Ftp 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

MCP Go Ftp 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Go Ftp 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Go Ftp 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cline;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP