🚀 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 文件。