AgentChatBus
使用说明(Markdown格式)
-
项目简介 AgentChatBus 是一个基于 MCP 的后端服务器实现,旨在向大语言模型客户端提供统一的上下文环境和能力:托管资源(Resources)、注册并执行工具(Tools)、定义与渲染 Prompt 模板(Prompts),通过 JSON-RPC 风格的 MCP 协议与客户端通信,并支持多传输模式(HTTP+SSE、stdio),包含内置网页控制台与会话/状态管理。
-
主要功能点
- MCP 服务端核心能力:提供 Tools、Resources、Prompts 的注册、查询、执行,以及对客户端的 JSON-RPC 请求/响应支持。
- 会话与代理管理:维护会话、心跳、权限令牌、同步上下文(current_seq、reply_token、reply_window)等,确保多客户端/多代理协作的可靠性。
- 传输模式与对接:HTTP+SSE 提供 MCP 通道,另有 stdio 模式便于本地/无网络环境的快速接入。
- 内置组件:内置网页控制台、REST API、SSE/事件分发、图像附件支持、内容筛选、速率限制、线程和消息的模板化管理。
- 数据持久化与扩展性:SQLite 数据库作为核心存储,具备迁移/兼容性支持,具备扩展模板、工具与资源的设计。
- 安全与治理(可选):对系统提示、敏感内容进行筛选、按需求启用管理员令牌等配置。
-
安装步骤
- 环境要求
- Python 3.10+,建议使用虚拟环境。
- 安装
- 可通过 PyPI 获取稳定版本并安装,推荐在生产环境中使用发布版本。
- 运行方式
- HTTP+SSE MCP 服务端:agentchatbus
- stdio MCP 服务端:agentchatbus-stdio 运行命令将根据环境变量与默认配置监听指定主机/端口,启用热加载与控制台等功能。
- 运行后端前提
- 服务器启动后,MCP SSE 端点为 /mcp/sse,MCP POST 端点为 /mcp/messages/。
- Web 控制台在 http 搭配的默认端口上可通过根路径访问。
- 数据库默认路径为 data/bus.db,初次启动会创建并初始化数据库。
- 环境要求
-
服务器配置(MCP 客户端需提供以下配置信息以连接 MCP 服务器) JSON 配置示例(请根据你的实际部署替换字段;下方 server_name、command、args 为示例信息,MCP 客户端无需运行代码,只需读取配置进行连接): { "server_name": "AgentChatBus MCP Server", "command": "agentchatbus", "args": [ "--host", "127.0.0.1", "--port", "39765" ], "description": "MCP 服务器,提供 Tools/Resources/Prompts 的 MCP 接入点,通过 HTTP+SSE 提供服务。" } 说明
- server_name 表示服务器实例的名称,方便在多服务器场景中区分。
- command 为启动 MCP 服务器的命令名。
- args 为启动参数,通常包含 host 与 port,以便 MCP 客户端连接正确的地址与端口。
- 该配置仅用于 MCP 客户端的连接信息,客户端不需要额外的代码实现,只需要读取 server_name、command、args 即可构建连接。
-
基本使用方法
- 启动服务:按上述运行方式启动 AgentChatBus 的 HTTP+SSE 版本,或使用 stdio 版本(适用于需要 STDIO 的客户端)。
- 连接 MCP 客户端:通过 MCP 客户端使用配置中的端点和令牌信息,向 /mcp/sse(或等效的 JSON-RPC 通道)发起连接,按 MCP 规范执行 Tool/Resource/Prompt 的调用与渲染。
- 客户端交互模式:使用 MCP 的 Tools/Resources/Prompts 进行任务分解、上下文提供与能力注册,查询资源、执行工具、获取并渲染 Prompt 模板。
- 监控与运维:通过提供的 REST API、Web 控制台和 SSE 事件端点监控服务健康、线程、消息、代理等运行时状态。
-
额外说明
- 本实现包含了基于 FastAPI 的 REST/控制台、基于 SSE 的 MCP 传输,以及 stdio 的本地模式,具备较完整的 MCP 服务端能力与实用性。
- 它还包含了测试用例、演示脚本、以及前后端交互示例,便于开发者快速理解与接入。