omengrep MCP 服务器实现

  • 项目简介

    • 该仓库内含一个基于 MCP 的服务器实现,能够接收 MCP 客户端的 JSON-RPC 请求,返回相应的 JSON-RPC 响应,并在必要时执行业务逻辑(如代码检索、相似代码查询等)。
    • 服务器在命令行客户端环境下运行,默认通过 stdio 传输数据,便于集成到代码助手、IDE 插件或 Claude Code 等工具的工作流中。
  • 主要功能点

    • MCP 协议核心能力
      • initialize:提供服务器能力信息、协议版本等初始化信息。
      • tools/list:列出可用工具及其输入输出规范,帮助客户端了解可调用的外部功能。
      • tools/call:执行指定工具(如综合性代码检索、相似代码查询、状态查询等)并返回结果。
    • 资源/工具执行
      • 支持通过现有的本地索引/模型进行代码检索、相似性搜索、索引状态查询等功能。
    • 通过 stdio 的 JSON-RPC 通信
      • 服务器从标准输入读取 JSON-RPC 请求并输出响应,遵循 JSON-RPC 2.0 规范的请求/响应格式。
  • 安装步骤

    • 需要在支持 Rust 的环境中构建运行。
    • 克隆仓库后,使用 cargo 编译运行。具体地,执行 og mcp 命令即可启动 MCP 服务器实例(该命令会进入服务器模式,监听标准输入输出进行 MCP 通信)。
  • 服务器配置(MCP 客户端所需的配置信息,JSON 格式) 说明:MCP 客户端需要配置信任的 MCP 服务器信息,以便建立连接并进行后续通信。以下配置示例用于 Claude Code 等集成场景,实际路径请按部署环境填写。 { "server_name": "omengrep-mcp", "command": "/path/to/og", // 运行 og 二进制的完整路径 "args": ["mcp"] // 启动时传递给二进制的参数,表示进入 MCP 服务器模式 } 注释说明

    • server_name:用于标识该 MCP 服务器的名称,便于管理和日志识别。
    • command:可执行 MCP 服务器的程序路径,在本仓库中对应的是 og 的可执行文件路径。
    • args:启动参数,包含启动 MCP 服务器的子命令(mcp),确保客户端在启动后以标准输入/输出的 JSON-RPC 形式通信。
    • 说明:MCP 客户端通常仅需要知道上述 server_name、command 与 args 即可完成连接配置,不需要额外的实现细节。
  • 基本使用方法

    • 启动服务器
      • 在支持的环境中直接运行命令 og mcp(或在集成环境中通过配置的命令和参数启动)。
    • 客户端怎么交互
      • MCP 客户端通过 JSON-RPC 的请求格式向服务器发送请求,例如初始化、列出工具、调用工具等。
      • 服务器按 JSON-RPC 2.0 标准返回响应,包含结果或错误信息。
    • 常用操作
      • 通过 initialize 获取服务器能力信息。
      • 通过 tools/list 获取可用工具清单。
      • 通过 tools/call 执行具体工具,例如搜索、相似查询或状态查询等,并获取结果用于后续展示或处理。

服务器信息