代码查询服务

OpenGrok mcp是一个允许大型语言模型查询源代码仓库的服务,提供定义、符号搜索、项目搜索和项目列表功能。

  • by SleepyDog053
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 SleepyDog053/opengrok-mcp

使用说明

OpenGrok mcp

此存储库包含一个模型上下文协议服务器,用于允许LLM查询源代码存储库。它公开了一些基本的OpenGrok功能,LLM可以使用这些功能来理解您正在处理的代码库

特性

允许LLM查询OpenGrok以搜索:

  • 定义
  • 符号搜索
  • 跨项目的全面搜索
  • 项目列表

它还应该为用户返回可点击的URL

安装

先决条件

  • OpenGrok服务器
  • Python 3
  • 紫外线

环境设置

git clone https://github.com/SleepyDog053/opengrok-mcp
cd opengrok-mcp
uv sync

source .venv/bin/activate

MCP客户端

这可以运行多个MCP客户端,但可能需要编辑才能在其他地方工作

1.克劳德

{
  "mcpServers": {
    "opengrok": {
      "command": "python",
      "args": ["server.py"],
      "env": {
        "OPENGROK_BASE_URL": "http://localhost:8080",
        "OPENGROK_TOKEN": "your-token-if-needed"
      }
    }
  }
}

2.食品法典

[mcp_servers.OpenGrok]
command = "python"
args = ["/route/to/opengrok-mcp/server.py"]

[mcp_servers.OpenGrok.env]
OPENGROK_BASE_URL = "http://localhost:8080"
OPENGROK_TOKEN="your-token-if-needed"

OpenGrok Gotchas

为了使OpenGrok能够正确地进行查询,您需要向一些受限访问的API端点发送API请求。 这些API端点需要使用承载API令牌。对于开发设置,如何启用它并不总是很清楚

最好的方法是添加一个 只读配置 其与主配置合并。此配置看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_121" class="java.beans.XMLDecoder">
  <object class="org.opengrok.indexer.configuration.Configuration">
    <!-- 1) Bearer tokens the webapp will accept for API calls -->
    <void property="authenticationTokens">
      <void method="add">
        <string>your-token</string>
      </void>
    </void>

    <!-- 2) Allow tokens over HTTP (dev only) -->
    <void property="allowInsecureTokens">
      <boolean>true</boolean>
    </void>
  </object>
</java>

可以找到更多详细信息 这里 如有需要