MCP 服务器合集(Model Context Protocol 实现)

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库包含基于 MCP(Model Context Protocol)的后端服务器实现,提供标准化的接口来管理资源、注册并执行工具,以及渲染与提供 Prompt/模板等能力,供 LLM 客户端以统一的格式进行交互。
  • 主要功能点

    • 多语言实现:Go、Python 等多种实现,便于按语言栈选用。
    • 统一的 MCP 通信:通过 JSON-RPC 风格的请求与响应处理初始化、执行工具、查询数据等操作。
    • 资源与工具接口:定义并暴露工具集合(如 list_tables、discover_data、prepare_query、query 等),支持将外部功能暴露给 LLM。
    • Server-Sent Events(SSE)推送:提供 /sse 端点,用于客户端获取能力、心跳与通知。
    • 健康与监控:/health、指标等接口,便于运维和观测。
    • 插件化/扩展性:代码结构中包含 codeassist、monitoring、database 等模块,便于扩展工具、分析与文档能力。
  • 安装与运行(简要)

    • 语言/实现选择:
      • Go 版本:进入 go 目录,使用 go run go/src/main.go(或编译后直接运行可执行文件)启动。
      • Python 版本:进入 python 目录,运行 python3 mcp_server.py 启动服务。
    • 运行前请确保依赖已安装(Go 模块或 Python 虚拟环境中的依赖)。
    • 运行后默认监听端口与配置可通过代码中的默认值或环境变量覆盖。
  • 服务器配置(供 MCP 客户端了解如何启动并连接 MCP 服务) 以下为两种常见实现的示例配置(均为 JSON,供 MCP 客户端在接入前了解启动方式;注意不同实现语言会有不同的启动命令):

    • Go 版本(Go MCP Server) { "server_name": "Go MCP Server", "command": ["go", "run", "go/src/main.go"], "args": [] } 注释:server_name 指示 MCP 服务名称;command 为启动服务器的命令,args 为额外参数,如无则留空。
    • Python 版本(Python MCP Server) { "server_name": "Python MCP Server", "command": ["python3", "python/mcp_server.py"], "args": [] } 注释:同上,依据实际语言实现选择对应的启动命令与脚本路径。
  • 基本使用方法

    • 启动后,客户端通过 MCP 标准请求发送 JSON-RPC 格式的请求到 MCP 服务器的根端点,服务器返回标准的 MCP JSON-RPC 响应或错误信息。
    • 常用请求方向包括:
      • initialize:握手并获取服务器能力、可用工具等信息。
      • list_tables、discover_data、prepare_query、query 等工具调用(由工具列表提供的能力进行组合使用)。
      • code assistance 等扩展能力(如 code_completion、code_analysis、code_documentation)可通过相应的 MCP 请求进行交互。
    • 使用 SSE 端点 /sse 获取服务器能力、心跳与通知,适用于需要持续连接的客户端。
    • 访问 /health 获取服务健康状态,方便监控与编排。
  • 备注

    • 仓内包含不同语言实现的完整服务器代码,具备完整的请求处理、错误处理、SSE 推送、健康与监控接口等核心功能,符合 MCP 服务器的设计目标。
    • 具体环境与依赖请参考各自实现目录下的说明与默认配置(如端口、日志级别、CORS 设置等,可通过环境变量覆盖)。

服务器信息