Agento MCP 后端服务器实现

说明

  • 项目简介

    • 该仓库实现了一个面向 MCP 的后端服务器架构,核心目标是为 LLM 客户端提供上下文资源、工具执行能力以及可自定义的提示模板渲染等 MCP 相关能力,并通过 JSON-RPC 风格的通信在客户端与服务端之间进行交互。
  • 主要功能点

    • MCP 注册与管理
      • 能加载本地注册表(MCP Registry),同时支持将外部 MCP 服务器以多种传输方式接入后端。
      • 内置对本地工具的支持(in-process MCP),以及对外部 MCP 服务器的注册和筛选。
    • 传输协议支持
      • 支持 stdio(子进程方式运行 MCP)、streamable_http(HTTP 流式传输)以及 sse(Server-Sent Events)等传输模式。
    • 会话与任务管理
      • 提供会话、任务调度、日志与指标监控等能力,方便追踪和分析。
    • 安全与环境隔离
      • 通过环境变量进行配置锁定、OpenTelemetry 观测等,便于在生产环境中进行安全与性能监控。
    • 资源与工具整合
      • 具备资源/代理配置、工具权限、模型选项等灵活控制,支持内置工具、本地工具、以及外部 MCP 的混合使用。
  • 安装与运行

    • 需要先搭建 Claude Code CLI 环境(本项目通过 Claude Code CLI 作为后端执行主体,若希望使用 Anthropic 直接模式可配置环境变量)。
    • 构建方式通常为根目录下的构建脚本或 make 命令,随后启动 Web 服务以提供 UI 和 API(默认端口 8990,可通过配置修改)。
    • MCP 客户端要接入 MCP 服务器,需要提供服务器注册信息(服务器名称、传输方式、启动命令及参数等),以便 Claude/Agent 可以按需调用。
  • 服务器配置(MCP 客户端需要的示例信息)

    • MCP 客户端将使用服务器注册信息来知道如何连接到 MCP 服务器。以下为用于说明的 JSON 形式的示例字段,实际值请依据具体 MCP 服务器的实现方式配置:
    • 示例 1(本地进程工具服务器,stdio 传输) { "server_name": "local-tools", "transport": "stdio", "command": "node", "args": ["path/to/mcp-server.js", "--port", "12345"], "env": { "ENV_VAR_EXAMPLE": "value" } }
    • 示例 2(HTTP 传输,streamable_http) { "server_name": "remote-http", "transport": "streamable_http", "url": "http://localhost:3000/mcp", "headers": { "Authorization": "Bearer token" } }
    • 示例 3(SSE 传输,sse) { "server_name": "remote-sse", "transport": "sse", "url": "http://localhost:4000/sse", "headers": { "X-Custom-Header": "value" } }
  • 基本使用方法

    • 运行与接入
      1. 在本地配置 MCP 注册表(mcps.yaml)或通过管理界面配置需要的 MCP 服务器信息(名称、传输方式、启动命令及参数等)。
      2. 启动 Agento 的后端服务(web UI + API),默认端口 8990。
      3. 在 Agent/CLI 侧或 UI 的“Integrations / MCP 注册”中将上述 MCP 服务器注册到你的环境中,确保客户端能够通过 MCP 服务器进行工具调用。
      4. 在代理/Agent 配置中按需要赋予可访问的工具,MCP 服务器将根据注册信息暴露相应的工具入口。
    • 运行时体验
      • 通过 Agento 的 UI 或命令行 CLI 与 MCP 服务器进行交互,工具调用会通过 MCP 服务器触发,结果以结构化的 JSON 形式返回。
    • 日志与监控
      • 系统日志、每个会话日志以及 OpenTelemetry 指标将帮助你监控请求延迟、吞吐量和错误情况。
  • 重要注意

    • 该实现具备内置本地 MCP 服务(in-process),以及对外部 MCP 的注册和管理能力,便于在一个平台内混合多种工具服务器。
    • MCP 的具体请求/响应格式遵循 Model Context Protocol 的标准,结合 Claude Code CLI 的执行上下文进行实际工具调用。

服务器信息