Javadoc MCP

Um servidor Model Context Protocol (MCP) para pesquisar documentação Java. Este servidor permite que assistentes de IA pesquisem e recuperem documentação da API Java a partir de arquivos JSON.

Documentação

Documentação Java MCP / Documentação Java MCP

English | 中文


Português

Uma solução abrangente para gerar documentação JSON estruturada a partir de código-fonte Java e fornecer recursos de busca inteligente através do MCP (Model Context Protocol).

🚀 Visão Geral

Este projeto consiste em três componentes principais que trabalham juntos para criar um ecossistema completo de documentação Java:

  1. Plugin Maven (java-docs-json-doclet) - Gera documentação JSON estruturada a partir do código-fonte Java
  2. Servidor MCP (mcp-server) - Fornece recursos de busca e consulta inteligentes para a documentação gerada
  3. Dados de Exemplo (javadoc-json) - Arquivos de documentação JSON de exemplo para teste e referência

🏗️ Arquitetura

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│   Java Source Code  │    │   HTML Javadoc      │    │   Lombok Projects   │
│                     │    │   (JDK 9)          │    │                     │
└──────────┬──────────┘    └──────────┬──────────┘    └──────────┬──────────┘
           │                          │                          │
           ▼                          ▼                          ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                    Maven Plugin (java-docs-json-doclet)                     │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────────────────┐  │
│  │  Publish Goal   │  │   Crawl Goal    │  │      Lombok Support         │  │
│  │  (Source Code)  │  │  (HTML Docs)    │  │     (Delombok Process)      │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────┬───────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   JSON Documentation│
                    │   (Structured Data) │
                    └──────────┬──────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                           MCP Server                                        │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────────────────┐  │
│  │  Search Classes │  │  Search Methods │  │      Get Statistics         │  │
│  │                 │  │                 │  │                             │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────┬───────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   Claude Desktop    │
                    │   (AI Assistant)    │
                    └─────────────────────┘

📦 Componentes

1. Java Docs JSON Doclet (java-docs-json-doclet/)

Um plugin Maven que converte documentação Java em formato JSON estruturado.

Versões Java Suportadas:

ObjetivoVersões SuportadasObservações
javadoc-jsonJava 8+Suporta todas as versões Java 8 e superiores
CrawlJava 9Será suportado para outras versões no futuro, atualmente suporta apenas https://docs.sw.siemens.com/documentation/external/PL20231101866122454/en-US/custom_api/open_java_ref/, você pode atualizar io.emop.javadocjson.doclet.JsonDoclet para construir seu próprio parser de html para json

Versões futuras do Java serão suportadas em próximos lançamentos

Recursos:

  • Objetivo Gerar Javadoc Json: Gera JSON a partir do código-fonte Java
  • Objetivo Crawl: Extrai documentação de sites HTML Javadoc (JDK 9+ suportado)
  • Suporte a Lombok: Trata anotações Lombok com o processo delombok
  • Compatível com MCP: Gera documentação em formato compatível com MCP
  • Filtragem de Pacotes: Use padrões regex para filtrar pacotes específicos
  • Suporte a Proxy: Configure configurações de proxy para rastrear documentação externa

Início Rápido:

<plugin>
    <groupId>io.github.beamliu</groupId>
    <artifactId>java-docs-json-doclet</artifactId>
    <version>0.1.1</version>
</plugin>

Atenção, você pode encontrar erro de compilação se estiver usando Lombok, por favor vá para a seção Projetos Lombok.

Mais detalhes em README

2. Servidor MCP (mcp-server/)

Um servidor MCP baseado em Node.js que fornece recursos de busca inteligente para documentação Java.

Recursos:

  • Busca Fuzzy: Alimentada por Fuse.js para correspondência inteligente
  • Múltiplos Tipos de Busca: Classes, métodos, construtores e campos
  • Deduplicação de Dados: Mesclagem automática de entradas duplicadas
  • Estatísticas: Obtenha uma visão geral da cobertura da documentação
  • Integração com Claude: Integração perfeita com Claude Desktop

Início Rápido:

npx @io.emop/mcp-javadoc-server --javadoc-path /path/to/javadoc-json

3. Dados de Exemplo (javadoc-json/)

Contém arquivos de documentação JSON de exemplo gerados a partir de vários projetos Java para fins de teste e referência.

🚀 Começando

Passo 1: Gerar Documentação JSON

  1. A partir do Código-Fonte:

adicione a dependência Maven

<plugin>
    <groupId>io.github.beamliu</groupId>
    <artifactId>java-docs-json-doclet</artifactId>
    <version>0.1.1</version>
</plugin>

e depois

mvn javadoc-json:javadoc-json

A configuração Maven de exemplo pode ser encontrada em ./java-docs-json-doclet/examples/

  1. A partir do HTML Javadoc:

consulte o README

Passo 2: Iniciar o Servidor MCP

# Using npx (recommended, no installation needed)
npx @io.emop/mcp-javadoc-server --javadoc-path /path/to/javadoc-json

Teste usando mcp inspector

npx @modelcontextprotocol/inspector npx -y @io.emop/mcp-javadoc-server -- --javadoc-path /path/to/javadoc-json

consulte o README

📖 Exemplos de Uso

Uma vez configurado, você pode usar estes comandos no Claude Desktop:

  • Buscar todos os itens: search_all("ArrayList")
  • Buscar classes: search_classes("HashMap")
  • Buscar métodos: search_methods("toString")
  • Obter detalhes da classe: get_class_details("java.util.List")
  • Obter estatísticas: get_stats()

