Clauder MCP 服务器实现

  • 项目简介
    • Clauder 是一个基于 MCP(Model Context Protocol)的后端服务器实现,用来在 Claude Code 生态中提供统一的上下文服务。它支持持久记忆、跨目录和跨实例的消息通信,以及对资源、工具和提示模板的管理与执行,确保 LLM 客户端在不同会话之间可共享上下文。
  • 主要功能点
    • 资源管理与数据访问:持久化存储会话中产生的记忆、事实等资源,支持按目录划分与跨目录聚合。
    • 工具注册与调用:内置若干 MCP 工具(如 remember、recall、get_context、send_message 等),允许客户端通过工具进行外部功能调用、记忆与检索。
    • 提示模板与上下文渲染:提供对上下文的组织、渲染与输出,方便将相关信息提供给 LLM 使用。
    • JSON-RPC 接口与通信:服务器通过标准的 JSON-RPC 请求/响应格式处理初始化、工具调用、资源查询等请求。
    • 会话与实例管理:支持在同一工作目录下创建多个实例,跨实例的消息传递、心跳、领导者选举等。
    • 持久化存储与全文检索:使用 SQLite 做主数据存储,Bleve 做全文检索索引,提供快速的事实搜索能力。
    • 可运行的服务器入口:提供 clauder serve 命令,作为 MCP 服务器被 Claude Code 或其他 MCP 客户端调用。
  • 安装与运行步骤
    • 克隆代码并编译:
      • 使用 Go 构建环境,将项目源码编译为可执行程序。
    • 运行 MCP 服务器:
      • 启动命令:clauder serve
      • 该服务器将监听并处理来自 MCP 客户端的 JSON-RPC 请求,提供初始化、工具调用、资源查询等能力。
  • 服务器配置(MCP 客户端所需信息)
    • JSON 配置示例(用于 MCP 客户端将 Clauder 作为 MCP 服务器进行连接): { "mcpServers": { "clauder": { "command": "/path/to/clauder", "args": ["serve"] } // 可以添加更多服务器配置 } }
    • 字段说明(便于理解,不作为代码块呈现)
      • mcpServers: MCP 服务器集合的顶级配置对象。
      • clauder: 服务器名称(在客户端配置中作为唯一标识使用)。
      • command: 启动 clauder 服务器的可执行文件路径。
      • args: 启动参数数组,对应服务器在运行时的命令行参数,这里应至少包含 "serve"。
    • 说明
      • MCP 客户端只需要上述配置信息即可与服务器建立初始连接。实际运行时,Clauder 还会管理实例、消息、记忆等上下文数据,确保后续请求能够正确处理。
  • 基本使用方法
    • 启动服务器后,客户端可以通过以下操作与服务器交互:
      • 初始化会话,PI 通过 initialize 请求建立能力声明与协作能力。
      • 列出可用工具、资源和提示模板(tools/list、resources/list、prompts/list)。
      • 调用具体工具(tools/call),如记忆、检索、发送消息等。
      • 查询和渲染相关的上下文信息(get_context、get_global_context)。
    • 开发者在使用时应遵循 MCP 的请求/响应模式,服务器对每个请求返回一个对应的 JSON-RPC 响应,包含结果或错误信息。

服务器信息