关于 MCP Servers
MCP Servers 汇集了以 Python、Go 和 Rust 实现的 MCP 服务,供 VS Code 等 MCP 客户端使用。Python 服务已可用于生产环境,Go 和 Rust 实现仍在开发中。
主要功能
- 01基于 FastAPI 的 Python 服务
- 02SSE 和 JSON-RPC 接口
- 03错误处理与日志记录
- 04Prometheus 指标和健康检查
- 05开发中的 Go 与 Rust 服务实现
适用场景
- 01通过 HTTP/SSE 将 VS Code 连接到 MCP 服务
- 02使用 Docker Compose 运行 Python 服务
- 03开发或贡献 Go 与 Rust 实现
MCP 相关
该项目为 VS Code 等客户端提供 MCP 服务,并支持 SSE 和 JSON-RPC 接口。Python 实现已完成,Go 和 Rust 版本仍在开发中。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务
一个使用不同编程语言实现的 Model Context Protocol(MCP)服务集合,可与 VS Code 和其他 MCP 客户端搭配使用。
概述
此仓库包含使用三种语言实现的 MCP 服务:
| 服务 | 状态 | 描述 |
|---|---|---|
| Python MCP Server | ✅ 已可用于生产环境 | 基于 FastAPI 的 MCP 服务,功能全面 |
| Go MCP Server | ⚠️ 开发中 | 使用 centralmind/gateway 的 Go MCP 服务 |
| Rust MCP Server | ⚠️ 开发中 | 使用 tfmcp、专注于 Terraform 的 MCP 服务 |
什么是 MCP?
Model Context Protocol(MCP)是一种用于 AI Agent 与工具/服务之间通信的协议。它通过标准化接口,让 AI 系统能够与各种工具和服务交互。
快速开始
前提条件
- Docker 和 Docker Compose
- VS Code(用于客户端集成)
运行服务
运行所有服务:
docker-compose up
仅运行 Python 服务(推荐用于生产环境):
docker-compose up mcp-python
服务状态
Python MCP 服务(✅ 已可用于生产环境)
Python MCP 服务已全面投入运行,可用于生产环境:
- 实现完整的 Model Context Protocol
- 提供 SSE 和 JSON-RPC 端点
- 包含全面的错误处理和日志记录
- 提供用于监控的 Prometheus 指标
- 包含用于容器编排的健康检查
端点:
GET /health- 健康检查端点GET /sse- 用于实时通信的 Server-Sent Events 端点POST /- 用于 JSON-RPC 请求的主 MCP 端点
Go MCP 服务(⚠️ 开发中)
Go MCP 服务目前正在开发中:
- 实现核心 MCP 协议功能
- 使用 PostgreSQL 执行数据库操作
- 提供 JSON-RPC 和 SSE 端点
- 包含高级代码辅助功能:
- 支持多种语言的代码补全
- 代码分析和诊断
- 文档查询
- 还需要进一步测试和优化
端点:
GET /sse- SSE 端点(需要进一步配置)GET /- API 文档
Rust MCP 服务(⚠️ 开发中)
Rust MCP 服务仍需进一步开发:
- 基于用于 Terraform 集成的 tfmcp 工具
- 目前尚未完全支持 MCP 所需的 HTTP 接口
- 需要进一步调研,并可能需要定制开发
VS Code 集成
VS Code 可使用 SSE/HTTP MCP Protocol 连接到 MCP 服务。将以下内容添加到 VS Code 的 settings.json 中:
{
"mcp.python.serverUrl": "http://localhost:8080",
"mcp.python.enableAutoConnect": true
}
贡献
欢迎贡献!以下是一些参与贡献的方式:
- 改进现有服务实现
- 使用其他语言添加新的服务实现
- 完善文档和示例
- 报告 Bug 并提出功能建议
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。