Thread MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介 Thread MCP 服务器是一个用来在后端管理对话线程的 MCP 实现。它通过 MCP 协议向客户端暴露一组工具(如保存、查找、更新、删除、继续对话等),并可将会话保存到本地磁盘或远程服务器。服务器还提供将对话渲染成 Markdown 或 JSON 的格式化输出,方便在不同环境下使用。

  • 主要功能点

    • MCP 工具集合:save_thread、find_threads、update_thread、delete_thread、resume_thread,支持通过 ID 或标题定位会话,并提供过滤、排序和上下文提取等能力。
    • 存储能力:支持本地存储(文件系统)和远程存储(通过 REST API),并维护一个索引文件来管理已保存的会话信息。
    • 输出格式化:提供 Markdown 和 JSON 两种输出格式的格式化器,支持包含/排除元数据、时间戳等选项。
    • JSON-RPC 通信:服务器通过 MCP 规定的 ListTools 与 CallTool 请求处理工具列表与工具调用请求,返回结构化的 JSON 响应。
    • 传输方式:当前实现通过标准输入输出(stdio)提供 MCP 服务器端接入点,便于作为子进程对接 LLM 客户端。
  • 安装步骤

    1. 安装依赖并构建代码(如有需要):
      • 安装依赖并构建项目,以生成可运行的 dist 产物。
    2. 启动服务器
      • 运行生成的可执行入口,通常通过 Node 运行 dist/index.js 启动服务器。服务器将通过 stdio 传输与 MCP 客户端通信。
  • 服务器配置(给 MCP 客户端使用的配置信息) 说明:MCP 客户端需要配置服务器启动信息,包含服务器名称、启动命令以及参数。以下是基于仓库信息的准确示例配置(请以实际部署路径替换其中的路径): { "serverName": "thread-mcp", "command": "node", "args": ["/path/to/thread-mcp/dist/index.js"] }

    注释

    • serverName 对应 MCP 服务的名称,与服务器端实现中的名称保持一致,便于客户端在多服务器场景中区分。
    • command 为启动 MCP 服务器所用的命令。
    • args 为启动命令的参数,通常包含可执行文件的路径(如 dist/index.js)。
    • 该配置仅用于客户端连接该 MCP 服务器,不需要客户端实现内置逻辑。
    • 若直接从源码运行,你也可以使用 node dist/index.js 启动。
  • 基本使用方法

    1. 启动服务器(如使用 TypeScript 源码,请先完成构建)。
    2. 使用 MCP 客户端通过 JSON-RPC 调用工具列表(tools/list)来了解可用工具。
    3. 通过工具调用(tools/call)执行具体操作,例如保存会话、检索、更新、恢复等。
    4. 根据需要选择本地或远程存储、选择输出格式(markdown/json)以及是否包含元数据和时间戳。
    5. 使用 resume_thread、find_threads 等工具进行上下文获取、继续对话。
  • 注意事项

    • 当前实现通过 stdio 传输,适合集成在同一进程或子进程间通信中。
    • 代码结构清晰、包含单元测试与端到端测试,覆盖了大部分核心场景。

服务器信息