Spacebot MCP Server

使用说明

  • 项目简介 Spacebot MCP 服务器是在 Spacebot 框架内实现的外部模型上下文协议(MCP)服务器。它负责暴露和管理资源(数据访问)、工具(外部功能调用)以及 Prompt 模板(LLM 交互模板)的服务端能力,允许 LLM 客户端通过标准的 JSON-RPC 调用来读取资源、调用工具、获取并渲染 Prompts。服务器支持多传输协议(如 STDIO、HTTP)并提供自动重连、热重载等特性,确保在复杂多用户场景中的可靠性与可扩展性。
  • 主要功能点
    1. 资源与数据访问:提供对资源的托管、版本化和查询能力,方便 LLM 侧通过 MCP 获取所需上下文数据。
    2. 工具注册与执行:通过 MCP 自动发现并注册工具服务,LLM 可以通过服务器访问外部功能(如 API 调用、数据库访问、文件操作等)。
    3. Prompt 模板定义与渲染:定义可定制的 Prompt 模板,按需渲染并提供给 LLM 使用,支持灵活的交互模式。
    4. JSON-RPC 通信:遵循 MCP 规范,以 JSON-RPC 风格收发请求与响应,确保跨语言、跨平台的互操作性。
  1. 多传输与热加载:支持 STDIO(本地工具)和 HTTP(远程服务器)两种传输,且支持配置变更的热重载,断线重连策略在后台自动重连。
  2. API 监控与管理:提供对 MCP 服务器的注册、状态与监控的 API,便于运行时管理与观测。
  3. 会话与权限管理:处理会话、能力声明,以及对资源/工具的访问权限控制,提升安全性与可控性。
  • 安装与运行
    1. 构建:在仓库根目录执行构建,生成包含 MCP 服务的二进制。
    2. 启动:以 Spacebot 主二进制在系统上运行,MCP 服务作为其组件之一随主守护进程启动并暴露 MCP 接口。
    3. 配置:在 agent 配置中通过 config.toml 声明 MCP 服务器(名称、传输方式、连接参数等),服务器会热加载配置变化并对外暴露 API。
    4. 连接客户端:MCP 客户端通过指定的服务器名称与传输方式连接,并使用标准的 JSON-RPC 调用与 MCP 服务交互。
  • 服务器配置示例(可用于 MCP 客户端理解的 JSON 描述,实际配置仍以仓库中的 config.toml 为准) [ { "server_name": "filesystem", "transport": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"], "notes": "通过本地子进程 STDIO 传输的服务器,提供文件系统相关的资源/工具访问" }, { "server_name": "sentry", "transport": "http", "url": "https://mcp.sentry.io", "headers": { "Authorization": "Bearer ${SENTRY_TOKEN}" }, "notes": "远程 MCP 服务,HTTP 传输,进行外部 API 与数据访问的映射" } ] 说明
    • server_name 表示 MCP 服务对外的标识名称,需在客户端一致;
    • transport 表示传输方式,stdio 表示本地子进程交互,http 表示远端 MCP 服务,通过 HTTP 通道通信;
    • command/args 仅在 stdio 传输时使用,用于指定外部 MCP 服务的可执行命令及参数;
    • url/headers 仅在 http 传输时使用,指定远程 MCP 服务的地址和请求头信息。
  • 基本使用方法
    1. 在 Spacebot 的配置中注册 MCP 服务器,确保 Spacebot 启动时自动加载并尝试连接已配置的 MCP 服务。
    2. 客户端通过 MCP 接口发起资源查询、工具调用、以及 Prompt 获取请求,由 MCP 服务器统一管理和路由到对应的服务实现。
    3. 如服务器断线,系统会在后台自动重连,确保服务可用性。
    4. 当需要新增、修改或移除 MCP 服务器时,可在配置中热加载,服务器会对变更进行 reconciler,尽量避免阻塞现有工作流。

服务器信息