这是一个使用模型上下文协议(MCP)的服务器,使AI工具能够与Gradle项目进行程序化的交互。它使用Gradle 工具API来查询项目信息并执行任务。
提供以下工具:
clean,build,assemble),带有自定义参数、JVM参数和环境变量。返回格式化的文本输出,包括标准输出/错误和状态。test),并以分层JSON格式接收详细的、结构化的结果(套件 -> 类 -> 方法)。包括:
--tests)进行测试过滤。curl此方法将服务器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'。"
gradle-mcp-server-all.jar文件。~/mcp-servers/gradle-mcp-server/%USERPROFILE%\mcp-servers\gradle-mcp-server\
(如果不存在,请创建该目录)。要使用此服务器与MCP客户端(如VSCode扩展或Claude桌面应用)一起使用,您需要将其配置添加到客户端的设置文件中。
定位设置文件:
/Users/<YourUsername>/Library/Application Support/VSCodium/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(根据标准VSCode或其他操作系统调整路径)。~/Library/Application Support/Claude/claude_desktop_config.json(根据其他操作系统调整路径)。添加服务器配置: 编辑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": []
}
}
}
服务器通过模型上下文协议暴露以下工具:
get_gradle_project_info
buildStructure,tasks,environment,projectDetails)。如果省略requestedInfo,则获取所有类别。projectPath(字符串,必需):Gradle项目根的绝对路径。requestedInfo(字符串数组,可选):要检索的类别列表(例如,["tasks", "environment"])。GradleProjectInfoResponse)。execute_gradle_task
build,clean)。不建议用于需要详细结果的测试运行(应使用测试工具)。返回格式化的文本输出,总结执行情况并包括捕获的标准输出/错误。projectPath(字符串,必需):Gradle项目根的绝对路径。tasks(字符串数组,必需):要执行的任务名称列表(例如,["clean", "assemble"])。arguments(字符串数组,可选):Gradle命令行参数(例如,["--info", "-PmyProp=value"])。jvmArguments(字符串数组,可选):Gradle的JVM参数(例如,["-Xmx4g"])。environmentVariables(对象,可选):构建的环境变量(例如,{"CI": "true"})。run_gradle_tests
projectPath(字符串,必需):Gradle项目根的绝对路径。gradleTasks(字符串数组,可选):要运行的测试任务(默认为["test"])。arguments(字符串数组,可选):额外的Gradle参数(如--info/--debug等详细标志会被过滤掉)。environmentVariables(对象,可选):测试执行的环境变量。testPatterns(字符串数组,可选):通过--tests传递的测试过滤模式(例如,["*.MyTestClass"])。includeOutputForPassed(布尔值,可选):设置为true以包含通过测试的输出(默认为false)。maxLogLines(整数,可选):覆盖每个测试输出行的默认限制(0表示无限制)。defaultMaxLogLines(整数,可选):设置默认输出行限制(内部默认为100)。test_hierarchy树的JSON对象(GradleHierarchicalTestResponse)。每个节点包括显示名称、类型、结果、失败消息(如果有)、过滤/截断的输出行和子节点。如果您想自己构建服务器:
./gradlew shadowJar
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:启用服务器控制台上的详细日志记录。build.gradle.kts中指定)