javadocs mcp
基于HTTP的MCP(模型上下文协议)服务器,为JVM依赖关系提供按需文档和源代码。
概述
当使用像Claude Code这样的人工智能编码助手时,访问准确、最新的库文档至关重要。此MCP服务器根据需要获取任何Maven工件的Javadoc/Scaladoc和源文件。
第一阶段完成✅
工作特点:
get_documentation该工具为Java类获取Javadoc HTML- 通过Coursier集成Maven Central
- javadoc JAR的自动下载和缓存
- 内部类支持(例如。,
Logger$Factory→Logger.html) - 类型安全错误处理,消息清晰
快速开始
先决条件
- JVM 21
- 已安装Scala CLI
运行服务器
# Start on default port 8080
scala-cli run .
# Start on custom port
scala-cli run . -- 8888服务器将启动并监听指定端口上的MCP工具调用。
MCP工具
get_documentation (现在可用)
从Maven工件中获取Java类的Javadoc HTML。
输入:
{
"coordinates": "org.slf4j:slf4j-api:2.0.9",
"className": "org.slf4j.Logger"
}输出: javadoc JAR中的HTML内容
支持:
- 任何Maven工件
-javadoc.jar分类器 - 内部类(自动剥离
$Factory后缀) - 清除缺失工件/类的错误消息
get_source (即将进入第二阶段)
返回类的源文件内容。
测试
# Run all tests (22 passing)
scala-cli test .
# Run specific test suite
scala-cli test . --test-only javadocsmcp.domain.ArtifactCoordinatesTest测试覆盖范围:
- ✅ 单元测试:域逻辑(坐标解析、路径映射)
- ✅ 集成测试:真正的Maven Central下载(slf4j,番石榴)
- ✅ 端到端测试:完成服务编排
建筑
遵循DDD和功能核心/强制外壳原则:
Presentation Layer (Chimp/Tapir)
↓
Application Layer (DocumentationService)
↓
Domain Layer (Pure functional logic)
↓
Infrastructure Layer (Coursier, JAR reading)依赖项
- 黑猩猩 (0.1.6):MCP服务器库
- Tapir Netty (1.11.11):HTTP服务器
- 档案 (2.1.10):Maven工件解析
- 斯卡拉 (3.3):程序设计语言
- 弹药 (1.0.0):测试框架
性能和缓存
第7阶段引入了内存缓存,以显著提高性能:
- 第一个请求:3-5秒(网络+JAR下载)
- 缓存请求:\80%
- 平均缓存命中开销:\<1ms
- 缓存大小通过LRU逐出进行自我调节
路线图
- ✅ 第一阶段:Javadoc HTML获取
- ✅ 第2阶段:获取源代码
- ✅ 第3-4阶段:Scala库支持
- ✅ 第5-6阶段:高级错误处理
- ✅ 第7阶段:内存缓存
许可证
待定
