Gradle构建服务器

一个通过自然语言命令让AI助手与Gradle项目交互的MCP服务器,提供构建执行、测试运行、任务发现、清理操作和依赖分析等功能。

  • by brunorozendo
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 brunorozendo/mcp-server-gradle

使用说明

MCP Gradle服务器

一个MCP(模型上下文协议)服务器,它公开了Gradle构建功能,允许AI助手通过自然语言命令与Gradle项目进行交互。

特性

  • 构建执行:使用自定义任务和参数运行Gradle构建
  • 测试执行:使用过滤和并行执行支持执行测试
  • 任务发现:列出可用的Gradle任务,并按组进行筛选
  • 清洁操作:清理构建工件和缓存
  • 相关性分析:按配置分析项目依赖关系

需求

  • Java 21或更高版本
  • Gradle 8.x(用于构建服务器)
  • 目标项目应具有Gradle包装器或兼容的Gradle安装

建筑

./gradlew shadowJar

这将在中创建一个胖JAR build/libs/mcp-gradle-server-1.0.0-all.jar

用法

运行服务器

java -jar build/libs/mcp-gradle-server-1.0.0-all.jar

服务器使用stdio传输与MCP客户端通信。

可用工具

1.渐变建筑

执行Gradle构建任务。

参数:

  • projectPath (必填):Gradle项目的绝对路径
  • tasks:要执行的任务列表(默认值:[“build”])
  • arguments:其他Gradle论点
  • environment:构建的环境变量

例子:

{
  "projectPath": "/path/to/project",
  "tasks": ["clean", "build"],
  "arguments": ["--info", "--stacktrace"]
}

2.分级测试

使用筛选选项运行Gradle测试。

参数:

  • projectPath (必填):Gradle项目的绝对路径
  • testFilter:测试过滤器模式(例如“*集成测试”)
  • includeIntegrationTests:包括集成测试(默认值:false)
  • parallel:并行运行测试(默认值:false)
  • arguments:其他测试参数

例子:

{
  "projectPath": "/path/to/project",
  "testFilter": "com.example.MyTest",
  "parallel": true
}

3.gradle_tasks

列出可用的Gradle任务。

参数:

  • projectPath (必填):Gradle项目的绝对路径
  • includeAll:包括所有任务,包括内部任务(默认值:false)
  • group:按组筛选任务(例如,“构建”、“验证”)

例子:

{
  "projectPath": "/path/to/project",
  "group": "build"
}

4.gradle_clean

清理构建工件和缓存。

参数:

  • projectPath (必填):Gradle项目的绝对路径
  • cleanBuildCache:同时清理Gradle构建缓存(默认值:false)
  • cleanDependencies:清除下载的依赖项(默认值:false)

例子:

{
  "projectPath": "/path/to/project",
  "cleanBuildCache": true
}

5. gradle_dependencies

分析项目依赖关系。

参数:

  • projectPath (必填):Gradle项目的绝对路径
  • configuration:依赖配置(默认:“compileClasspath”)
  • showTransitive:显示传递依赖关系(默认值:true)
  • refresh:刷新存储库中的依赖关系(默认值:false)

例子:

{
  "projectPath": "/path/to/project",
  "configuration": "runtimeClasspath"
}

配置

日志记录

服务器使用Logback进行日志记录。配置可以在中找到 src/main/resources/logback.xml日志被写入:

  • 控制台(信息级别)
  • logs/mcp-gradle-server.log (调试级别)

连接管理

服务器通过以下方式管理Gradle项目连接:

  • 连接池和重用
  • 自动清理过时的连接(超时5分钟)
  • 支持Gradle包装检测

发展

项目结构

src/main/java/io/modelcontextprotocol/gradleserver/
├── GradleMcpServerMain.java          # Main entry point
├── GradleConnectionManager.java      # Connection pooling
└── handlers/
    ├── BaseGradleHandler.java        # Base handler functionality
    ├── GradleBuildHandler.java       # Build execution
    ├── GradleTestHandler.java        # Test execution
    ├── GradleTasksHandler.java       # Task listing
    ├── GradleCleanHandler.java       # Clean operations
    └── GradleDependenciesHandler.java # Dependency analysis

测试

./gradlew test

延伸

要添加新的Gradle工具,请执行以下操作:

  1. 创建一个新的处理程序类,扩展 BaseGradleHandler
  2. 实施 getSchema() 定义参数的方法
  3. 实施 handle() 工具逻辑方法
  4. 在中注册处理程序 GradleMcpServerMain.registerHandlers()

许可证

该项目根据MIT许可证获得许可。

贡献

欢迎投稿!请随时提交拉取请求。