返回市场
maven工具mcp

maven工具mcp

作者:arvindand17 星标更新:2025-11-16

项目介绍

Maven Tools MCP Server

Java Spring Boot MCP Protocol License GitHub release (latest by date) Docker GitHub stars

针对JVM构建工具的通用Maven中央依赖智能

MCP服务器为AI助手提供针对所有JVM构建工具(Maven、Gradle、SBT、Mill)的Maven中央依赖智能。通过直接从Maven中央仓库读取maven-metadata.xml文件,获取即时且准确的依赖信息——比网络搜索或搜索API更快更可靠。集成Context7以支持文档。

🎯 为什么这很重要

  • 问题: 依赖管理涉及在Maven中央进行耗时的手动搜索,以更新版本并分析兼容性。
  • 解决方案: 使用AI辅助的依赖智能,实现即时批量分析、趋势洞察和风险评估,适用于任何JVM构建工具。

⚡ 快速演示

演示GIF

询问你的AI助手:

  • "检查此构建文件中的所有依赖项的最新版本" (粘贴你的build.gradle、pom.xml、build.sbt)
  • "最新的Spring Boot版本是什么?"
  • "我的项目中哪些依赖项需要更新?" (任何构建工具)
  • "只显示适合生产部署的稳定版本"
  • "我的依赖项有多旧,哪些需要关注?"
  • "分析我关键依赖项的发布模式"
  • "给我一个关于我项目所有依赖项的健康检查"
  • "如何将Spring Boot从2.7.0升级到最新版本?展示迁移指南"
  • "检查这些依赖项是否有升级,并建议文档搜索" (粘贴你的pom.xml/build.gradle)
  • "我仍在使用Jackson 2.12.0。是否应该升级以及如何升级?"

🔧 支持的构建工具

与使用Maven中央仓库的任何构建工具配合工作:

构建工具依赖格式示例用法
MavengroupId:artifactId:versionorg.springframework:spring-core:6.2.8
Gradleimplementation("group:artifact:version")使用相同的Maven坐标
SBTlibraryDependencies += "group" % "artifact" % "version"相同的groupId:artifactId格式
Millivy"group:artifact:version"相同的Maven中央查找

所有工具都使用标准的Maven坐标 —— 只需提供groupId:artifactId,其余由我们处理。

⚡ 优势

对比简单的查找工具

  • 批量操作 —— 分析20多个依赖项
  • 版本比较 —— 理解升级影响(主要/次要/补丁)
  • 稳定性过滤 —— 选择仅稳定版本或包括预发布版本
  • 企业性能 —— 缓存响应时间小于100毫秒,原生镜像
  • 分析智能 —— 年龄分析、发布模式、项目健康评分
  • Context7编排 —— 清晰的工具编排指令,带有网络搜索回退

对比手动依赖管理

  • 风险评估 —— 在升级前识别破坏性变更
  • 通用支持 —— 适用于任何JVM构建工具
  • 全面分析 —— 所有版本类型,智能优先级
  • 维护智能 —— 预测维护活动和可持续性

设置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",
        "arvindand/maven-tools-mcp:latest"
      ]
    }
  }
}

步骤3: 重启Claude Desktop

前提条件: 已安装并运行Docker

注意: Docker镜像支持AMD64(Intel/AMD)和ARM64(Apple Silicon)架构。Docker会自动选择适合您平台的版本。

故障排除: Context7集成默认启用,并在启动时联系https://mcp.context7.com。如果您的网络阻止该URL,服务器会在stdout打印Spring堆栈跟踪,导致MCP握手失败。使用无Context7的原生镜像代替:arvindand/maven-tools-mcp:latest-noc7。(环境变量切换仅在直接运行JVM jar时有效。)

具有SSL检查的企业网络: 如果您需要Context7集成但您的网络使用SSL检查(中间人代理),您可以构建一个带有公司证书的自定义镜像。请参阅CORPORATE-CERTIFICATES.md以获取详细说明。

设置VS Code与GitHub Copilot

选项1:工作区配置 —— 创建.vscode/mcp.json

{
  "servers": {
    "maven-tools": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}

选项2:用户设置 —— 添加到您的VS Code设置:

{
  "mcp": {
    "servers": {
      "maven-tools": {
        "type": "stdio", 
        "command": "docker",
        "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
      }
    }
  }
}

使用方法: 打开聊天视图(Ctrl+Alt+I),选择代理模式,然后使用工具按钮启用Maven工具。

它的功能

核心依赖智能:

  • 获取Maven依赖项的最新或稳定版本
  • 检查特定版本是否存在
  • 批量检查多个依赖项的版本
  • 比较版本并获得更新建议

高级分析:

  • 分析依赖项的年龄和新鲜度(新鲜/当前/老化/过时)
  • 评估维护活动和发布模式
  • 预测下一个发布时间段
  • 综合项目健康评分,带风险评估

可用工具

核心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 - 时间线上最近版本的数量(默认:2-20)
  • includeRecommendations - 在健康分析中包含详细建议

Context7集成:

Context7集成默认启用context7.enabled=true)。Maven工具在响应模型中自动包含明确的编排指令,当需要升级或现代化时。此外,服务器作为MCP客户端暴露原始Context7工具(resolve-library-idget-library-docs)直接给您的AI助手。禁用时,响应仅包含核心依赖分析,不包含编排指令或Context7工具。

通用兼容性: 所有工具都使用标准的Maven坐标(groupId:artifactId),并支持任何JVM构建工具。

get_latest_version

获取Maven中央的任何依赖项的最新版本(适用于Maven、Gradle、SBT、Mill),带有稳定性偏好。

参数:

  • dependency (字符串,必需):Maven坐标格式groupId:artifactId(无版本)
  • 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 (字符串,必需):Maven坐标格式groupId:artifactId(无版本)
  • 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 (字符串,可选):聚焦文档的主题(例如,“设置”,“迁移”,“配置”)
  • tokens (整数,可选):要检索的最大标记数(默认:10000)

示例:

{
  "context7CompatibleLibraryID": "/testcontainers/testcontainers-java",
  "topic": "postgresql setup",
  "tokens": 5000
}

这些工具通过Spring AI MCP客户端集成默认自动可用。服务器同时充当MCP服务器(公开Maven工具)和MCP客户端(公开Context7工具),提供统一的接口,既可用于依赖分析,也可用于文档访问。

使用示例

入门示例

简单问题:

  • "获取最新的Spring Boot版本,但优先考虑稳定版本"
  • "检查Kotlin 1.9.0是否存在及其稳定性类型"
  • "显示Retrofit的最新稳定版本以供生产部署"

多构建工具支持:

  • "检查这些Gradle依赖项:org.jetbrains.kotlin:kotlin-stdlib,com.squareup.retrofit2:retrofit"
  • "我只需要SBT项目依赖项的稳定版本"
  • "比较我的Maven版本,但仅建议稳定的生产升级"

高级稳定性控制:

  • "检查多个依赖项,但仅过滤到稳定版本"
  • "比较我的当前版本,但仅建议稳定的生产升级"
  • "获取完整的分析,但在结果中优先考虑稳定版本"

🚀 实际用例

Gradle项目分析

操作: 粘贴您的build.gradle:"分析我的Gradle依赖项是否有过时版本"
结果: 即时跨任何构建工具的通用依赖分析

安全响应

操作: "显示这些受影响依赖项的最新稳定版本"
结果: 即时的安全补丁识别,带有生产安全建议

多构建工具项目

操作: "Spring Boot、Spring Security和Jackson的最新稳定版本是什么,适用于Maven和Gradle?"
**结果: