项目简介

AC2 是一个面向多智能体协作的后端框架,内置对 Model Context Protocol (MCP) 的服务器实现,能够托管资源、注册工具并执行,以及定义与渲染提示模板,供 LLM 客户端通过 JSON-RPC 与之交互。服务器提供多种传输模式,包括标准输入输出(stdio)、HTTP-SSE、以及 Unix 套接字等,确保在不同部署场景下都能稳定对接。

主要功能点

  • MCP 核心能力
    • 资源(Resources)管理:提供数据访问能力(代码库未展示具体实现细节,核心在于资源注册与查询接口)。
    • 工具(Tools)注册与执行:动态注册对各智能体的调用工具,支持中间件、执行上下文、以及输出转换。
    • Prompt(Prompts)定义与渲染:内置提示模板的注册,支持通过命令行 slash 命令等方式进行交互。
  • 多传输协议
    • stdio 模式:通过标准输入输出与 Claude Code、Gemini/其他 CLI 集成进行 MCP 交互。
    • HTTP/SSE:提供 HTTP 端点与 SSE 流供客户端连接。
    • Unix 套接字:通过 Unix Socket 实现本地进程间通信。
  • 会话与状态管理
    • 维护代理池、任务执行上下文、进度汇报(支持进度令牌)。
    • 支持对接外部代理/工具的输出流处理、状态变更回调。
  • 集成与扩展
    • 自动注册对所有已知智能体的问答工具(ask-{agent})。
    • 提供内置 Prompt 与 Tool 注册、日志记录、以及可扩展中间件。

安装与运行

  • 获取源码后编译运行(示例步骤,具体请参考仓库中的构建脚本):
    • 构建并运行 MCP 服务器的 stdio 模式以供 Claude Code 集成使用:
      • ac2 mcp-stdio
    • 也可通过 HTTP/Unix Socket 方式提供 MCP 服务,按需配置传输端口与路径。
  • 集成示例
    • Claude Code 集成:claude mcp add ac2 -- ac2 mcp-stdio
    • Gemini CLI 集成:gemini mcp add ac2 ac2 mcp-stdio

服务器配置(MCP 客户端至少需要的启动信息)

以下 JSON 配置用于 MCP 客户端在启动时连接到 MCP 服务器(以 stdio 传输为例)。请根据实际部署选择不同传输模式(stdio、http、unix 等)。JSON 中的字段含义说明见每项注释: { "server_name": "ac2", "transport": "stdio", "command": "ac2", "args": ["mcp-stdio"], "description": "AC2 MCP 服务器在 stdio 传输模式下的启动参数,用于 Claude Code/Gemini 等与 MCP 客户端的对接", "notes": "该配置用于客户端通过标准输入输出与 MCP 服务器建立 JSON-RPC 通道,从而实现资源访问、工具调用和 Prompts 的交互。若使用 HTTP/Unix 模式,请相应调整 transport、address、以及传输相关字段。" }

  • server_name: MCP 服务器的名称,便于客户端标识与日志关联,这里为 ac2。
  • transport: 传输模式,stdio 表示通过标准输入输出进行通信。
  • command: 启动命令,这里为 ac2。
  • args: 启动参数,这里为 mcp-stdio,表示以 stdio 传输启动 MCP 服务器。
  • description/notes: 便于客户端理解用途与连接方式的注释信息。

基本使用方法

  • 启动执行后,客户端通过所选传输模式与 MCP 服务器建立连接,发送 JSON-RPC 请求来读取资源、调用工具、获取并渲染 Prompts。
  • 通过 CLI 或 Web 终端的集成,可以在运行时动态注册和切换智能体、执行工具、查看输出。
  • 如需停止服务,请使用对应的进程管理方式(如停止运行的 ac2 进程,或在 headless/无 TUI 模式下通过信号终止)。

注意事项

  • 该实现具备服务器端功能,能同时提供资源、工具、Prompts 的注册与执行能力,以及多传输支持,属于完整的 MCP 服务器实现。
  • 若在实际环境中遇到依赖或兼容性问题,请参考仓库中的 detector、pool、webterm 等子模块以确保代理/工具正常启动与输出处理。

信息

分类

AI与计算