AgentGate MCP 服务端

以下为简明使用说明,帮助你快速理解并部署该 MCP 服务器以及与客户端的对接方式。

  • 项目简介

    • 该仓库实现了一个基于 MCP 的服务端,用来向大语言模型客户端(如 Claude Desktop)提供上下文相关的“资源、工具、提示”等能力,帮助 LLM 客户端在执行任务时获得所需的背景信息和可执行的外部功能。
  • 主要功能点

    • MCP 协议核心:实现基于 JSON-RPC 的 MCP 请求/响应处理,暴露标准化的工具集合、资源访问能力与提示模板的定义与渲染。
    • 资源与数据模型:内置身份、 bonds(抵押/保证金)、动作、市场等资源模型,支持创建、锁定、执行、解析、以及市场投票等能力。
    • 工具集合(7 项):
      • lock_bond
      • execute_bonded_action
      • resolve_action
      • get_reputation
      • create_identity
      • create_market
      • resolve_market
    • 数据传输通道:
      • Streamable HTTP(推荐):端口 3001,路径 /mcp,适用于 Claude Desktop 的 mcp-remote。
      • stdio 传输:通过 Claude Desktop 直接把 MCP 挂载为子进程实现传输。
    • 与 Claude Desktop 的集成:提供适配器和 MCP 服务端,支持通过 InMemoryTransport 的客户端传输实现端对端测试。
    • 安全性与会话:提供会话管理、签名校验、时间戳校验、Nonce 防重放等机制,确保请求的安全性与可审计性。
    • 旁路 REST 与仪表板:REST API 提供公开的运行状态查询与示例工具;仪表板用于实时查看身份、 bonds、动作等状态。
  • 安装与运行步骤

    • 环境准备
      • 需完成 npm install 以安装依赖。
      • 配置环境变量(示例):AGENTGATE_REST_KEY、AGENTGATE_MCP_KEY、AGENTGATE_HTTP_ALLOWLIST 以及其他可选参数。
    • 启动 REST 服务
      • 运行命令:npm run restart
      • 端口通常是 3000,提供 REST API 与仪表板。
    • 启动 MCP 服务端(两种传输)
      • Streamable HTTP(推荐):
        • 启动后端在端口 3001,路径 /mcp 供 Claude Desktop 的 mcp-remote 连接。
      • stdio 传输:
        • 通过 Claude Desktop 直接将 MCP 服务以子进程形式启动连接。
    • 客户端配置(MCP 客户端,示例信息)
      • 客户端需要配置一个 MCP 服务器条目,包含服务器名称、启动命令及参数等信息,用于与 MCP 服务器建立连接。以下为示例配置说明(非代码):
        • serverName: agentgate
        • command: npx
        • args: ["-y", "mcp-remote", "http://127.0.0.1:3001/mcp"]
        • 说明:本地连接时使用本地 3001 端口的 MCP HTTP 传输;远端部署可改为远端 MCP 服务地址,例如 https://mcp.agentgate.run/mcp
    • 基本使用方法
      • 通过 MCP 客户端调用工具,例如 lock_bond、execute_bonded_action、resolve_action、get_reputation 等,客户端将以 JSON-RPC 形式发送请求,服务端返回结果或通知。
      • 运行时注意请求签名、时间戳、Nonce 的正确性,以及在签名错误、超时、Nonce 重放等安全场景下的错误处理。
    • 运行时注意事项
      • MCP 传输层与 REST 层在同一实例中协作,确保两者所需的端口(3000 和 3001)在网络上可访问。
      • 若在生产环境启用 MCP Key 验证,请确保 AGENTGATE_MCP_KEY 已设置并在客户端请求中正确传递 x-agentgate-key 头。

服务器信息