Memo MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • Memo MCP 服务器是一部分 Memo 项目的一环,负责把本地代码库的语义索引通过 MCP 协议对外暴露,允许 LLM 客户端读取资源、执行工具以及获取经过渲染的提示模板。服务器使用 JSON-RPC 2.0 与客户端通信,默认通过标准输入输出传输数据,方便与其他进程集成。
  • 主要功能点

    • MCP 请求处理:实现 initialize、tools/list、tools/call、以及通知类型的处理,返回符合 MCP 规范的 JSON-RPC 响应。
    • 资源与工具查询:提供对 .memo/index 中的 arch/interface/stories/issues 等资源的查询能力,及 memo_list_keys、memo_get_value 等工具调用能力。
    • 提示与上下文:内嵌提示模板(context、analyse、feedback 等)用于构建和渲染 LLM 的交互上下文。
    • 会话与状态管理:通过 status.json 保存当前分析状态,支持 idle 与 analyzing 两种状态,以及 since 时间戳。
    • 日志与历史记录:可选的历史记录系统,记录 MCP 交互与服务器行为,便于调试。
    • 整体工作流:在启动时可创建并初始化 .memo/index,确保索引存在后再启动 MCP 服务。
  • 安装步骤

    • 获取源码并编译运行(请确保已安装 Go 语言环境)。
    • 构建并执行 MCP 服务器:在项目根目录执行 go build,然后运行生成的二进制文件,或直接通过 Memo 的 CLI 运行:memo mcp -p /path/to/工作目录。
    • 预备索引数据:在启动 MCP 服务器前,先使用 memo watch 或 memo scan 生成并更新 .memo/index(服务器读取该目录下的索引数据来响应查询)。
  • 服务器配置(MCP 客户端使用需要,但客户端不需要代码,只需了解配置要点)

    • 服务器名称:memo
    • 启动命令:memo
    • 参数(args):["mcp"]
    • 该配置用于 MCP 客户端连接 Memo 的 MCP 服务器;客户端不需要对服务器端实现做改动。
    • 备注:以下配置仅用于理解,实际客户端通常通过其自身配置文件或环境变量指定启动命令与参数。
    • 伪示例(非代码块文本,仅描述用途):
      • server_name: memo
      • command: memo
      • args: ["mcp"]
  • 基本使用方法

    • 预热索引:在目标工作目录执行 memo watch 或 memo scan,确保 .memo/index 已经生成并可被 MCP 服务器访问。
    • 启动 MCP 服务器:在工作目录下运行 memo mcp -p /path/to/工作目录(若已经在根目录执行,则省略 -p 参数)。
    • 连接与交互:使用支持 MCP 的客户端(如 Kimi 等)通过 JSON-RPC 与服务器通信,请求包括 initialize、tools/list、tools/call 等方法。服务器将返回遵循 MCP 规范的 JSON-RPC 响应。
    • 资源示例:通过 memo_list_keys 获取某路径下的字典/列表结构信息,通过 memo_get_value 获取具体值(返回 JSON 字符串)。
    • 停止服务:通过正常的进程结束方式或向标准输入发送结束信号,服务器会退出并关闭历史日志等资源。

服务器信息