关于 Maven Check MCP Server
Maven Check MCP Server 让 LLM 查询 Maven Central 中的构件版本及其是否存在。它支持语义化版本比较、打包类型与分类器,也可批量检查依赖。
主要功能
- 01查询构件最新版本
- 02检查指定版本是否存在
- 03比较主、次和补丁版本
- 04支持打包类型与分类器
- 05批量检查依赖
适用场景
- 01检查 Maven 依赖版本
- 02选择主版本、次版本或补丁更新
- 03验证依赖列表中的多个版本
MCP 相关
向 MCP 客户端提供五种工具,用于查询 Maven 版本、检查版本是否存在、比较语义化版本组成部分,以及批量处理依赖。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Maven Check MCP 服务
一款轻量级 MCP 服务,可让大语言模型查询 Maven Central 中的制品版本。此服务允许 Claude 和其他 LLM 查找 Maven 依赖项的最新版本,并检查指定版本是否存在。
功能
- 查找任意 Maven 依赖项(库)的最新版本
- 检查依赖项的指定版本是否存在
- 支持打包类型(jar、war、pom 等)
- 自动检测 POM 依赖项(以 -bom 或 -dependencies 结尾的制品)
- 支持分类器
- 正确比较语义化版本
- 在单个请求中批量处理多个依赖项
- 通过 Model Context Protocol (MCP) 连接
安装
# Clone the repository
git clone https://github.com/danielscholl/maven-mcp-server.git
cd maven-mcp-server
# Install dependencies and the package
uv sync && uv pip install -e .
MCP 服务配置
要在项目中使用此 MCP 服务,请将以下内容添加到 .mcp.json:
{
"mcpServers": {
"maven-check": {
"type": "stdio",
"command": "uv",
"args": ["run", "maven-check"],
"env": {}
}
}
}
用法
启动服务:
uv run maven-check
启用调试日志:
uv run maven-check --debug
工具
此 MCP 服务提供五种工具:
1. get_maven_latest_version
获取 Maven 依赖项的最新版本。
参数:
dependency(必填):格式为 'groupId:artifactId' 的依赖项packaging(可选):打包类型,默认为 'jar'(对于以 -bom 或 -dependencies 结尾的依赖项,会自动使用 'pom')classifier(可选):分类器(如有)
示例:
{
"dependency": "org.apache.commons:commons-lang3"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies"
}
**返回:**以字符串形式返回最新版本(例如,"3.14.0")
2. check_maven_version_exists
检查 Maven 依赖项的指定版本是否存在。
参数:
dependency(必填):格式为 'groupId:artifactId' 的依赖项version(必填):要检查的版本packaging(可选):打包类型,默认为 'jar'(对于以 -bom 或 -dependencies 结尾的依赖项,会自动使用 'pom')classifier(可选):分类器(如有)
示例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.14.0"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.2.0"
}
**返回:**一个布尔值,表示该版本是否存在("true" 或 "false")
3. find_maven_latest_component_version
根据语义化版本的组成部分(major、minor 或 patch)获取 Maven 依赖项的最新版本。
参数:
dependency(必填):格式为 'groupId:artifactId' 的依赖项version(必填):符合语义化版本格式的版本(MAJOR.MINOR.PATCH)target_component(必填):要查找其最新版本的组成部分,可选值为:"major"、"minor"、"patch"packaging(可选):打包类型,默认为 'jar'(对于以 -bom 或 -dependencies 结尾的依赖项,会自动使用 'pom')classifier(可选):分类器(如有)
示例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0",
"target_component": "minor"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0",
"target_component": "minor"
}
**返回:**以字符串形式返回最新版本(例如,"3.14.0")
按目标组成部分划分的行为
- major:返回所有可用版本中的最高主版本
- minor:返回给定主版本中的最高次版本
- patch:返回给定主版本和次版本中的最高修订版本
4. get_maven_all_latest_versions
一次调用即可获取所有语义化版本组件(主版本、次版本、补丁版本)的最新版本。
参数:
dependency(必填):格式为 'groupId:artifactId' 的依赖项version(必填):语义化版本格式(MAJOR.MINOR.PATCH)的版本packaging(可选):打包类型,默认为 'jar'(对于带有 -bom 或 -dependencies 后缀的依赖项,会自动使用 'pom')classifier(可选):分类器(如有)
示例:
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0"
}
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0"
}
返回: 包含各组件最新版本的 JSON 对象:
{
"latest_major_version": "3.14.0",
"latest_minor_version": "3.12.0",
"latest_patch_version": "3.12.0"
}
5. batch_maven_versions_check
通过单次批量请求检查多个 Maven 依赖项的最新版本,减少处理包含大量依赖项的项目时所需的 API 调用次数。
参数:
dependencies(必填):要检查的依赖项对象列表,每个对象包含:dependency(必填):格式为 'groupId:artifactId' 的依赖项version(必填):支持任意格式的版本packaging(可选):打包类型,默认为 'jar'(对于带有 -bom 或 -dependencies 后缀的依赖项,会自动使用 'pom')classifier(可选):分类器(如有)
示例:
{
"dependencies": [
{
"dependency": "org.apache.commons:commons-lang3",
"version": "3.12.0"
},
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"version": "3.1.0"
},
{
"dependency": "org.json:json",
"version": "20231013"
}
]
}
返回: 包含摘要和各依赖项结果的 JSON 对象:
{
"summary": {
"total": 3,
"success": 3,
"failed": 0
},
"dependencies": [
{
"dependency": "org.apache.commons:commons-lang3",
"status": "success",
"versions": {
"latest_major_version": "3.14.0",
"latest_minor_version": "3.12.0",
"latest_patch_version": "3.12.0"
}
},
{
"dependency": "org.springframework.boot:spring-boot-dependencies",
"status": "success",
"versions": {
"latest_major_version": "3.2.0",
"latest_minor_version": "3.1.5",
"latest_patch_version": "3.1.0"
}
},
{
"dependency": "org.json:json",
"status": "success",
"versions": {
"latest_major_version": "20240303",
"latest_minor_version": "20240303",
"latest_patch_version": "20240303"
}
}
]
}
工作原理
服务的工作方式如下:
- 查询 Maven Central Repository Search API
- 解析并验证依赖项格式
- 自动检测 POM 依赖项:
- 识别带有 "-bom" 或 "-dependencies" 后缀的构件
- 对这些构件使用 "pom" 打包类型
- 查询最新版本时:
- 获取该构件的所有版本
- 根据正确的语义化版本规则排序
- 返回最新版本
- 检查版本是否存在时:
- 直接向 Maven Central 查询指定版本
- 返回该版本是否存在
- 批量检查版本时:
- 在单次调用中处理多个依赖项请求
- 返回每个依赖项的详细结果及成功/错误状态
- 提供包含成功和失败请求数量的摘要
开发
测试
运行所有测试:
uv run pytest
与 Claude 搭配使用
设置好服务并连接 Claude Code 后,可以这样使用这些工具:
-
获取 Maven 依赖项的最新版本:
What is the latest version of org.springframework:spring-framework-bom -
检查指定版本是否存在:
Does version 3.14.0 of org.apache.commons:commons-lang3 exist? -
获取最新补丁版本:
I'm using version 2.0.2 of org.springdoc:springdoc-openapi-starter-webmvc-ui what is the latest patch? -
使用 BOM 和 POM 依赖项:
What is the latest version of org.springframework.boot:spring-boot-dependencies?服务会自动检测带有 "-dependencies" 或 "-bom" 后缀的依赖项,并使用 POM 打包类型。
-
一次调用获取所有最新版本:
Check latest versions org.springframework.boot:spring-boot-dependencies (currently using 3.1.0)此操作会在单次调用中返回最新的主版本、次版本和补丁版本,便于高效了解可用的升级选项。
-
使用批处理一次检查多个依赖项:
I need to check the latest versions for: - org.apache.commons:commons-lang3 (currently using 3.12.0) - org.springframework.boot:spring-boot-dependencies (currently using 3.1.0) - org.json:json (currently using 20231013)批处理工具会在一次请求中检查所有依赖项,提高处理包含多个依赖项的项目时的效率。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。