返回市场
Gradle MCP服务器

Gradle MCP服务器

作者:IlyaGulya38 星标更新:2025-07-15

项目介绍

Gradle MCP 服务器

这是一个使用模型上下文协议(MCP)的服务器,使AI工具能够与Gradle项目进行程序化的交互。它使用Gradle 工具API来查询项目信息并执行任务。

功能

提供以下工具:

  • 检查项目:获取关于Gradle项目的详细、结构化信息,包括:
    • 构建结构(根项目、子项目)
    • 可用的任务(在根项目中)
    • 构建环境详情(Gradle版本、Java版本、JVM参数)
    • 根项目详情(名称、路径、描述、构建脚本路径)
    • 允许选择性地查询信息类别。
  • 执行任务:运行特定的Gradle任务(例如,cleanbuildassemble),带有自定义参数、JVM参数和环境变量。返回格式化的文本输出,包括标准输出/错误和状态。
  • 分层执行测试:执行Gradle测试任务(例如,test),并以分层JSON格式接收详细的、结构化的结果(套件 -> 类 -> 方法)。包括:
    • 每个节点的结果(通过、失败、跳过)。
    • 失败消息以及过滤/截断的输出行(主要针对失败的测试,可配置)。
    • 支持通过模式(--tests)进行测试过滤。
    • 控制输出包含和日志行限制的选项。

要求

  • JDK 17或更高版本
  • 对于命令行安装:
    • Linux/macOS: curl
    • Windows: PowerShell 5+

安装

推荐方法:命令行下载

此方法将服务器JAR文件下载到您主目录的标准位置。

Linux / macOS(需要curl):

# 将gradle-mcp-server-all.jar下载到~/mcp-servers/gradle-mcp-server/
TARGET_DIR="$HOME/mcp-servers/gradle-mcp-server" && mkdir -p "$TARGET_DIR" && curl -fSL -o "$TARGET_DIR/gradle-mcp-server-all.jar" "https://github.com/IlyaGulya/gradle-mcp-server/releases/latest/download/gradle-mcp-server-all.jar" && echo "下载到'$TARGET_DIR'。" || echo "下载失败。"

Windows(PowerShell 5+):

