Gonzales MCP 服务端

使用说明

  • 项目简介
    • Gonzales 的 MCP 服务端是一段可独立运行的服务端实现,旨在让 AI 助手(如 Claude Desktop 等)通过 MCP 协议与 Gonzales 的后端数据进行交互。它通过标准的 JSON-RPC 形式接收请求,返回结果,并且支持通过标准输入输出的通信通道运行(在命令行直接启动时会监听输入并写出输出)。
  • 主要功能点
    • 初始化与能力声明:实现 initialize 请求,返回服务器信息、协议版本及可用能力。
    • 工具注册与执行:实现 tools/list 获取可用工具、tools/call 调用具体工具及返回结果。
    • 基于 stdin/stdout 的 MCP 通信:通过读取 Content-Length 头和请求体,从标准输入接收 MCP 请求,并将响应写回到标准输出,便于嵌入式或容器化的流水线集成。
    • 与 Gonzales 后端 REST API 的对接:MCP 服务端在接收到工具调用等请求后,会通过内部 API 调用 /api/v1/ 相关端点获取数据。
    • 运行与退出控制:具备一个独立入口 main(),可直接通过 python -m gonzales.mcp.server 启动。
  • 安装步骤
    • 依赖与运行环境请参考仓库根级别的说明,确保 Python 环境就绪。
    • 启动命令(推荐直接在项目根目录执行):
      • python -m gonzales.mcp.server
    • 如需在容器中运行,可在容器入口执行同样的启动命令,确保容器内可访问 Gonzales 的后端 REST API(默认端口8470)。
  • 服务器配置(供 MCP 客户端配置使用,文本描述,不需要在客户端代码中实现)
    • 程序名称(server name):gonzales
    • 启动命令(command):python -m gonzales.mcp.server
    • 启动参数(args,可以根据实际部署修改端口等):
      • {"port": 8470}
    • 配置说明注释:
      • server name 指明 MCP 客户端将要连接的目标服务器名称,便于客户端在推理上下文中显示来源。
      • command 为启动服务的实际命令,port 是 MCP 服务监听的端口,确保与客户端的连接参数一致。
      • 如需以非默认端口运行,请将 port 配置为所需端口,并在客户端配置中相应指向该端口。
  • 基本使用方法
    • 向 MCP 客户端提供的工具列表:在客户端发起 tools/list 请求,获取 Gonzales 提供的工具集合。
    • 调用工具:通过 tools/call 请求,传入 tool 名称与参数(若工具无参数则为空对象),获得工具执行结果。
    • 与后端交互注意事项:
      • MCP 服务端使用 Content-Length 头来分割请求,客户端同样需要按照 MCP 客户端的实现发送请求。
      • 请求与响应的格式遵循 JSON-RPC 2.0 标准,包含 jsonrpc、id、method、params 等字段。
      • 服务器端在收到请求后,返回一个包含 result 的响应,或在错误场景下返回 error。

服务器信息