Java文档MCP服务器

一个基于Spring AI的模型上下文协议(MCP)服务器,为AI助手提供无缝访问Java库文档的功能。

  • by bitfist
  • Kotlin
  • 本地部署
  • 更新于
在 GitHub 查看 bitfist/javadoc-mcp-server

使用说明

📚 Javadoc MCP服务器

Spring AI驱动的模型上下文协议(MCP)服务器,为AI助手提供对Java的无缝访问 图书馆文献

🎯 这是什么?

Javadoc MCP Server是一个弥合人工智能助手和Java文档之间差距的工具。它自动 从Maven工件中提取Javadoc文档并将其转换为markdown格式,使AI更容易使用 用于理解和解释Java API的模型。

主要特点

  • 🔍 自动Javadoc检索 -直接从Maven Central或本地Maven存储库获取Javadoc JAR
  • 📦 智能缓存 -下载并提取文档一次,然后从本地存储中提供
  • 🔄 HTML到Markdown的转换 -将Javadoc HTML转换为干净、AI友好的标记
  • 🚀 Spring AI集成 -与Spring AI的工具调用框架无缝集成
  • 🛠️ MCP协议 -实现标准化AI助手集成的模型上下文协议

🚀 入门指南

先决条件

  • ☕ Java 21或更高版本
  • 🔧 Maven或Gradle
  • 🌐 互联网连接(用于下载Javadoc JAR)

安装

[!重要]
此项目使用GitHub提供的依赖项。因此,您需要设置您的GitHub用户 GPR_USER 和 个人访问令牌 GPR_TOKEN 在你的 ~/.gradle/gradle.properties

  1. 克隆存储库

    git clone https://github.com/yourusername/javadoc-mcp-server.git
    cd javadoc-mcp-server
    
  2. 构建项目

    ./gradlew build
    
  3. 运行服务器

    ./gradlew bootRun
    

配置

在中配置其他存储库 ~/.javadoc-mcp/repositories.json:

{
    "mavenCentral": {
        "url": "https://repo1.maven.org/maven2/"
    },
    "myPrivateRepository": {
        "url": "https://your-private-repo.com/repository/maven-public/",
        "username": "your-username",
        "password": "your-password"
    }
}

码头工人

要构建docker镜像,请运行:

./gradlew bootBuildImage

创建的映像使用以下命令运行应用程序 container 配置文件,这意味着额外的存储库配置 从以下位置加载 /opt/javadoc-mcp/init.d/repositories.json 而不是 ~/.javadoc-mcp/repositories.json.

🔧 运作原理

1.刀具调用

人工智能助手称 javadoc 带有Maven坐标和类名的工具:

{
  "tool": "javadoc",
  "parameters": {
    "groupId": "org.springframework",
    "artifactId": "spring-context",
    "version": "6.1.0",
    "fullyQualifiedClassName": "org.springframework.context.ApplicationContext"
  }
}

2.工件分辨率

服务器使用Eclipse Aether来:

  • 🔍 在Maven Central或本地存储库中找到Javadoc JAR
  • ⬇️ 如果未缓存,则下载工件
  • 📂 将HTML文件解压缩到本地缓存

3.文件提取

对于所请求的课程:

  • 📄 查找相应的HTML文件(例如。, org/springframework/context/ApplicationContext.html)
  • 🔄 使用Flexmark将HTML转换为markdown
  • 📤 将格式化文档返回给AI

4.缓存策略

  • ✅ 第一个请求:下载并提取整个Javadoc JAR
  • ⚡ 后续请求:直接从本地缓存提供服务
  • 💾 缓存位置: ~/javadoc-mcp/repository

📋 API 参考

MCP工具: javadoc

从Maven工件中检索特定类的Javadoc文档。

参数:

参数 类型 描述 示例
groupId 字符串 Maven组ID org.springframework
artifactId 字符串 Maven工件ID spring-context
version 字符串 工件版本 6.1.0
fullyQualifiedClassName String 包含包的完整类名 org.springframework.context.ApplicationContext

退货: Markdown格式的Javadoc文档

🛠️ 技术栈

  • 🔷 科特林 -具有简洁语法的现代JVM语言
  • 🍃 Spring Boot -应用框架和依赖注入
  • 🤖 春季AI -人工智能集成和工具调用框架
  • 📦 Eclipse Aether -Maven工件解析和下载
  • 📝 柔性标记 -HTML到Markdown的转换
  • 🔧 MCP协议 -标准化AI助手通信

🛠️ 工具

🤝 用例

  • 💡 用自然语言解释Java库API
  • 📖 在编码过程中提供上下文感知文档
  • 🔍 帮助开发人员了解不熟悉的库
  • ✅ 验证API的正确使用和参数

🙏 致谢

  • 🍃 Spring AI团队为优秀的AI集成框架
  • 📦 Eclipse Aether用于强大的Maven工件解析
  • 📝 Flexmark实现可靠的HTML到Markdown转换
  • 🤖 用于标准化AI助手交互的MCP协议

✅ 待办

  • []计划于20日升级到Spring AI 2。2026年2月
  • []释放容器图像

📧 联系

如有疑问、问题或建议,请在GitHub上发布问题。


由...制作❤️ 面向Java和AI社区