mcpField
M
Maven Tools Mcp Server

Maven Tools Mcp Server

本地服务
github.com/arvindand开发工具353 周前更新

关于 Maven Tools Mcp Server

Maven Tools MCP Server 基于 Maven Central 的实时数据,为 MCP 客户端提供 JVM 依赖分析能力。它面向需要超越简单版本查询的开发者与 Agent,涵盖稳定性筛选、升级比较、CVE 与许可证信息。

主要功能

  1. 01稳定版本筛选与升级比较
  2. 02依赖年龄与发布节奏分析
  3. 03POM 解析,支持父 POM 与 BOM
  4. 04结构化升级建议与需人工审查项
  5. 05可选的 Context7 文档查询

适用场景

  1. 01检查 pom.xml 中依赖的最新版本并标记风险
  2. 02审计依赖的漏洞与许可证情况
  3. 03规划 Maven 依赖升级并交由 Agent 应用

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Maven 依赖查询、POM 分析与升级建议等工具。提供 Docker 镜像,可通过 STDIO 或 HTTP 方式接入。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"maven-tools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/arvindand/maven-tools-mcp:latest"
]
}
}
}
启动命令docker run -i --rm docker.io/arvindand/maven-tools-mcp:latest

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/arvindand/maven-tools-mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Maven Tools MCP 服务

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

Maven Tools MCP 服务让兼容 MCP 的客户端能够通过 Maven Central 的实时数据,便捷地检查 JVM 依赖。

它面向需要的不只是简单版本查询的开发者和 Agent,提供稳定版本筛选、升级对比、依赖健康信号、许可证数据、CVE 检查,以及通过 Context7 查询文档的可选功能。

演示

可提供的帮助

  • **版本检查:**查找稳定版本,并结合主版本、次版本和补丁版本信息比较升级。
  • **依赖审计:**检查依赖年龄、发布频率、已知漏洞和许可证数据。
  • **POM 分析:**无需构建项目,即可通过父 POM 和 BOM 解析声明的依赖版本。
  • **升级规划:**获取结构化修改建议,供 Agent 验证和应用;需要审核的主版本升级、冲突和覆盖项会标记出来。
  • **文档:**通过可选的 Context7 工具查询库文档。

基于坐标的工具适用于 Maven、Gradle、SBT 和 Mill 项目。POM 分析和升级规划工具需要 Maven pom.xml 文件。

快速开始

**前提条件:**已安装并运行 Docker。无需在本地安装 Java。若要在不使用 Docker 的情况下进行设置,请参阅构建并运行 JAR。

Claude Desktop

在 Claude Desktop 配置中添加 maven-tools 条目(参见配置文件位置):

{
  "mcpServers": {
    "maven-tools": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}
VS Code + GitHub Copilot

将以下服务添加到工作区中的 .vscode/mcp.json:

{
  "servers": {
    "maven-tools": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "arvindand/maven-tools-mcp:latest"]
    }
  }
}
镜像变体
标签传输方式Context7适用场景
:latestSTDIO是默认的桌面 MCP 用法
:latest-noc7STDIO否Context7 被屏蔽或不需要的网络
:latest-httpHTTP是Streamable HTTP 客户端和 sidecar 工作流

当前版本为 v3.2.3。如需固定版本,请使用 :3.2.3、:3.2.3-noc7 或 :3.2.3-http;每个版本都支持 Linux AMD64 和 ARM64。

CONTEXT7_API_KEY 为可选项。大多数设置无需此项即可启动。如果你的环境需要 Context7 身份验证,或希望避免匿名使用限额,可通过 Docker 使用 -e CONTEXT7_API_KEY 传入。

如需更完整的设置指南,包括 JAR 和原生容器用法、Docker Compose 及环境说明,请参阅 docs/setup.md。

可用工具

默认镜像提供 11 个 MCP 工具;-noc7 提供 9 个核心工具。

