Skip to content

Publish java docs or crawl existing html java doc into json file which could be exposed as mcp

Notifications You must be signed in to change notification settings

BeamLiu/mcp-java-doc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MCP Java Documentation / MCP Java ๆ–‡ๆกฃ

English | ไธญๆ–‡


English

A comprehensive solution for generating structured JSON documentation from Java source code and providing intelligent search capabilities through MCP (Model Context Protocol).

๐Ÿš€ Overview

This project consists of three main components that work together to create a complete Java documentation ecosystem:

  1. Maven Plugin (java-docs-json-doclet) - Generates structured JSON documentation from Java source code
  2. MCP Server (mcp-server) - Provides intelligent search and query capabilities for the generated documentation
  3. Sample Data (javadoc-json) - Example JSON documentation files for testing and reference

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   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)    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ Components

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

A Maven plugin that converts Java documentation into structured JSON format.

Supported Java Versions:

Goal Supported Versions Notes
javadoc-json Java 8+ Supports all Java 8 and above versions
Crawl Java 9 To be supported for other versions in the future, currently only support https://docs.sw.siemens.com/documentation/external/PL20231101866122454/en-US/custom_api/open_java_ref/ , you could update io.emop.javadocjson.doclet.JsonDoclet to build your own html to json parser

Future Java versions will be supported in upcoming releases

Features:

  • Generate Javadoc Json Goal: Generate JSON from Java source code
  • Crawl Goal: Extract documentation from HTML Javadoc websites (JDK 9+ supported)
  • Lombok Support: Handle Lombok annotations with delombok process
  • MCP Compatible: Generate documentation in MCP-compatible format
  • Package Filtering: Use regex patterns to filter specific packages
  • Proxy Support: Configure proxy settings for crawling external documentation

Quick Start:

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

Pay attention, you may encounter compile error if you are using a lombok, please jump to Lombok Projects section.

More detail goes to README

2. MCP Server (mcp-server/)

A Node.js-based MCP server that provides intelligent search capabilities for Java documentation.

Features:

  • Fuzzy Search: Powered by Fuse.js for intelligent matching
  • Multiple Search Types: Classes, methods, constructors, and fields
  • Data Deduplication: Automatic merging of duplicate entries
  • Statistics: Get overview of documentation coverage
  • Claude Integration: Seamless integration with Claude Desktop

Quick Start:

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

3. Sample Data (javadoc-json/)

Contains example JSON documentation files generated from various Java projects for testing and reference purposes.

๐Ÿš€ Getting Started

Step 1: Generate JSON Documentation

  1. From Source Code:

add maven dependency

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

and then

mvn javadoc-json:javadoc-json

Sample maven config could be found at ./java-docs-json-doclet/examples/

  1. From HTML Javadoc:

please refer to README

Step 2: Start MCP Server

# Using npx (recommended, no installation needed)
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

please refer to README

๐Ÿ“– Usage Examples

Once configured, you can use these commands in Claude Desktop:

  • Search all items: search_all("ArrayList")
  • Search classes: search_classes("HashMap")
  • Search methods: search_methods("toString")
  • Get class details: get_class_details("java.util.List")
  • Get statistics: get_stats()

๐Ÿ”ง Advanced Configuration

Lombok Projects

For projects using Lombok, configure the delombok process:

please refer to README

๐Ÿ“„ License

This project is licensed under the MIT License.


ไธญๆ–‡

ไธ€ไธชๅฎŒๆ•ด็š„่งฃๅ†ณๆ–นๆกˆ๏ผŒ็”จไบŽไปŽ 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-json Java 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 ไธญไฝฟ็”จ่ฟ™ไบ›ๅ‘ฝไปค๏ผš

  • ๆœ็ดขๆ‰€ๆœ‰้กน็›ฎ๏ผšsearch_all("ArrayList")
  • ๆœ็ดข็ฑป๏ผšsearch_classes("HashMap")
  • ๆœ็ดขๆ–นๆณ•๏ผšsearch_methods("toString")
  • ่Žทๅ–็ฑป่ฏฆๆƒ…๏ผšget_class_details("java.util.List")
  • ่Žทๅ–็ปŸ่ฎกไฟกๆฏ๏ผšget_stats()

๐Ÿ”ง ้ซ˜็บง้…็ฝฎ

Lombok ้กน็›ฎ

ๅฏนไบŽไฝฟ็”จ Lombok ็š„้กน็›ฎ๏ผŒ้…็ฝฎ delombok ่ฟ‡็จ‹๏ผš

่ฏทๅ‚่€ƒ README

๐Ÿ“„ ่ฎธๅฏ่ฏ

ๆœฌ้กน็›ฎ้‡‡็”จ MIT ่ฎธๅฏ่ฏใ€‚

About

Publish java docs or crawl existing html java doc into json file which could be exposed as mcp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published