🚀 Maven Tools MCP Server
Maven Tools MCP Server 为所有 JVM 构建工具(Maven、Gradle、SBT、Mill)提供通用的 Maven Central 依赖智能。它能直接从 Maven Central 仓库读取 maven-metadata.xml 文件,为 AI 助手提供即时、准确的依赖信息,比网络搜索或搜索 API 更快、更可靠。此外,该服务器还集成了 Context7 以提供文档支持。
🚀 快速开始
MCP 服务器为所有 JVM 构建工具(Maven、Gradle、SBT、Mill)提供 Maven Central 依赖智能。你可以通过向 AI 助手提问,直接从 Maven Central 仓库读取 maven-metadata.xml 文件,从而获得即时、准确的依赖信息。以下是一些提问示例:
- “检查此构建文件中的所有依赖项的最新版本”(粘贴你的 build.gradle、pom.xml、build.sbt)
- “Spring Boot 的最新版本是什么?”
- “我的项目中哪些依赖项需要更新?”(适用于任何构建工具)
- “仅显示适用于生产部署的稳定版本”
- “我的依赖项使用了多久,哪些需要关注?”
- “分析我关键依赖项的发布模式”
- “对我项目的所有依赖项进行健康检查”
- “如何将 Spring Boot 从 2.7.0 升级到最新版本?请提供迁移指南”
- “检查这些依赖项是否有升级,并建议相关文档搜索”(粘贴你的 pom.xml/build.gradle)
- “我仍在使用 Jackson 2.12.0。我应该升级吗?如何升级?”
✨ 主要特性
- 通用支持:适用于所有使用 Maven Central 仓库的 JVM 构建工具,包括 Maven、Gradle、SBT 和 Mill。
- 即时准确:直接从 Maven Central 仓库读取 maven-metadata.xml 文件,提供即时、准确的依赖信息。
- 批量操作:支持批量分析 20 个以上的依赖项。
- 版本比较:可比较版本并提供升级建议,帮助你了解升级影响(主要/次要/补丁)。
- 稳定性过滤:可选择仅显示稳定版本或包含预发布版本。
- 企业级性能:缓存响应时间小于 100 毫秒,支持原生镜像。
- 分析智能:提供依赖项年龄分析、发布模式分析和项目健康评分。
- Context7 集成:集成 Context7 以提供文档支持,当需要升级或现代化时,自动包含明确的编排指令。
📦 安装指南
为 Claude Desktop 进行设置
步骤 1:找到你的 Claude Desktop 配置文件
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
步骤 2:添加以下配置(使用预构建的 Docker 镜像):
{
"mcpServers": {
"maven-tools": {
"command": "docker",
"args": [
"run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker",
"arvindand/maven-tools-mcp:latest"
]
}
}
}
步骤 3:重启 Claude Desktop
前提条件:已安装并运行 Docker
注意:Docker 镜像支持 AMD64(Intel/AMD)和 ARM64(Apple Silicon)架构。Docker 会自动为你的平台选择正确的版本。
为带有 GitHub Copilot 的 VS Code 进行设置
选项 1:工作区配置 - 创建 .vscode/mcp.json:
{
"servers": {
"maven-tools": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker", "arvindand/maven-tools-mcp:latest"]
}
}
}
选项 2:用户设置 - 添加到你的 VS Code 设置中:
{
"mcp": {
"servers": {
"maven-tools": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker", "arvindand/maven-tools-mcp:latest"]
}
}
}
}
使用方法:打开聊天视图(Ctrl+Alt+I),选择代理模式,然后使用工具按钮启用 Maven 工具。
其他安装方式
使用 Docker Compose
替代的 Claude Desktop 配置(如果你更喜欢使用 compose):
下载 docker-compose.yml 并进行配置:
{
"mcpServers": {
"maven-tools": {
"command": "docker",
"args": [
"compose", "-f", "/absolute/path/to/docker-compose.yml",
"run", "--rm", "maven-tools-mcp"
]
}
}
}
仅用于开发/测试:
docker compose up -d
从源代码构建(适用于贡献者)
前提条件:
git clone https://github.com/arvindand/maven-tools-mcp.git
cd maven-tools-mcp
./mvnw clean package -Pci
./mvnw clean package -Pfull
java -jar target/maven-tools-mcp-1.4.0.jar
Claude Desktop 对 JAR 文件的配置:
{
"mcpServers": {
"maven-tools": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/maven-tools-mcp-1.4.0.jar"
]
}
}
}
构建脚本
为了更方便地进行构建,可以使用 build/ 文件夹中提供的脚本:
./build/build.sh
.\build\build.cmd
💻 使用示例
基础用法
{
"dependency": "org.springframework:spring-core",
"preferStable": false
}
此示例展示了如何使用 get_latest_version 工具获取 org.springframework:spring-core 依赖项的最新版本,不优先考虑稳定版本。
高级用法
{
"currentDependencies": "org.springframework:spring-boot:2.7.0,org.hibernate:hibernate-core:5.6.0",
"onlyStableTargets": true
}
此示例展示了如何使用 compare_dependency_versions 工具比较 org.springframework:spring-boot 和 org.hibernate:hibernate-core 依赖项的当前版本与最新版本,并仅建议升级到稳定版本。
📚 详细文档
可用工具
核心 Maven 智能工具(8 个工具)
| 工具 |
用途 |
关键特性 |
get_latest_version |
根据稳定性偏好获取最新版本 |
preferStable 参数,支持所有版本类型 |
check_version_exists |
验证特定版本是否存在并确定其稳定性类型 |
适用于任何 JVM 构建工具 |
check_multiple_dependencies |
检查多个依赖项并可进行过滤 |
stableOnly 参数,支持批量操作 |
compare_dependency_versions |
比较当前版本与最新版本并提供升级建议 |
includeMigrationGuidance 标志 |
analyze_dependency_age |
将依赖项分类为新鲜/当前/老化/陈旧 |
includeModernizationGuidance 标志 |
analyze_release_patterns |
分析维护活动并预测发布时间 |
monthsToAnalyze 参数,支持速度趋势分析 |
get_version_timeline |
增强的版本时间线并进行时间分析 |
versionCount 参数,支持检测发布间隔 |
analyze_project_health |
对多个依赖项进行全面的健康分析 |
includeUpgradeStrategy 标志 |
原始 Context7 文档工具(2 个工具 - 默认启用)
| 工具 |
用途 |
关键特性 |
resolve-library-id |
搜索库文档 |
始终可用(默认 context7.enabled=true) |
get-library-docs |
根据 ID 获取库文档 |
始终可用(默认 context7.enabled=true) |
工具参数
核心参数
preferStable - 在分析中优先考虑稳定版本
stableOnly - 仅过滤出适用于生产的稳定版本
onlyStableTargets - 仅建议升级到稳定版本
分析参数
maxAgeInDays - 设置依赖项可接受的年龄阈值
monthsToAnalyze - 指定发布模式的分析周期(默认:24 个月)
versionCount - 在时间线分析中要分析的最近版本数量(默认:20 个)
includeRecommendations - 在健康分析中包含详细的建议
Context7 集成
Context7 集成默认启用(context7.enabled=true)。Maven 工具在需要升级或现代化时,会自动在响应模型中包含明确的编排指令。此外,服务器作为 MCP 客户端,将原始 Context7 工具(resolve-library-id,get-library-docs)直接暴露给你的 AI 助手。当禁用时,响应仅包含核心依赖项分析,不包含编排指令或 Context7 工具。
工具使用示例
get_latest_version
获取 Maven Central 中任何依赖项的最新版本(适用于 Maven、Gradle、SBT、Mill),并可设置稳定性偏好。
参数:
dependency(字符串,必需):格式为 groupId:artifactId 的 Maven 坐标(不包含版本)
preferStable(布尔值,可选):为 true 时,在分析中优先考虑稳定版本(默认:false)
示例:
{
"dependency": "org.springframework:spring-core",
"preferStable": false
}
{
"dependency": "org.springframework:spring-boot",
"preferStable": true
}
响应:
{
"dependency": "org.springframework:spring-core",
"latest_stable": { "version": "6.2.7", "type": "stable" },
"latest_rc": { "version": "7.0.0-RC1", "type": "rc" },
"latest_beta": { "version": "7.0.0-beta1", "type": "beta" },
"latest_alpha": { "version": "7.0.0-alpha1", "type": "alpha" },
"latest_milestone": { "version": "7.0.0-M5", "type": "milestone" },
"total_versions": 100
}
check_version_exists
检查特定依赖项版本是否存在,并确定其稳定性类型。适用于任何 JVM 构建工具。
参数:
dependency(字符串,必需):格式为 groupId:artifactId 的 Maven 坐标(不包含版本)
version(字符串,必需):要检查的版本
示例:
{
"dependency": "org.jetbrains.kotlin:kotlin-stdlib",
"version": "1.9.0"
}
响应:
{
"exists": true,
"version": "6.0.0",
"type": "stable"
}
check_multiple_dependencies
检查多个依赖项的最新版本,并可进行过滤。适用于任何 JVM 构建工具。
参数:
dependencies(字符串,必需):以逗号或换行符分隔的 Maven 坐标列表(不包含版本)
stableOnly(布尔值,可选):为 true 时,仅过滤出适用于生产的稳定版本(默认:false)
示例:
{
"dependencies": "org.jetbrains.kotlin:kotlin-stdlib,com.squareup.retrofit2:retrofit,org.apache.spark:spark-core_2.13",
"stableOnly": false
}
{
"dependencies": "org.springframework:spring-boot,com.fasterxml.jackson.core:jackson-core",
"stableOnly": true
}
响应(数组):
[
{
"dependency": "org.springframework:spring-core",
"primary_version": "6.2.7",
"primary_type": "stable",
"total_versions": 100,
"stable_versions": 82,
"latest_stable": { "version": "6.2.7", "type": "stable" },
"latest_rc": { "version": "7.0.0-RC1", "type": "rc" },
"latest_beta": null,
"latest_alpha": null,
"latest_milestone": { "version": "7.0.0-M5", "type": "milestone" }
},
]
compare_dependency_versions
比较当前依赖项版本与最新可用版本,并显示升级建议和安全控制。
参数:
currentDependencies(字符串,必需):以逗号或换行符分隔的包含版本的 Maven 坐标列表(groupId:artifactId:version)
onlyStableTargets(布尔值,可选):为 true 时,仅建议升级到稳定版本(默认:false)
示例:
{
"currentDependencies": "org.jetbrains.kotlin:kotlin-stdlib:1.8.0,com.squareup.retrofit2:retrofit:2.9.0",
"onlyStableTargets": false
}
{
"currentDependencies": "org.springframework:spring-boot:2.7.0,org.hibernate:hibernate-core:5.6.0",
"onlyStableTargets": true
}
响应:
{
"comparison_date": "2025-06-07T22:38:47Z",
"dependencies": [
{
"dependency": "org.springframework:spring-core:6.0.0",
"current_version": "6.0.0",
"latest_version": "7.0.0-M5",
"latest_type": "milestone",
"update_type": "major",
"update_available": true,
"status": "success",
"error": null
}
],
"update_summary": {
"major_updates": 1,
"minor_updates": 0,
"patch_updates": 0,
"no_updates": 0
}
}
原始 Context7 MCP 工具
注意:Context7 集成默认启用。以下原始 Context7 MCP 工具通过服务器的双 MCP 架构(同时充当 MCP 服务器和 MCP 客户端)自动可用:
resolve-library-id
使用智能名称解析搜索库文档。
参数:
libraryName(字符串,必需):用于库查找的搜索词(例如,"spring boot","testcontainers")
示例:
{
"libraryName": "testcontainers postgresql"
}
get-library-docs
使用 Context7 ID 获取库的综合文档。
参数:
context7CompatibleLibraryID(字符串,必需):与 Context7 兼容的库 ID(来自 resolve-library-id)
topic(字符串,可选):聚焦文档的主题(例如,"setup","migration","configuration")
tokens(整数,可选):要检索的最大令牌数(默认:10000)
示例:
{
"context7CompatibleLibraryID": "/testcontainers/testcontainers-java",
"topic": "postgresql setup",
"tokens": 5000
}
这些工具通过 Spring AI MCP 客户端集成默认自动可用。服务器既充当 MCP 服务器(暴露 Maven 工具),又充当 MCP 客户端(暴露 Context7 工具),为依赖项分析和文档访问提供统一接口。
🔧 技术细节
- 框架:Spring Boot 3.5.4 与 Spring AI MCP
- MCP 协议:2024-11-05
- Java 版本:24
- 传输方式:stdio
- HTTP 客户端:Spring Web RestClient
- 缓存:Caffeine(24 小时 TTL,最大 2000 个条目)
- 数据源:Maven Central 仓库(maven-metadata.xml 文件)
📄 许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。