Skip to main content
Glama
hpuhsp

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

Maintenance

ActivityInactive
ResponsivenessNo issues