codemem MCP服务器

使用说明

  • 项目简介
    • 该仓库实现了一个完整的 MCP 服务器端框架,用于向 LLM 客户端提供一致的上下文服务。核心能力包括资源管理(如会话、记忆项等数据资源)、工具注册与执行(通过工具接口让 LLM 调用外部功能)、以及提示/摘要相关的渲染与获取。服务器通过 JSON-RPC 风格的请求与响应与客户端进行通信,在本地 SQLite 数据库中维护会话、记录和检索历史上下文。
  • 主要功能点
    • 资源管理与数据访问:提供对内存、会话、历史项等资源的查询、筛选和聚合,以构建合适的上下文包供 LLM 使用。
    • 工具注册与执行:将特定工具暴露给 LLM 调用,支持远程执行外部功能并将结果纳入上下文中。
    • Prompt 与模板渲染:能够获取并渲染与会话相关的 Prompt 模板或上下文信息,协助形成更有效的对话上下文。
    • JSON-RPC 交互:服务器通过标准的 JSON-RPC 消息格式接收请求、返回响应,适用于 LLM 客户端的请求与回传。
    • 会话与能力管理:对会话进行创建、跟踪、清理等生命周期管理,并根据需要声明或暴露相应能力。
    • 多传输通道的适配(设计目标):理论上支持多种传输协议以实现上下文服务的实时注入与交互,便于与不同类型的 LLM 客户端协同工作。
  • 安装与运行步骤
    • 准备工作:需要支持 Python 3.11+ 的运行环境和 SQLite 数据库。
    • 安装依赖与环境准备
      • 安装 Python 环境后,获取源码并安装本项目依赖(通常通过 Python 的包管理工具实现安装)。确保 OpenCode/OpenAI/Claude 等外部依赖在运行时可用。
    • 启动 MCP 服务器
      • 使用仓库内提供的入口(根据实际部署方式,通常以直接运行服务器模块或通过插件管理器启动方式之一来启用 MCP 服务),以便客户端通过 MCP 接口进行交互。
  • 服务器配置(示例说明,供 MCP 客户端参考)
    • MCP 客户端连接服务器的必要信息通常包含:
      • server name(服务器标识)
      • command(启动命令)
      • args(启动参数)
    • 根据仓库信息,示例配置(JSON 格式)如下所示,用于描述 MCP 服务器端的启动与接入信息,便于客户端配置连接: { "server_name": "codemem-mcp", "command": ["uvx", "codemem==<版本号>", "mcp"], "args": [], "notes": "该配置描述 MCP 服务器的启动命令与参数。客户端在与 MCP 服务器建立连接时,需使用启动命令与参数来启动服务器进程或通过指定的后端执行入口接入。确保插件版本与服务器端实现版本一致以避免兼容性问题。" }
    • 说明:实际的客户端使用也会依赖具体实现细节(如 uvx 的版本、插件集成方式、以及服务器对接协议细节等)。上面的示例仅用于帮助理解客户端需要的字段与格式,具体的生产部署请参照仓库的文档与实际部署脚本。
  • 基本使用方法
    • 在客户端(LLM 所在端)配置 MCP 服务器后,即可通过 MCP 提供的接口请求资源、执行工具、获取/渲染 Prompt 等。
    • 常见流程包括:
      • 客户端查询资源,例如读取会话上下文、检索相关记忆以构建提示系统。
      • 客户端调用工具,执行外部功能并将结果整合进对话上下文。
      • 客户端请求 Prompt 模板或预置模板以渲染最终系统提示。
    • 服务器端负责会话管理、能力声明及上下文渲染管线,确保上下文信息安全、可扩展地向 LLM 客户端提供。
  • 运行与调试建议
    • 使用单元测试与集成测试作为先导的开发方式,确保 MCP 服务器在不同场景下的行为符合协议与数据模型。
    • 在正式环境中,结合现有的插件/工具链(如 OpenCode/ Claude 插件)进行端到端验证,确保 MCP 服务器与客户端的交互完整性。

服务器信息