Neurolithe MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • Neurolithe MCP 服务器实现是一个用 Rust 编写的后端服务,按 MCP(Model Context Protocol)规范实现了通过标准输入输出(STDIO)进行 JSON-RPC 通信的服务器端组件。它管理会话级上下文、短期记忆(STM)与知识图谱中的长期记忆(LTM),并暴露用于读取/写入资源、执行工具、以及获取/渲染 Prompt 的能力。服务器端还负责会话管理、记忆的压缩与衰减等任务,目标是在 LLM 客户端和本地记忆库之间提供稳定、可扩展的上下文服务。
  • 主要功能点

    • MCP 核心通信:实现对 MCP 请求和响应的处理(包括 initialize、tools/list、tools/call 等),基于 JSON-RPC 2.0。
    • 工具调用(Tools):实现诸如 push_dialogue、store_memory、query_memory、delete_tenant、export_tenant 等工具的执行逻辑,支持与后端应用交互。
    • 会话与上下文管理:通过 SessionManager 管理每个会话的对话缓冲、上下文压缩,以及与知识图谱的相关事实检索。
    • 知识图谱与存储:使用 SQLite + sqlite-vec 实现的向量检索与图结构(节点、边、向量索引、FTS 索引),并提供记忆的查询、扩展与导出。
    • 多模态嵌入与检索:通过 LLM 客户端获取文本嵌入、执行向量相似性检索以及对事实进行解析、描述与合并。
    • 模块化架构:应用层、领域模型、基础设施分层清晰,便于扩展和测试。
  • 安装步骤

    • 依赖与编译
      • 请确保已安装 Rust(以及所需的编译工具链)。
      • 将代码克隆到本地后,在项目根目录执行构建与运行,Rust 项目会自动拉取依赖并编译。
    • 运行
      • 直接使用 cargo 构建并运行,可通过命令行进入到项目目录后执行 cargo run 来启动服务器(默认通过 STDIO 接收 JSON-RPC 请求)。
    • 配置依赖
      • 运行前需准备好 OpenAI/Gemini/Anthropic 等 LLM 提供者的 API Key,以及本地数据库(可选内存模式)等配置。
  • 服务器配置(MCP 客户端需要的连接信息) 说明:MCP 客户端需要提供启动服务器的命令和参数,以便通过 MCP 连接建立会话。本服务器的配置示例(JSON)如下,请按照实际环境填充: { "serverName": "neurolithe", "command": "~/.neurolithe/bin/neurolithe", "args": [], "env": { "NEUROLITHE_API_KEY": "your-api-key" } }

    说明:

    • serverName: 服务器实例名称,客户端用于区分不同 MCP 服务器的标识。
    • command: 启动 Neurolithe MCP 服务器的可执行文件路径(示例为用户本地安装的二进制路径)。
    • args: 启动参数数组,当前实现默认不需要额外参数,如有需要可在此添加。
    • env: 启动时注入的环境变量(如 API Key 等)。请替换 your-api-key 为你的实际鉴权密钥。
  • 基本使用方法

    • 启动与连接
      • 使用上述配置在 MCP 客户端配置中指向 neurolithe 服务器的启动命令与参数,客户端即可通过 MCP 协议的 JSON-RPC 方式与本服务器交互。
    • 常用交互
      • initialize:获取服务器能力和信息。
      • tools/list:获取可用工具及输入结构。
      • tools/call:按需调用工具(如 push_dialogue、store_memory、query_memory 等),客户端将参数以 JSON 形式传入,服务器执行并返回结果。
    • 使用步骤示例(简要)
      • 通过客户端发送 initialize 请求,确认服务器就绪与能力。
      • 使用 tools/list 获取可用工具及其输入字段。
      • 调用 push_dialogue 提供 tenant_id、session_id、new_message、ccl,获取上下文压缩后的结果。
      • 调用 query_memory 进行历史记忆检索,获得与查询相关的 MemoryResult。
      • 如需导出/删除租户数据,分别调用 export_tenant、delete_tenant。
  • 备注

    • 该实现通过 STDIO 进行 MCP 交互,不同于基于网络的实现,适合在本地 AI 工作流中嵌入使用。
    • 服务器具有记忆管理、向量检索、图关系查询等能力,适合在本地进行大语言模型上下文管理与推理辅助。

服务器信息