🔧 Configuração Avançada

Projetos Lombok

Para projetos que usam Lombok, configure o processo delombok:

consulte o README

📄 Licença

Este projeto é licenciado sob a Licença MIT.


Português

Uma solução completa para gerar documentação JSON estruturada a partir do código-fonte Java e fornecer recursos de busca inteligente através do MCP (Model Context Protocol).

🚀 Visão Geral

Este projeto consiste em três componentes principais que trabalham juntos para criar um ecossistema completo de documentação Java:

  1. Plugin Maven (java-docs-json-doclet) - Gera documentação JSON estruturada a partir do código-fonte Java
  2. Servidor MCP (mcp-server) - Fornece recursos de busca e consulta inteligentes para a documentação gerada
  3. Dados de Exemplo (javadoc-json) - Arquivos de documentação JSON de exemplo para teste e referência

🏗️ Arquitetura

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│     Java 源代码      │    │   HTML Javadoc      │    │   Lombok 项目       │
│                     │    │   (JDK 9)          │    │                     │
└──────────┬──────────┘    └──────────┬──────────┘    └──────────┬──────────┘
           │                          │                          │
           ▼                          ▼                          ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                    Maven 插件 (java-docs-json-doclet)                       │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────────────────┐  │
│  │   发布目标      │  │   爬取目标      │  │      Lombok 支持            │  │
│  │  (源代码)       │  │  (HTML 文档)    │  │     (Delombok 过程)         │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────┬───────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   JSON 文档         │
                    │   (结构化数据)      │
                    └──────────┬──────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                           MCP 服务器                                        │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────────────────┐  │
│  │   搜索类        │  │   搜索方法      │  │      获取统计信息           │  │
│  │                 │  │                 │  │                             │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────────────────┘  │
└─────────────────────────────┬───────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   Claude Desktop    │
                    │   (AI 助手)         │
                    └─────────────────────┘

📦 Componentes

1. Java Docs JSON Doclet (java-docs-json-doclet/)

Um plugin Maven que converte documentação Java em formato JSON estruturado.

Versões Java Suportadas:

ObjetivoVersões SuportadasObservações
javadoc-jsonJava 8+Suporta todas as versões Java 8 e superiores
CrawlJava 9Será suportado para outras versões no futuro, atualmente suporta apenas https://docs.sw.siemens.com/documentation/external/PL20231101866122454/en-US/custom_api/open_java_ref/, você pode atualizar io.emop.javadocjson.doclet.JsonDoclet para construir seu próprio parser de HTML para JSON

Versões futuras do Java serão suportadas em próximos lançamentos

Recursos:

  • Objetivo Gerar Javadoc Json: Gera JSON a partir do código-fonte Java
  • Objetivo Crawl: Extrai documentação de sites HTML Javadoc (suporta JDK 9+)
  • Suporte a Lombok: Trata anotações Lombok com o processo delombok
  • Compatível com MCP: Gera documentação em formato compatível com MCP
  • Filtragem de Pacotes: Use padrões regex para filtrar pacotes específicos
  • Suporte a Proxy: Configure configurações de proxy para rastrear documentação externa

Início Rápido:

<plugin>
    <groupId>io.github.beamliu</groupId>
    <artifactId>java-docs-json-doclet</artifactId>
    <version>0.1.1</version>
</plugin>

Atenção, se você estiver usando Lombok, pode encontrar erro de compilação. Vá para a seção Projetos Lombok.

Mais detalhes em README

2. Servidor MCP (mcp-server/)

Um servidor MCP baseado em Node.js que fornece recursos de busca inteligente para documentação Java.

Recursos:

  • Busca Fuzzy: Alimentada por Fuse.js para correspondência inteligente
  • Múltiplos Tipos de Busca: Classes, métodos, construtores e campos
  • Deduplicação de Dados: Mesclagem automática de entradas duplicadas
  • Estatísticas: Obtenha uma visão geral da cobertura da documentação
  • Integração com Claude: Integração perfeita com Claude Desktop

Início Rápido:

npx @io.emop/mcp-javadoc-server --javadoc-path /path/to/javadoc-json

3. Dados de Exemplo (javadoc-json/)

Contém arquivos de documentação JSON de exemplo gerados a partir de vários projetos Java para teste e referência.

🚀 Começando

Passo 1: Gerar Documentação JSON

  1. A partir do Código-Fonte:

Adicione a dependência Maven

<plugin>
    <groupId>io.github.beamliu</groupId>
    <artifactId>java-docs-json-doclet</artifactId>
    <version>0.1.1</version>
</plugin>

E depois execute

mvn javadoc-json:javadoc-json

A configuração Maven de exemplo pode ser encontrada em ./java-docs-json-doclet/examples/

  1. A partir do HTML Javadoc:

Consulte o README

Passo 2: Iniciar o Servidor MCP

# 使用 npx(推荐,无需安装)
npx @io.emop/mcp-javadoc-server --javadoc-path /path/to/javadoc-json

Teste usando mcp inspector

npx @modelcontextprotocol/inspector npx -y @io.emop/mcp-javadoc-server -- --javadoc-path /path/to/javadoc-json

Consulte o README

📖 Exemplos de Uso

Após a configuração, você pode usar estes comandos no Claude Desktop:

🔧 Configuração Avançada

Projetos Lombok

Para projetos que usam Lombok, configure o processo delombok:

Consulte o README

📄 Licença

Este projeto é licenciado sob a Licença MIT.