项目简介
Agents Council MCP 服务端是一个实验性实现的 MCP 服务器,用于在后端托管资源、注册和执行工具,以及定义和渲染 Prompt 模板,为大语言模型客户端提供结构化的上下文和功能能力。
主要功能点
- MCP 协议核心能力:实现 MCP 服务器端,处理来自客户端的启动、加入、获取当前会话数据、提交回应和关闭会话等请求,并返回标准化的 JSON-RPC 风格响应。
- 会话与状态管理:通过本地文件系统持久化会话数据、请求与反馈等状态,支持并发安全的读写与锁机制。
- 工具与输入映射:在 MCP 服务器中注册工具(例如 start_council、join_council、get_current_session_data、send_response、close_council),并将外部输入映射到后端服务调用,返回统一格式的结果。
- 数据转换层:提供从后端数据结构到 MCP 客户端可读格式的映射,包括状态、会话、请求、反馈等字段的转换。
- 传输和扩展性:通过 StdioTransport 的 MCP 服务器在标准输入/输出上进行通信,便于与其他进程或脚本集成,理论上也可扩展为其他传输方式(如 SSE、WebSocket 等)。
- 本地持久化存储:将状态写入本地磁盘,支持锁文件防止并发写入,并具备锁过期与重试策略。
- 实验性与可扩展性提示:代码中明确标注为实验性实现,可能存在向后不兼容的阶段性变更。
安装步骤
- 环境准备:确保系统上已安装 Node.js 或 Bun 运行时(本实现以 Bun/Node 为基础)。
- 获取代码:
- 克隆仓库到本地。
- 安装依赖并准备运行环境:
- 使用 Bun 或 Node 的包管理工具安装依赖(如 bun install)。
- 运行 MCP 服务器(示例命令,将由客户端/CLI 调用来触发实际运行):
- 根据仓库 README 的指引,可以通过提供的 CLI 入口启动 MCP 服务器,例如执行“council mcp”命令来启动,运行时可指定输出格式、默认代理名等选项。
- 服务器启动后,会在 stdout/stdin(stdio)传输模式下与 MCP 客户端进行通信,确保客户端可以通过该通道调用工具、获取状态和提交反馈。
服务器配置(面向 MCP 客户端的配置信息)
MCP 客户端通常需要一个简易的配置,用来连接并调用该 MCP 服务器。以下为符合仓库实现的配置示例描述(为避免代码块,直接以文本形式呈现):
- json 配置结构中包含 mcpServers,键名为服务器别名(如 council),值包含:
- command: "npx"
- args: [" agents-council-mcp@latest", "mcp" ] 说明:
- 服务器实际名称在代码中为 agents-council,版本为 0.1.0。
- 客户端通过该配置找到 MCP 服务器入口并通过标准命令启动相应的 MCP 服务端进程。
- 配置中的别名 council 对应一个具体的 MCP 服务实例,命令和参数用于启动该服务端的 MCP 组件。
- 该配置适用于通过本仓库提供的 MCP CLI/工具进行连接。
示例描述(非代码块文本形式): { "mcpServers": { "council": { "command": "npx", "args": [ "agents-council-mcp@latest", "mcp" ] } } }
- 注释:服务器别名 council 用于在客户端侧标识该 MCP 服务;实际运行的 MCP 服务在内部名称为 agents-council,版本 0.1.0。
基本使用方法
- 启动 MCP 服务器:使用仓库提供的 CLI(如 council mcp)来启动,启动时可选择输出格式(markdown 或 json)以及默认代理名。
- 与客户端互动:客户端可以通过 JSON-RPC 形式调用 start_council、join_council、get_current_session_data、send_response、close_council 等工具。
- 监控与状态:服务器会维护会话状态与状态变化通知,通过状态轮询或事件机制向客户端反馈变化。
- 退出与清理:正常结束会话后,关闭会话并清理内存/资源;如遇异常可通过 CLI 提供的退出/关闭命令进行干净退出。
重要提示:本实现被标记为实验性,可能存在不稳定、向后不兼容的变更,请在正式生产环境前进行充分测试并关注变更日志。
信息
分类
AI与计算