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工具,请执行以下操作:
- 创建一个新的处理程序类,扩展
BaseGradleHandler - 实施
getSchema()定义参数的方法 - 实施
handle()工具逻辑方法 - 在中注册处理程序
GradleMcpServerMain.registerHandlers()
许可证
该项目根据MIT许可证获得许可。
贡献
欢迎投稿!请随时提交拉取请求。
