gomcp-pilot 是一个用 Go 编写的高性能 Model Context Protocol (MCP) 网关。它旨在连接大语言模型 (LLM) 与本地工具、服务和文件系统。
本项目取名为 "Pilot",意在充当 AI Agent 的辅助向导:在处理协议转换的同时,提供统一的协议转换、权限控制和可视化监控,帮助开发者更好地理解和控制 AI 的行为。
- 高性能网关: 基于 Go 语言,并发处理多个 Upstream MCP Server。
- 多语言支持 (Polyglot): 可以连接 Python, Node.js, Go 等任意语言编写的 MCP Server(通过 Stdio)。
- 全协议支持:
- Tools: 动态发现和调用工具。
- Resources: 统一聚合和读取资源(如文件、系统状态)。
- SSE: 支持 Server-Sent Events 协议,兼容 Claude Desktop 等标准客户端。
- 可视化界面:
- TUI (终端界面): 实时监控 Traffic,拦截请求,查看详细日志。
- Web Dashboard: 现代化的 React 界面,浏览工具和资源列表。
- 安全可控:
- Token 鉴权。
- Human-in-the-loop: 关键操作(如文件写入)可配置为需人工批准。
- Go 1.23+
- Node.js 18+ (用于 Web Dashboard)
- Python 3.10+ (用于示例 Server 和 AI Client)
我们提供了一个便捷的控制脚本来管理所有服务:
# 1. 启动所有服务 (后端 + 前端) 并挂起在后台
./scripts/dev/control.sh start
# 2. 查看实时日志
./scripts/dev/control.sh logs
# 3. 停止所有服务
./scripts/dev/control.sh stop
# 4. 进入 TUI 交互模式 (会自动停止后台服务以释放端口)
./scripts/dev/control.sh tui启动后:
- API Gateway:
http://localhost:8080 - Web Dashboard:
http://localhost:5173
如果您更喜欢手动操作:
# 编译
go build -o bin/gomcp ./cmd/gomcp
# 启动 TUI 模式
./bin/gomcp start
# 启动无头模式 (Headless Server)
./bin/gomcp serve
# 启动 Web Dashboard
cd web && npm install && npm run devgraph TD
Client[AI Client / Claude Desktop] -->|SSE / HTTP| Gateway[gomcp Gateway]
Gateway -->|Stdio| S1[Filesystem MCP]
Gateway -->|Stdio| S2[Python Crypto Server]
Gateway -->|Stdio| S3[Node.js Math Server]
Gateway -->|Websocket?| Web[Web Dashboard]
port: 8080
auth_token: "TEST" # 简单的 Bearer Token 鉴权
upstreams:
- name: "filesystem"
command: "./bin/gomcp"
args: ["stdio"]
env: []
auto_approve: false # TUI 模式下需要人工批准
- name: "crypto-py"
command: "python3"
args: ["scripts/servers/crypto_server.py"]
auto_approve: true
- name: "math-js"
command: "node"
args: ["scripts/servers/math_server.js"]
auto_approve: true- MCP Protocol: 完整实现 MCP 协议核心 (Client & Server)。
- Gateway Transport: 支持 Stdio 传输协议,稳定连接本地进程。
- Polyglot Support: 完美支持 Python, Node.js, Go 等多语言 Server。
- SSE Integration: 实现 Server-Sent Events,兼容 Claude Desktop。
- TUI Monitor: 强大的终端交互界面,流量实时监控。
- Web Dashboard: 基于 React 的现代化管理面板。
- Human-in-the-loop: 敏感操作人工审批机制。
- Configuration: 灵活的 YAML 配置管理。
- Remote Upstreams: 支持通过 HTTP/SSE 连接远程 MCP Server。
- Advanced Auth: 集成 OAuth2 或更细粒度的 API Key 管理。
- Plugin System: 支持自定义中间件插件。
- Docker Support: 提供标准 Docker 镜像与 K8s 部署清单。
- WebSockets: 全双工通信支持,提升实时性。
- Metrics: 指标监控与告警。
- RAG: 语义资源发现与搜索。
GET /sse: MCP SSE 接入点 (Client 连接此处)POST /mcp/message: JSON-RPC 消息交互端点
GET /tools/list?upstream=namePOST /tools/callGET /resources/list?upstream=nameGET /resources/read?uri=...
所有接口均需携带 Header: Authorization: Bearer <token>