# 将gradle-mcp-server-all.jar下载到%USERPROFILE%\mcp-servers\gradle-mcp-server\
$targetDir = Join-Path $env:USERPROFILE "mcp-servers\gradle-mcp-server"; if (-not (Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir -Force | Out-Null }; $outFile = Join--Path $targetDir "gradle-mcp-server-all.jar"; Write-Host "正在下载..."; Invoke-WebRequest -Uri "https://github.com/IlyaGulya/gradle-mcp-server/releases/latest/download/gradle-mcp-server-all.jar" -OutFile $outFile -ErrorAction Stop; Write-Host "下载到'$targetDir'。"

替代方法:手动下载

  1. 访问GitHub 发布页面
  2. 从最新发布中下载gradle-mcp-server-all.jar文件。
  3. 将下载的JAR文件保存到一个稳定的目录。我们推荐:
    • macOS / Linux: ~/mcp-servers/gradle-mcp-server/
    • Windows: %USERPROFILE%\mcp-servers\gradle-mcp-server\ (如果不存在,请创建该目录)。

MCP 客户端配置

要使用此服务器与MCP客户端(如VSCode扩展或Claude桌面应用)一起使用,您需要将其配置添加到客户端的设置文件中。

  1. 定位设置文件:

    • VSCode 扩展(例如macOS):/Users/<YourUsername>/Library/Application Support/VSCodium/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(根据标准VSCode或其他操作系统调整路径)。
    • Claude 桌面应用(例如macOS):~/Library/Application Support/Claude/claude_desktop_config.json(根据其他操作系统调整路径)。
  2. 添加服务器配置: 编辑JSON文件,并在mcpServers对象内添加以下条目。<absolute_path_to_home>替换为您实际的主目录绝对路径。

    {
      "mcpServers": {
        "gradle-mcp-server": {
          "command": "java",
          "args": [
            "-jar",
            "<absolute_path_to_home>/mcp-servers/gradle-mcp-server/gradle-mcp-server-all.jar"
          ],
          "env": {},
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

使用

  1. 添加配置后,重启您的MCP客户端(例如,重新加载VSCode窗口或重启Claude应用)。
  2. “Gradle MCP服务器”及其工具(如下所述)现在应该可以在客户端中使用了。当客户端需要时,服务器会自动通过stdio运行。

可用工具

服务器通过模型上下文协议暴露以下工具:

  1. get_gradle_project_info

    • 描述:检索关于Gradle项目的具体细节,返回结构化的JSON。允许请求仅必要的信息类别(buildStructuretasksenvironmentprojectDetails)。如果省略requestedInfo,则获取所有类别。
    • 关键输入
      • projectPath(字符串,必需):Gradle项目根的绝对路径。
      • requestedInfo(字符串数组,可选):要检索的类别列表(例如,["tasks", "environment"])。
    • 输出:包含所请求数据字段和潜在错误的JSON对象(GradleProjectInfoResponse)。
  2. execute_gradle_task

    • 描述:执行一般的Gradle任务(如buildclean)。不建议用于需要详细结果的测试运行(应使用测试工具)。返回格式化的文本输出,总结执行情况并包括捕获的标准输出/错误。
    • 关键输入
      • projectPath(字符串,必需):Gradle项目根的绝对路径。
      • tasks(字符串数组,必需):要执行的任务名称列表(例如,["clean", "assemble"])。
      • arguments(字符串数组,可选):Gradle命令行参数(例如,["--info", "-PmyProp=value"])。
      • jvmArguments(字符串数组,可选):Gradle的JVM参数(例如,["-Xmx4g"])。
      • environmentVariables(对象,可选):构建的环境变量(例如,{"CI": "true"})。
    • 输出:格式化的文本响应,包含执行摘要、最终状态(成功/失败)和合并的标准输出/错误。
  3. run_gradle_tests

    • 描述:执行Gradle测试任务,并作为结构化的JSON层次返回结果(套件 > 类 > 测试)。默认情况下过滤/截断输出行,专注于失败。提供选项以包含通过测试的输出并控制日志限制。
    • 关键输入
      • projectPath(字符串,必需):Gradle项目根的绝对路径。
      • gradleTasks(字符串数组,可选):要运行的测试任务(默认为["test"])。
      • arguments(字符串数组,可选):额外的Gradle参数(如--info/--debug等详细标志会被过滤掉)。
      • environmentVariables(对象,可选):测试执行的环境变量。
      • testPatterns(字符串数组,可选):通过--tests传递的测试过滤模式(例如,["*.MyTestClass"])。
      • includeOutputForPassed(布尔值,可选):设置为true以包含通过测试的输出(默认为false)。
      • maxLogLines(整数,可选):覆盖每个测试输出行的默认限制(0表示无限制)。
      • defaultMaxLogLines(整数,可选):设置默认输出行限制(内部默认为100)。
    • 输出:包含执行详情、整体构建成功状态、说明性注释和test_hierarchy树的JSON对象(GradleHierarchicalTestResponse)。每个节点包括显示名称、类型、结果、失败消息(如果有)、过滤/截断的输出行和子节点。

开发

从源代码构建

如果您想自己构建服务器:

  1. 克隆仓库。
  2. 确保已安装JDK 17或更高版本。
  3. 运行构建命令:
    ./gradlew shadowJar
    
  4. 自包含的JAR(gradle-mcp-server-<version>-all.jar)将在build/libs/目录下生成。然后可以配置您的MCP客户端使用这个JAR(记得在配置中使用正确的绝对路径和版本)。

本地运行(测试)

您可以直接从命令行运行构建好的JAR进行测试目的。服务器默认通过stdio通信。

# 在stdio模式下运行打包的JAR
java -jar build/libs/gradle-mcp-server-<version>-all.jar

# 使用特定参数运行(参见配置部分)
java -jar build/libs/gradle-mcp-server-<version>-all.jar --sse 8080 --debug

配置(命令行参数)

当直接运行服务器JAR(主要用于测试/开发)时,其行为可以通过命令行参数控制:

  • --stdio:(默认)使用标准输入/输出进行MCP通信。
  • --sse [端口]:在指定的端口上作为SSE服务器运行(如果省略端口,默认为3001)。连接MCP客户端(如Anthropic Console Inspector)到http://localhost:<端口>/sse
  • --debug:启用服务器控制台上的详细日志记录。

依赖项