项目简介
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 服务,按需配置传输端口与路径。
- 构建并运行 MCP 服务器的 stdio 模式以供 Claude Code 集成使用:
- 集成示例
- 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与计算