项目简介
'mcp-servers' 仓库提供了一套基于Model Context Protocol (MCP) 构建的生产级服务器实现,支持Python、Go和Rust三种主流编程语言。这些服务器的核心功能是为大型语言模型(LLM)客户端(如VS Code扩展)提供标准化的上下文信息和工具调用能力,从而简化AI系统与各种外部功能的集成。它实现了MCP协议的核心交互逻辑,包括能力声明、工具注册与执行、会话管理以及通过JSON-RPC协议进行通信,并支持SSE等多种传输方式。
主要功能点
- 多语言支持: 提供Go、Python、Rust三种语言实现,可根据项目需求选择。
- VS Code集成: 专为与Visual Studio Code无缝集成设计,增强AI开发体验。
- 标准化接口: 通过Model Context Protocol (MCP) 标准化AI系统与外部工具的交互方式。
- 工具注册与调用: 服务器可以声明和执行多种工具,例如数据库操作工具(列出表、发现数据、准备查询、执行查询)和代码辅助工具(代码补全、代码分析、代码文档)。
- 会话管理: 支持客户端初始化、服务器能力声明和会话终止等标准流程。
- 传输协议支持: 支持基于HTTP POST的JSON-RPC通信,以及Server-Sent Events (SSE) 用于实时事件推送和能力声明。
- 生产级特性: 内置日志记录、配置管理、健康检查和Prometheus指标收集等功能,确保服务器的可靠性和可观测性。
安装步骤
-
克隆仓库:
git clone https://github.com/gunbun33/mcp-servers.git cd mcp-servers -
选择您的语言: 进入您偏好的语言目录(例如 'python' 或 'go/src'),并根据该目录下的具体说明进行设置和运行。
- Python 服务器安装示例:
cd python pip install -r requirements.txt - Go 服务器安装示例:
cd go/src go mod tidy # 如果需要,下载依赖
- Python 服务器安装示例:
-
运行服务器:
- Python 服务器运行示例:
cd python uvicorn mcp_server:app --host 0.0.0.0 --port 8080 # 推荐使用uvicorn,或直接 python mcp_server.py - Go 服务器运行示例:
cd go/src/cmd/server go run main.go
- Python 服务器运行示例:
服务器配置
MCP客户端通常通过JSON配置来连接MCP服务器。以下是一个JSON格式的配置示例,您需要根据实际运行的服务器调整其中的 'command' 和 'args'。
{ // 服务器名称,用于客户端识别,例如 "Go MCP Server" 或 "Python FastAPI MCP" "serverName": "MyCustomMCPService", // 启动MCP服务器的可执行文件或脚本路径 "command": "/path/to/your/mcp-servers/go/src/cmd/server/main", // 传递给MCP服务器的启动参数,通常用于指定监听地址和端口 "args": ["-host", "0.0.0.0", "-port", "9090"], // 其他可选配置,如环境变量(env)、工作目录(cwd)等 // "env": { "LOG_LEVEL": "DEBUG" }, // "cwd": "/path/to/your/mcp-servers/go/src/cmd/server", // "trace": "verbose" // 启用详细日志 }
配置参数注释:
- 'serverName': 用于客户端识别的服务器名称,可以自定义,会显示在客户端界面。
- 'command': MCP服务器启动时执行的命令或可执行文件的路径。例如,对于Go服务器,可以是编译后的二进制文件路径(如 '/path/to/mcp-servers/go/bin/server');对于Python服务器,可以是启动脚本的命令(如 'python /path/to/mcp-servers/python/mcp_server.py' 或 'uvicorn mcp_server:app --host 0.0.0.0 --port 8080')。
- 'args': 传递给 'command' 的命令行参数列表。例如,指定服务器监听的IP地址和端口。
- 'env' (可选): 服务器启动时设置的环境变量,例如设置日志级别。
- 'cwd' (可选): 服务器启动时的工作目录。
- 'trace' (可选): 启用详细的协议跟踪日志,方便调试。
基本使用方法
一旦服务器启动,MCP客户端(如VS Code扩展)将能够通过配置的地址和端口与之通信。客户端会首先发送一个 'initialize' 请求来获取服务器的能力声明,包括其支持的工具列表。之后,客户端可以根据这些声明来调用服务器提供的工具功能,例如:
- 调用 'list_tables' 工具: 请求获取数据库中所有可用表的列表。
- 调用 'discover_data' 工具: 请求发现特定表的数据结构(如列名和类型)。
- 调用 'code_completion' 工具(Go服务器特有): 请求获取当前代码位置的代码补全建议。
- 调用 'code_analysis' 工具(Go服务器特有): 请求对代码进行分析,获取诊断信息和改进建议。
- 调用 'code_documentation' 工具(Go服务器特有): 请求获取特定代码符号的文档。
MCP服务器会接收这些JSON-RPC请求,执行相应的逻辑(如模拟数据库操作或代码分析),然后返回一个JSON-RPC响应给客户端。通过SSE连接,服务器还可以主动向客户端推送事件或通知,实现实时交互。
信息
分类
开发者工具