gradle-analyzer-mcp
by hpuhsp
README.md
# Gradle 依赖分析
一个专为 Android 项目设计的 Gradle 依赖分析工具,支持 Version Catalog (TOML) 配置。
## 功能特性
### 1. 依赖分析
- 分析指定模块的所有依赖配置
- 支持 implementation, api, kapt, ksp, testImplementation 等配置
- 识别 Version Catalog 引用(libs.xxx)
- 识别模块间依赖(project:xxx)
### 2. 模块管理
- 列出项目中的所有模块
- 对比不同模块的依赖差异
- 查找重复依赖
### 3. Version Catalog 解析
- 解析 `gradle/libs.versions.toml` 文件
- 提取版本号、库定义、插件定义
- 支持 bundles 配置
### 4. 版本检查
- 检查依赖版本更新(基础功能)
- 可扩展集成第三方版本检查 API
### 5. 依赖树生成
- 调用 Gradle 命令生成完整依赖树
- 支持指定配置(如 debugRuntimeClasspath)
## 安装
### 前置要求
- Python 3.10 或更高版本
- pip 包管理器
### 方法 1: 从 PyPI 安装(推荐,发布后可用)
```bash
pip install gradle-analyzer-mcp
```
在 Kiro 的 MCP 配置文件中添加(`.kiro/settings/mcp.json`):
```json
{
"mcpServers": {
"gradle-analyzer": {
"command": "uvx",
"args": ["gradle-analyzer-mcp"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
```
### 方法 2: 从 GitHub 源码安装
```bash
# 克隆仓库
git clone https://github.com/hpuhsp/gradle-analyzer-mcp.git
cd gradle-analyzer-mcp
# 安装依赖
pip install -e .
```
在 Kiro 的 MCP 配置文件中添加:
```json
{
"mcpServers": {
"gradle-analyzer": {
"command": "python",
"args": ["/path/to/gradle-analyzer-mcp/server.py"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
```
### 方法 3: 使用 uvx 直接运行(无需安装)
```json
{
"mcpServers": {
"gradle-analyzer": {
"command": "uvx",
"args": ["--from", "git+https://github.com/hpuhsp/gradle-analyzer-mcp.git", "python", "server.py"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
```
## 可用工具
### 1. analyze_dependencies
分析指定模块的依赖配置
**参数**:
- `project_path` (必需): 项目根目录路径
- `module` (可选): 模块名称,默认 "app"
**示例**:
```json
{
"project_path": "D:\\WorkPlace\\Android\\Test",
"module": "app"
}
```
**返回示例**:
```json
{
"module": "app",
"dependencies": {
"implementation": [
"libs.bundles.coroutines",
"project:msc",
"project:base"
],
"kapt": [
"libs.arouter.compiler",
"libs.hilt.compiler"
],
"ksp": [
"libs.androidx.room.compiler",
"libs.glide.ksp"
]
}
}
```
### 2. list_all_modules
列出项目中的所有模块
**参数**:
- `project_path` (必需): 项目根目录路径
**返回示例**:
```json
{
"total": 4,
"modules": ["app", "base", "swallow", "msc"]
}
```
### 3. parse_version_catalog
解析 libs.versions.toml 文件
**参数**:
- `project_path` (必需): 项目根目录路径
**返回示例**:
```json
{
"versions": {
"agp": "8.7.3",
"kotlin": "2.0.21",
"hilt": "2.57.2"
},
"libraries": {
"androidx-core-ktx": "...",
"hilt-android": "..."
},
"plugins": {...},
"bundles": {...}
}
```
### 4. check_version_updates
检查依赖版本更新
**参数**:
- `project_path` (必需): 项目根目录路径
### 5. find_duplicate_dependencies
查找重复依赖
**参数**:
- `project_path` (必需): 项目根目录路径
**返回示例**:
```json
{
"total_duplicates": 5,
"duplicates": {
"libs.hilt.android": [
{"module": "app", "configuration": "implementation"},
{"module": "base", "configuration": "implementation"}
]
}
}
```
### 6. generate_dependency_tree
生成依赖树(调用 Gradle)
**参数**:
- `project_path` (必需): 项目根目录路径
- `module` (可选): 模块名称,默认 "app"
### 7. compare_module_dependencies
对比两个模块的依赖
**参数**:
- `project_path` (必需): 项目根目录路径
- `module1` (必需): 第一个模块名称
- `module2` (必需): 第二个模块名称
## 使用示例
### 在 Kiro 中使用
配置好 MCP 服务器后,在 Kiro 中直接对话:
```
分析 app 模块的依赖
```
```
列出项目中的所有模块
```
```
查找重复的依赖
```
```
对比 app 和 base 模块的依赖差异
```
## 技术栈
- Python 3.10+
- MCP (Model Context Protocol) 0.9.0+
- tomli (TOML 解析)
## 目录结构
```
gradle-analyzer/
├── server.py # MCP 服务器主文件
├── pyproject.toml # Python 项目配置
├── README.md # 说明文档
└── .gitignore # Git 忽略文件
```
## 扩展建议
1. **集成版本检查 API**:
- Maven Central API
- GitHub Releases API
- 自定义版本服务
2. **依赖冲突检测**:
- 解析 Gradle 依赖树
- 识别版本冲突
- 提供解决方案
3. **依赖可视化**:
- 生成依赖关系图
- 导出为 DOT/SVG 格式
4. **安全扫描**:
- 集成 CVE 数据库
- 检查已知漏洞
## 故障排除
### 问题:找不到 mcp 模块
**解决方案**:
```bash
pip install mcp
```
### 问题:找不到 tomli 模块
**解决方案**:
```bash
pip install tomli
```
### 问题:Gradle 命令执行失败
**解决方案**:
- 确保项目根目录有 `gradlew` 或 `gradlew.bat`
- 检查 Gradle 配置是否正确
- 尝试手动运行 `./gradlew :app:dependencies`
## 开发与贡献
### 本地开发
```bash
# 克隆仓库
git clone https://github.com/hpuhsp/gradle-analyzer-mcp.git
cd gradle-analyzer-mcp
# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest
# 本地测试 MCP 服务器
python server.py
```
### 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 许可证
MIT License
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues