📚 Javadoc MCP服务器
Spring AI驱动的模型上下文协议(MCP)服务器,为AI助手提供对Java的无缝访问 图书馆文献
   Coverage Branches
🎯 这是什么?
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
- 克隆存储库
git clone https://github.com/yourusername/javadoc-mcp-server.git
cd javadoc-mcp-server- 构建项目
./gradlew build- 运行服务器
./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助手通信
🛠️ 工具
npx @modelcontextprotocol/inspector🤝 用例
- 💡 用自然语言解释Java库API
- 📖 在编码过程中提供上下文感知文档
- 🔍 帮助开发人员了解不熟悉的库
- ✅ 验证API的正确使用和参数
🙏 致谢
- 🍃 Spring AI团队为优秀的AI集成框架
- 📦 Eclipse Aether用于强大的Maven工件解析
- 📝 Flexmark实现可靠的HTML到Markdown转换
- 🤖 用于标准化AI助手交互的MCP协议
✅ 待办
- \[\]计划于20日升级到Spring AI 2。2026年2月
- \[\]释放容器图像
📧 联系
如有疑问、问题或建议,请在GitHub上发布问题。
______________________________________________________________________
由...制作❤️ 面向Java和AI社区
