lgrep MCP 服务器

使用说明(Markdown)

  • 项目简介

    • 这是一个基于 MCP 的后端服务器实现,整合了语义代码检索(通过 Voyage Code 3 的嵌入向量与本地 LanceDB 存储)、符号检索(借助 tree-sitter 的解析索引)以及多种工具接口,用以向大语言模型提供高效的上下文信息与功能扩展。
  • 主要功能点

    • 资源管理:在本地存储和索引中的代码块、符号等资源,提供可访问的数据能力。
    • 工具注册与执行:通过 MCP 服务器暴露若干工具(如符号索引、文件树、符号查询、文本搜索、获取符号源等),LLM 客户端可调用这些工具完成复杂任务。
    • Prompt/模板支持:支持按需渲染和组织提示模板,帮助 LLM 与代码基进行更高效的交互。
    • 会话与多项目隔离:支持同时管理多个会话/项目的上下文、索引和缓存,确保不同会话间的数据隔离。
    • 多传输协议:支持 stdio 与 HTTP 流式传输(streamable-http),便于在不同环境下部署和复用一个暖服务器。
    • 安全与完整性:对资源访问、符号内容读取、文件字节范围检索等进行路径与权限检查,保证数据安全与稳定性。
  • 安装步骤

    • 将源码克隆或下载到本地环境。
    • 安装依赖并安装本仓库以开发模式运行(示例:pip install -e ".[dev]",若无开发依赖也可直接 pip install -e ". ")。
    • 需要的环境变量:VOYAGE_API_KEY(语义检索所需的 Voyage Key,符号引擎在本地即可运行,无需 Voyage Key)。
    • 启动服务器(推荐):lgrep 使用 streamable-http 传输实现一个暖服务,命令类似:
      • VOYAGE_API_KEY=your-key LGREP_WARM_PATHS=/path/to/project lgrep --transport streamable-http --host 127.0.0.1 --port 6285
    • 将 MCP 客户端配置指向上述地址以建立连接。
  • 服务器配置(示例,JSON 结构说明,客户端无需实现)

    • server name: lgrep
    • command: lgrep
    • args: ["--transport","streamable-http","--host","127.0.0.1","--port","6285"]
    • 注释:该配置用于 MCP 客户端连接到服务器,描述了启动服务的命令与参数。实际客户端实现不需要在代码中运行该配置,只需知道服务器地址和命令即可与 MCP 服务器建立连接。
  • 基本使用方法

    • 启动并保持一个暖服务,代理多会话请求。
    • 通过 MCP 客户端调用以下工具以实现不同任务:
      • 语义检索:lgrep_search_semantic,用于意图发现和概念检索。
      • 符号检索与获取:lgrep_index_symbols_folder、lgrep_search_symbols、lgrep_get_symbol 和 lgrep_get_symbols 等工具用于符号级检索与源代码获取。
      • 文件结构与仓库结构:lgrep_get_file_outline、lgrep_get_repo_outline 等工具用于结构化导航。
      • 其他辅助工具:lgrep_search_text、lgrep_invalidate_cache 等。
    • 使用提示:在调用工具时,需确保相应的本地索引或符号索引已建立(一般通过自动索引或显式调用对应的 MCP 工具完成)。
  • 运行示例(非代码片段,仅说明)

    • 在 OpenCode/OpenAI 类似的环境中,将 MCP 服务器地址配置到客户端,使代理可以通过 REST/JSON-RPC 调用服务器暴露的工具。
    • 客户端可按需求调用不同工具,服务器返回标准的 JSON 响应,支持进一步的推理与决策。

服务器信息