GSTD A2A MCP 服务器

使用说明.md

  • 项目简介

    • 本仓库实现了一个基于 MCP 的服务器端,通过 FastMCP 框架暴露一组工具(如获取代理身份、查看状态、发现工作、注册节点、提交任务结果等),实现了资源/工具/知识库等核心能力,为 LLM 客户端提供标准化的上下文和执行能力。
    • 服务器代码设计成“服务端工具集合 + 任务/工作流处理”的组合,能够通过 JSON-RPC 与客户端进行交互,并支持多种传输方式,方便在不同部署场景下接入。
  • 主要功能点

    • MCP 服务器框架集成:基于 FastMCP 的服务器骨架,支持通过装饰器注册工具并暴露为MCP接口。
    • 工具集成与调用:在服务器端定义若干 MCP 工具(如身份查询、健康检查、任务发现、注册节点、提交结果、价格查询、资源购买等),供客户端调用。
    • 会话与任务管理:提供任务创建、状态查询、结果提交等能力,支持工作流和多节点协同。
    • 安全与审计痕迹:通过钱包签名、结果证明等机制实现对工作产出与身份的有效性校验。
    • 多传输协议支持:通过 mcp.run 的 transport 参数,支持 stdio、SSE、WebSocket 等传输方式,便于本地调试与远程部署。
    • 与客户端生态集成:代码结构与命名与仓库中其他组件(SDK、Starter Kit、Examples)协同,便于将MCP服务器与A2A生态中的客户端对接。
  • 安装与运行步骤

    • 环境准备
      • 需要 Python 3.9 及以上版本。
      • 依赖安装:确保安装了 MCP 框架及相关依赖,通常通过 Python 包管理器安装所需的 mcp 库及仓库所需的依赖。
    • 启动服务器
      • 使用默认命令启动:gstd-a2a-mcp(由 setup.py 的入口点提供),或直接执行主模块脚本,如 python main.py。
      • 启动时可通过传输模式参数选择 stdio、SSE、WebSocket 等传输方式,例如:
        • transport=stdio(本地调试/直接管道通信)
        • transport=websocket(对外提供WebSocket接口)
      • 常见启动命令示例:
        • gstd-a2a-mcp --transport websocket --host 0.0.0.0 --port 8080
        • 或在本地调试时直接运行 python main.py(若主入口已绑定默认传输模式)
    • 客户端对接要点
      • MCP 客户端需要配置服务器的启动命令及参数,以便通过该命令启动并连接 MCP 服务器(详见下方“服务器配置”示例)。
  • 服务器配置(给 MCP 客户端的配置信息,JSON 格式) 注意:客户端连接服务器时需要的配置以 JSON 形式提供,包含服务器名称、启动命令以及参数等信息。以下为基于仓库实现的准确示例描述(请勿直接执行,按需填写到您的客户端配置中): { "server_name": "GSTD A2A MCP Server", "command": "gstd-a2a-mcp", "args": [ "--transport", "websocket", "--host", "0.0.0.0", "--port", "8080" ], "description": "MCP 服务器端,提供资源、工具、记忆与提示模板等能力,客户端通过JSON-RPC与之交互。" }

    配置字段注释(简要说明,便于理解,不涉及代码实现):

    • server_name: MCP 服务器的名称,用于客户端识别与日志关联。
    • command: 启动服务器所使用的命令(在本仓库中对应的是 gstd-a2a-mcp,或 python -m gstd_a2a.mcp_server 等实现入口)。
    • args: 启动命令的参数数组,包含传输模式、监听地址、端口等运行时配置。
    • description: 对服务器的简要描述,帮助客户端了解服务器提供的能力范围。
  • 基本使用方法

    • 服务器端
      • 安装依赖并确保 Python 环境就绪。
      • 启动 MCP 服务器(可使用仓库提供的入口命令 gstd-a2a-mcp,或直接运行 main.py/ mcp_server 模块,具体以内部入口配置为准)。
      • 观察日志,确认服务器已就绪并对外暴露端口。
    • 客户端
      • 根据服务器配置提供的 JSON 配置,启动客户端连接到 MCP 服务器。
      • 调用服务器暴露的工具接口进行资源获取、任务发布、结果提交等操作。
    • 常见注意事项
      • 确保服务器端口对目标网络可达,若使用公网上的WebSocket,需要相应的防火墙和证书配置。
      • 结合 Starter Kit 与示例,确保在生产环境中正确管理钱包、API Key 与安全策略。
  • 备注

    • 该仓库中包含服务端实现、SDK、示例及 Starter Kit 等组件,整体设计面向 MCP 服务器端能力的完整实现,且实现了通过 FastMCP 的工具化暴露机制与多传输协议支持的结构。

服务器信息