Abathur Swarm MCP服务器

使用说明(Markdown 格式)

  • 项目简介

    • Abathur 是面向 AI 代理的自我进化任务编排系统,MCP服务器模块提供标准化上下文与能力暴露,使 LLM 客户端能够统一读取资源、调用工具、获取并渲染提示模板,并通过 JSON-RPC 与服务端通信进行上下文查询与功能调用。核心在于将资源、工具、Prompt 以标准化 API 对外暴露,并通过会话与能力声明实现可扩展的上下文服务框架。
  • 主要功能点

    • 资源管理与数据访问:后端暴露资源/ memories 等“资源”的创建、查询、更新、删除等能力,便于 LLM 客户端获取运行上下文或历史数据。
    • 工具注册与执行:支持把外部工具(Tools)注册到 MCP 服务端,LLM 客户端可通过 MCP 调用这些工具完成具体任务。
    • Prompt 模板定义与渲染:提供对 Prompt 模板的定义与渲染能力,便于自定义对话模式和交互流程。
    • JSON-RPC 通信:核心通信遵循 JSON-RPC 2.0,服务器端接收请求并返回 JSON-RPC 响应;也支持通过事件/通知的形式向客户端传递信息。
    • 会话与能力声明:服务器管理会话、能力声明以及对多种传输协议的支持(如 SSE、WebSocket、Stdio 等,方便不同客户端/环境接入)。
    • 多子服务器暴露点:Memory HTTP、Tasks HTTP、A2A Gateway、Events SSE、以及一个组合启动 All 的 MCP 服务器,便于按需暴露 MCP 功能。
  • 安装步骤

    • cargo build --release
    • cargo test(可选,运行仓库内集成测试)
    • 在具备 Rust 构建环境后,通过命令行启动 MCP 服务器子模块或全部服务器:
      • abathur mcp MemoryHttp: 启动内存资源的 MCP 服务端
      • abathur mcp TasksHttp: 启动任务资源的 MCP 服务端
      • abathur mcp A2aHttp: 启动 A2A 协议的 MCP 网关
      • abathur mcp All: 同时启动内存、任务、A2A 等 MCP 服务器
    • 启动过程中可通过 --host、--port、--with-mcp-servers 等参数进行配置,默认端口与地址在源码中已有设定。
  • 服务器配置(MCP客户端需要的配置是 JSON 格式,用于描述需要连接的 MCP 服务器信息;以下为示例,仅用于说明,不属于客户端代码)

    • 服务器名称: memory-http
      • command: abathur
      • args: ["mcp", "MemoryHttp", "--host", "127.0.0.1", "--port", "9100", "--with-mcp-servers"]
    • 服务器名称: tasks-http
      • command: abathur
      • args: ["mcp", "TasksHttp", "--host", "127.0.0.1", "--port", "9101", "--with-mcp-servers"]
    • 服务器名称: a2a-http
      • command: abathur
      • args: ["mcp", "A2aHttp", "--host", "127.0.0.1", "--port", "8080", "--with-mcp-servers"]
    • 服务器名称: all
      • command: abathur
      • args: ["mcp", "All", "--host", "127.0.0.1", "--memory-port", "9100", "--tasks-port", "9101", "--a2a-port", "8080"]

    说明:以上配置用于 MCP 客户端了解如何启动并访问 MCP 服务器;客户端实现不需要在此处出现代码片段(以便易读性),仅提供配置示意。

  • 基本使用方法

    • 运行 MCP 服务器:通过 Abathur CLI 的 mcp 子命令启动 MemoryHttp、TasksHttp、A2aHttp、Events 等 MCP 端点。根据实际需求选择单独暴露某一个端点或一次性启动全部。
    • 客户端接入:MCP 客户端需要用 JSON-RPC 与服务器进行交互,发送方法名(如 task/get、memory/read、tool/call 等)及参数,服务端返回符合 JSON-RPC 2.0 的响应或错误信息。
    • 会话与通知:服务器将维护会话与状态,必要时向客户端发送通知事件(例如通过 SSE/WebSocket 等传输实现)。
  • 额外说明

    • 该仓库还包含大量集成测试与端到端用例,覆盖 Goal/Task/Memory/Agent/ DAG/ Evolution 等组件的交互,显示出较完整的 MCP 服务端能力覆盖范围,但在实现细粒度和 MCP 标准完全一致性方面,可能存在多种暴露点(REST 与 JSON-RPC 混合实现)的场景,需要在实际应用中按需选型。

服务器信息