Maven 智能分析工具
工具功能
get_latest_version通过考虑稳定性的选择,查找最新版本
check_version_exists验证指定版本并判断其稳定性
check_multiple_dependencies批量查询依赖坐标
compare_dependency_versions将当前版本与可用升级版本进行比较
analyze_dependency_age判断依赖的陈旧程度
analyze_release_patterns查看发布节奏和维护状况信号
analyze_project_health执行更全面的依赖健康审计
analyze_pom_dependencies解析声明的依赖版本、确定其来源并 выяв出 BOM 冲突
recommend_pom_upgrades生成可执行的 POM 升级建议,并标记需要审核的变更
Context7 文档工具
工具功能
resolve_library_id查找文档库标识符
query_docs根据 Context7 库 ID 获取文档

有关参数、示例和逐个工具的说明,请参阅 docs/tools.md。

支持 POM 感知的依赖分析

这两个 POM 工具均使用 Apache Maven Model Builder 处理父级继承、属性和依赖管理,包括导入的 BOM。它们接受原始 POM XML,以及用于尚未发布的父级或同级模块的可选 sideloadedPoms 包。

  • analyze_pom_dependencies 会返回生效版本,将声明分类为 EXPLICIT、MANAGED 或 EXPLICIT_OVERRIDE,并指出管理这些依赖的 BOM 及冲突。
  • recommend_pom_upgrades 会返回用于机械式编辑的 deterministicActions,并通过 needsAttention 标出主版本升级、BOM 冲突和显式覆盖。操作会指出输入 POM 中需要编辑的版本字段或属性。

建议涵盖可编辑的父级/BOM 版本、显式依赖、根级依赖管理条目,以及直接构建依赖/插件。对于在输入 POM 中没有明确编辑位置的声明,将跳过。服务会返回建议;客户端或 Agent 负责验证并应用这些建议。

分析范围为已声明依赖,不包括完整的传递依赖图。配置文件激活仅限于默认激活的配置文件。请参阅 POM 分析详情与限制。

示例

在 Copilot 或 Claude 中,常见的提示词是:

检查我的 pom.xml 中所有依赖的最新版本,并指出任何有风险的依赖。

客户端可以整合工具结果并报告:

  • 当前版本与最新版本
  • 升级属于主版本、次版本还是补丁版本
  • 最新版本是否稳定
  • 依赖看起来是较新、正在变旧还是已过时
  • 是否有值得注意的已知 CVE 或许可证问题

对于“我应该选择哪个库?”这类更广泛的问题,可将 Maven 元数据与 Context7 文档结合,并通过客户端网页搜索了解生态背景。

请参阅更多提示词示例,或查看 maven-tools Agent 技能,了解如何选择和组合工具。

自用实践

此仓库在每周依赖更新工作流中使用自身工具。Python Agent 会将 POM 发送给 recommend_pom_upgrades,验证并应用次版本/补丁版本操作,然后创建 PR 供审核。其 XML 编辑器会检查当前版本并保留格式。手动审核主版本升级时会使用 GitHub Copilot SDK;例行更新无需大模型。

请参阅自用实践指南,了解 Agent、GitHub Actions 工作流、凭据和手动触发方式。

常见问题

  • 这能取代 Renovate 或 Dependabot 吗? 此服务提供依赖分析和升级建议。编辑文件、测试、安排计划和创建 PR 需要单独的 Agent 或工作流。参见内置 Agent,了解如何将其用于 Maven POM 更新。
  • 它能离线运行吗? 不能完全离线运行。查询未缓存的元数据需要访问 Maven Central 或你配置的仓库。漏洞检查和 Context7 文档也会使用外部服务。
  • 它能解析 Gradle、SBT 或 Mill 构建文件吗? 不能。请将这些工具的依赖项转换为 Maven 坐标,再使用基于坐标的工具;整文件分析仅接受 Maven POM XML。

更多使用说明,请参阅 docs/examples.md 中的常见问题部分。

致谢

com.arvindand.mcp.maven.pom 下的有效 POM 解析器遵循 maxxq-org/maxxq-maven(MIT,Guy Chauliac)的解析方式,并在此限定为已声明依赖项的解析。详见 NOTICE。

更多文档

延伸阅读

贡献

如果你想在本地构建或测试,请从 docs/setup.md 和 build/ 中的辅助脚本开始。

main 分支当前为 3.2.4-SNAPSHOT。要从源代码构建当前版本,请检出 v3.2.3。

项目历史和发行说明见 CHANGELOG.md。

许可证

本项目采用 MIT 许可证。详见 LICENSE。

作者

Arvind Menon

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。