Javadoc MCP

Un servidor del Protocolo de Contexto de Modelo (MCP) para buscar documentación de Java. Este servidor permite a los asistentes de IA buscar y recuperar documentación de la API de Java desde archivos JSON.

Documentación

MCP Java 文档 / MCP Java 文档

English | 中文


English

Una solución integral para generar documentación JSON estructurada a partir de código fuente Java y proporcionar capacidades de búsqueda inteligente a través de MCP (Model Context Protocol).

🚀 Descripción general

Este proyecto consta de tres componentes principales que trabajan juntos para crear un ecosistema completo de documentación Java:

  1. Complemento Maven (java-docs-json-doclet) - Genera documentación JSON estructurada a partir de código fuente Java
  2. Servidor MCP (mcp-server) - Proporciona capacidades de búsqueda y consulta inteligentes para la documentación generada
  3. Datos de muestra (javadoc-json) - Archivos de documentación JSON de ejemplo para pruebas y referencia

🏗️ Arquitectura

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│   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/)

Un complemento de Maven que convierte la documentación de Java en formato JSON estructurado.

Versiones de Java compatibles:

ObjetivoVersiones compatiblesNotas
javadoc-jsonJava 8+Admite todas las versiones de Java 8 y superiores
CrawlJava 9Se admitirán otras versiones en el futuro; actualmente solo admite https://docs.sw.siemens.com/documentation/external/PL20231101866122454/en-US/custom_api/open_java_ref/, puede actualizar io.emop.javadocjson.doclet.JsonDoclet para crear su propio analizador de HTML a JSON

Las versiones futuras de Java se admitirán en próximas versiones

Características:

  • Objetivo Generar Javadoc Json: Genera JSON a partir de código fuente Java
  • Objetivo Crawl: Extrae documentación de sitios web HTML de Javadoc (compatible con JDK 9+)
  • Compatibilidad con Lombok: Maneja anotaciones de Lombok con el proceso delombok
  • Compatible con MCP: Genera documentación en formato compatible con MCP
  • Filtrado de paquetes: Utiliza patrones de expresiones regulares para filtrar paquetes específicos
  • Compatibilidad con proxy: Configura ajustes de proxy para rastrear documentación externa

Inicio rápido:

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

Tenga en cuenta que puede encontrar errores de compilación si está utilizando Lombok; salte a la sección Proyectos Lombok.

Más detalles en README

2. Servidor MCP (mcp-server/)

Un servidor MCP basado en Node.js que proporciona capacidades de búsqueda inteligente para documentación Java.

Características:

  • Búsqueda difusa: Impulsada por Fuse.js para coincidencias inteligentes
  • Múltiples tipos de búsqueda: Clases, métodos, constructores y campos
  • Desduplicación de datos: Fusión automática de entradas duplicadas
  • Estadísticas: Obtenga una descripción general de la cobertura de documentación
  • Integración con Claude: Integración perfecta con Claude Desktop

Inicio rápido:

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

3. Datos de muestra (javadoc-json/)

Contiene archivos de documentación JSON de ejemplo generados a partir de varios proyectos Java para fines de prueba y referencia.

🚀 Primeros pasos

Paso 1: Generar documentación JSON

  1. Desde código fuente:

Agregue la dependencia de Maven

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

y luego

mvn javadoc-json:javadoc-json

La configuración de muestra de Maven se puede encontrar en ./java-docs-json-doclet/examples/

  1. Desde HTML Javadoc:

Consulte README

Paso 2: Iniciar el servidor MCP

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

Pruebe con mcp inspector

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

Consulte README

📖 Ejemplos de uso

Una vez configurado, puede usar estos comandos en Claude Desktop:

  • Buscar todos los elementos: search_all("ArrayList")
  • Buscar clases: search_classes("HashMap")
  • Buscar métodos: search_methods("toString")
  • Obtener detalles de clase: get_class_details("java.util.List")
  • Obtener estadísticas: get_stats()

🔧 Configuración avanzada

Proyectos Lombok

Para proyectos que usan Lombok, configure el proceso delombok:

Consulte README

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT.


中文

一个完整的解决方案,用于从 Java 源代码生成结构化 JSON 文档,并通过 MCP(模型上下文协议)提供智能搜索功能。

🚀 概述

本项目由三个主要组件组成,它们协同工作创建完整的 Java 文档生态系统:

  1. Maven 插件 (java-docs-json-doclet) - 从 Java 源代码生成结构化 JSON 文档
  2. MCP 服务器 (mcp-server) - 为生成的文档提供智能搜索和查询功能
  3. 样例数据 (javadoc-json) - 用于测试和参考的示例 JSON 文档文件

🏗️ 架构

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

📦 组件

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

一个将 Java 文档转换为结构化 JSON 格式的 Maven 插件。

支持的 Java 版本:

目标支持版本说明
javadoc-jsonJava 8+支持所有 Java 8 及以上版本
爬取 (Crawl)Java 9未来将支持其他版本,目前仅支持 https://docs.sw.siemens.com/documentation/external/PL20231101866122454/en-US/custom_api/open_java_ref/ ,您可以更新 io.emop.javadocjson.doclet.JsonDoclet 来构建自己的 HTML 到 JSON 解析器

后续 Java 版本将在未来发布中支持

功能特性:

  • 生成 Javadoc Json 目标 :从 Java 源代码生成 JSON
  • 爬取目标 :从 HTML Javadoc 网站提取文档(支持 JDK 9+)
  • Lombok 支持 :通过 delombok 过程处理 Lombok 注解
  • MCP 兼容 :生成 MCP 兼容格式的文档
  • 包过滤 :使用正则表达式模式过滤特定包
  • 代理支持 :为爬取外部文档配置代理设置

快速开始:

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

注意,如果您正在使用 Lombok,可能会遇到编译错误,请跳转到 Lombok 项目 章节。

更多详情请参考 README

2. MCP 服务器 (mcp-server/)

基于 Node.js 的 MCP 服务器,为 Java 文档提供智能搜索功能。

功能特性:

  • 模糊搜索 :由 Fuse.js 提供智能匹配
  • 多种搜索类型 :类、方法、构造函数和字段
  • 数据去重 :自动合并重复条目
  • 统计信息 :获取文档覆盖率概览
  • Claude 集成 :与 Claude Desktop 无缝集成

快速开始:

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

3. 样例数据 (javadoc-json/)

包含从各种 Java 项目生成的示例 JSON 文档文件,用于测试和参考。

🚀 入门指南

步骤 1:生成 JSON 文档

  1. 从源代码:

添加 Maven 依赖

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

然后执行

mvn javadoc-json:javadoc-json

Maven 配置示例可以在 ./java-docs-json-doclet/examples/ 找到

  1. 从 HTML Javadoc:

请参考 README

步骤 2:启动 MCP 服务器

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

使用 mcp inspector 测试

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

请参考 README

📖 使用示例

配置完成后,您可以在 Claude Desktop 中使用这些命令:

🔧 高级配置

Lombok 项目

对于使用 Lombok 的项目,配置 delombok 过程:

请参考 README

📄 许可证

本项目采用 MIT 许可证。