代码搜索服务

一个Spring Boot应用程序,集成了OpenGrok并通过模型控制协议(MCP)为AI工具(如VS Code、Claude Desktop、GitHub Copilot)提供代码搜索功能。

  • by subinoy-roy
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 subinoy-roy/opengrok-mcp

使用说明

OpenGrok MCP

一个与OpenGrok集成的Spring Boot应用程序,通过模型控制协议(MCP)公开代码搜索功能,供人工智能工具(如VS code、Claude Desktop、GitHub Copilot)使用。

概述

该项目在OpenGrok代码搜索和AI驱动的开发工具之间架起了一座桥梁。它通过MCP公开搜索功能,允许工具查询OpenGrok存储库中的代码、符号和文件。

特性

  • 在OpenGrok中搜索代码、符号或文件名
  • MCP stdio传输,用于与AI工具集成
  • 可配置的OpenGrok基本URL
  • 记录到文件(为了MCP兼容性而抑制控制台输出)

先决条件

  • Java 17+
  • 梅文
  • OpenGrok实例正在运行且可访问

安装

  1. 克隆存储库:
    git clone <repo-url>
    cd opengrok-mcp
    
  2. 构建项目:
    mvnw clean package
    
  3. 配置 src/main/resources/application.properties 根据需要(见下面的配置)。

配置

编辑 src/main/resources/application.properties:

  • opengrok.base-url:设置为OpenGrok实例(默认值: http://localhost:8080/source)
  • server.port:MCP服务器的端口(默认值: 9090)
  • 日志记录和MCP设置已针对stdio传输进行了预配置。

用法

  1. 启动应用程序:
    java -jar target/opengrok-mcp-0.0.1-SNAPSHOT.jar
    
  2. 使用MCP stdio传输从您的AI工具(例如VS Code、GitHub Copilot、Claude Desktop)连接。
  3. 使用该工具在OpenGrok中搜索代码、符号或文件。

VSCode Github CoPilot集成

要与GitHub Copilot集成,请确保在IDE中安装了GitHub Copilod扩展。 在中添加MCP服务器 .vscode\mcp.json 包含以下内容的文件:

{
   "servers": {
      "opengrok": {
         "command": "java",
         "args": [
            "-jar",
            "D:\\ConfluenceCrawler_java\\opengrok-mcp\\target\\opengrok-mcp-0.0.1-SNAPSHOT.jar",
            "--spring.profiles.active=copilot",
            "--opengrok.base-url=http://localhost:8080/source"
         ]
      }
   }
}

随着 "--opengrok.base-url=http://localhost:8080/source" 我们将OpenGrok基本URL作为 命令行参数。这允许应用程序使用指定的OpenGrok实例 搜索操作。

故障排除

  • 如果应用程序立即启动和停止,请检查以下位置的日志 d:/opengrok-mcp/logs/opengrok-mcp.log.
  • 确保OpenGrok正在运行,并且可以在配置的基本URL上访问。
  • 对于MCP集成问题,请验证是否启用了stdio传输,以及AI工具是否配置正确。

许可证

在此处指定您的许可证(例如,MIT、Apache 2.0)。


有关更多详细信息,请参阅源代码和配置文件。