Gradle Class Finder MCP

Encontre e descompile classes dentro de dependências Gradle.

Documentação

Gradle Class Finder MCP

Um serviço de busca de classes em projetos Gradle baseado no Model Context Protocol (MCP), que ajuda a localizar classes específicas nas dependências de projetos Gradle e obter seu código-fonte.

Funcionalidades

  • Localiza classes específicas nas dependências de projetos Gradle
  • Obtém o código-fonte ou código decompilado das classes
  • Suporte à busca de classes JDK
  • Resolução inteligente de nomes de classes (suporte a nomes simples)
  • Identificação e decompilação inteligente de classes Kotlin

Como executar

Opção 1: Execução nativa com Java

Pré-requisitos

  • JDK 17 ou superior
  • Gradle 8.5 ou superior (opcional, o projeto inclui o Gradle Wrapper)

Compilando o projeto

# 使用 Gradle Wrapper(推荐)
./gradlew shadowJar

# 或者使用系统安装的 Gradle
gradle shadowJar

Após a compilação, o arquivo gradle-class-finder-mcp.jar será gerado no diretório build/libs/.

Executando o serviço

# 直接运行 JAR 文件
java -jar build/libs/gradle-class-finder-mcp.jar

# 或者使用 Gradle 运行
./gradlew run

Opção 2: Execução com Docker

Pré-requisitos

  • Docker 20.10 ou superior

Compilando a imagem Docker

docker build -t gradle-class-finder-mcp .

Executando o contêiner

# 基本运行
docker run gradle-class-finder-mcp

# 使用自定义内存设置
docker run -e JAVA_OPTS="-Xmx1g -Xms512m" gradle-class-finder-mcp

# 挂载本地项目目录(用于分析本地项目)
docker run -v /path/to/your/project:/workspace gradle-class-finder-mcp

Configurando o Claude Desktop

Adicione a seguinte configuração ao arquivo de configuração do Claude Desktop:

Configuração para execução nativa com Java

{
  "mcpServers": {
    "gradle-class-finder": {
      "command": "java",
      "args": ["-jar", "/path/to/gradle-class-finder-mcp.jar"]
    }
  }
}

Configuração para execução com Docker

{
  "mcpServers": {
    "gradle-class-finder": {
      "command": "docker",
      "args": ["run", "-i", "gradle-class-finder-mcp"]
    }
  }
}

Exemplos de uso

Localizando uma classe

使用工具 find_class 查找类:
- workspace_dir: /path/to/gradle/project
- class_name: com.example.MyClass

Obtendo o código-fonte

使用工具 get_source_code 获取源代码:
- jar_path: /path/to/library.jar
- class_name: com.example.MyClass

Variáveis de ambiente

  • JAVA_OPTS: Configuração de parâmetros JVM (por exemplo: -Xmx512m -Xms256m)

Solução de problemas

Problemas comuns na execução nativa com Java

  1. Classe principal não encontrada

    • Certifique-se de compilar usando a tarefa shadowJar, e não a tarefa comum jar
    • Verifique se o arquivo JAR existe no diretório build/libs/
  2. Falha na resolução de dependências

    • Certifique-se de que o projeto de destino tenha uma configuração Gradle válida
    • Verifique a conexão de rede para garantir acesso ao repositório Maven

Problemas comuns na execução com Docker

  1. Falha na compilação

    • Certifique-se de que o daemon do Docker esteja em execução
    • Verifique se há espaço em disco suficiente
  2. O contêiner não consegue acessar arquivos locais

    • Use o parâmetro -v para montar corretamente o diretório local
    • Verifique as permissões dos arquivos

Guia de desenvolvimento

Estrutura do projeto

gradle-class-finder-mcp/
├── src/
│   └── main/
│       └── java/
│           └── com/opencare/mcp/
│               ├── GradleClassFinderMcpServer.java
│               ├── service/
│               ├── decompiler/
│               └── util/
├── build.gradle
├── Dockerfile
└── README.md

Desenvolvimento local

# 运行测试
./gradlew test

# 清理构建
./gradlew clean

# 构建并运行
./gradlew clean shadowJar run

Licença

Licença MIT