Skip to main content
Glama
Bigsy
by Bigsy

Maven 依赖 MCP 服务器

一个提供检查 Maven 依赖版本工具的 MCP (Model Context Protocol) 服务器。该服务器使 LLM 能够验证 Maven 依赖项并从 Maven 中央仓库检索其最新版本。

安装

您可以使用 npm 全局安装此 MCP 服务器:

npm install -g mcp-maven-deps

或者使用 npx 直接运行:

npx mcp-maven-deps

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 Maven 依赖服务器:

npx -y @smithery/cli install maven-deps-server --client claude

Related MCP server: Maven Decoder MCP Server

功能

  • 获取任何 Maven 依赖的最新稳定版本(默认排除预发布版本)

  • 验证 Maven 依赖是否存在

  • 检查特定版本的依赖是否存在

  • 列出 Maven 依赖版本,并可选择进行预发布版本过滤

  • 智能预发布检测(alpha、beta、milestone、RC、snapshot)

  • 支持完整的 Maven 坐标,包括打包方式和分类器

  • 实时访问 Maven 中央仓库数据

  • 兼容多种构建工具格式(Maven、Gradle、SBT、Mill)

开发说明:

  1. 克隆此仓库

  2. 安装依赖:npm install

  3. 构建服务器:npm run build

配置

将服务器添加到您的 MCP 设置配置文件中:

{
  "mcpServers": {
    "maven-deps-server": {
      "command": "npx",
      "args": ["mcp-maven-deps"]
    }
  }
}

如果已全局安装,您也可以使用:

{
  "mcpServers": {
    "maven-deps-server": {
      "command": "mcp-maven-deps"
    }
  }
}

传输选项

服务器支持两种传输模式:

  1. stdio(默认)- 标准输入/输出通信

  2. SSE (Server-Sent Events) - 基于 HTTP 的通信,支持可选的远程访问

要使用 SSE 传输,您可以指定主机和端口:

# Local access only (default host: localhost)
npx mcp-maven-deps --port=3000

# Remote access
npx mcp-maven-deps --host=0.0.0.0 --port=3000

在 MCP 设置中使用 SSE 传输时:

{
  "mcpServers": {
    "maven-deps-server": {
      "command": "npx",
      "args": ["mcp-maven-deps", "--port=3000"]
    }
  }
}

对于远程访问,请在客户端配置中使用服务器的 IP 或主机名:

{
  "mcpServers": {
    "maven-deps-server": {
      "command": "npx",
      "args": ["mcp-maven-deps", "--host=your-server-ip", "--port=3000"]
    }
  }
}

可用工具

get_latest_release

检索 Maven 依赖的最新稳定发布版本。默认情况下,这会排除预发布版本(alpha、beta、milestone、RC、snapshot),以确保您获得生产就绪的版本。

输入模式:

{
  "type": "object",
  "properties": {
    "dependency": {
      "type": "string",
      "description": "Maven coordinate in format \"groupId:artifactId[:version][:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:5.3.20:jar\")"
    },
    "excludePreReleases": {
      "type": "boolean",
      "description": "Whether to exclude pre-release versions (alpha, beta, milestone, RC, snapshot). Default: true",
      "default": true
    }
  },
  "required": ["dependency"]
}

使用示例:

// Get latest stable release (default behavior)
const result1 = await mcpClient.callTool("maven-deps-server", "get_latest_release", {
  dependency: "org.springframework:spring-core"
});
// Returns: "6.2.8" (latest stable, excludes "7.0.0-M6" milestone)

// Include pre-releases if needed
const result2 = await mcpClient.callTool("maven-deps-server", "get_latest_release", {
  dependency: "org.springframework:spring-core",
  excludePreReleases: false
});
// Returns: "7.0.0-M6" (includes pre-releases)

check_maven_version_exists

检查 Maven 依赖的特定版本是否存在。版本既可以在依赖字符串中提供,也可以作为单独的参数提供。

输入模式:

{
  "type": "object",
  "properties": {
    "dependency": {
      "type": "string",
      "description": "Maven coordinate in format \"groupId:artifactId[:version][:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:5.3.20:jar\")"
    },
    "version": {
      "type": "string",
      "description": "Version to check if not included in dependency string"
    }
  },
  "required": ["dependency"]
}

使用示例:

// Using version in dependency string
const result1 = await mcpClient.callTool("maven-deps-server", "check_maven_version_exists", {
  dependency: "org.springframework:spring-core:5.3.20"
});

// Using separate version parameter
const result2 = await mcpClient.callTool("maven-deps-server", "check_maven_version_exists", {
  dependency: "org.springframework:spring-core",
  version: "5.3.20"
});

list_maven_versions

按部署顺序列出 Maven 依赖版本,最新版本优先,支持可选的预发布过滤和深度控制。输出为每行一个版本。

输入模式:

{
  "type": "object",
  "properties": {
    "dependency": {
      "type": "string",
      "description": "Maven coordinate in format \"groupId:artifactId[:packaging][:classifier]\" (e.g. \"org.springframework:spring-core\" or \"org.springframework:spring-core:jar\")"
    },
    "depth": {
      "type": "number",
      "description": "Number of versions to return (default: 15)",
      "minimum": 1,
      "maximum": 100
    },
    "excludePreReleases": {
      "type": "boolean",
      "description": "Whether to exclude pre-release versions (alpha, beta, milestone, RC, snapshot). Default: true",
      "default": true
    }
  },
  "required": ["dependency"]
}

使用示例:

// Get last 15 stable versions (default - excludes pre-releases)
const result1 = await mcpClient.callTool("maven-deps-server", "list_maven_versions", {
  dependency: "org.springframework:spring-core"
});
// Returns only stable versions: "6.2.8\n6.1.21\n6.2.7\n..."

// Get last 5 versions including pre-releases
const result2 = await mcpClient.callTool("maven-deps-server", "list_maven_versions", {
  dependency: "org.springframework:spring-core",
  depth: 5,
  excludePreReleases: false
});
// Returns: "7.0.0-M6\n6.2.8\n6.1.21\n7.0.0-M5\n6.2.7"

实现细节

  • 直接查询 Maven 中央仓库上的 maven-metadata.xml (https://repo1.maven.org/maven2/<g>/<a>/maven-metadata.xml) —— 这是 Maven 和 Gradle 在依赖解析过程中查阅的权威文件。它在部署后几秒钟内更新,因此结果绝不会过时。

  • 支持完整的 Maven 坐标 (groupId:artifactId:version:packaging:classifier)

  • 使用正则表达式模式匹配进行智能预发布检测

  • maven-metadata.xml 中记录的部署顺序(最新优先)返回版本

  • 包含针对无效依赖项和 API 问题的错误处理

  • 为有效依赖项返回干净、可解析的版本字符串

  • 为版本存在性检查提供布尔值响应

预发布检测

服务器使用以下模式自动检测预发布版本:

  • Alpha: -alpha, -a

  • Beta: -beta, -b

  • Milestone: -milestone, -m, -M

  • Release Candidate: -rc, -cr

  • Snapshot: -snapshot

示例:

  • 7.0.0-M6 → 预发布 (milestone)

  • 6.2.8 → 稳定发布

  • 3.1.0-SNAPSHOT → 预发布 (snapshot)

  • 2.5.0-RC1 → 预发布 (release candidate)

重大变更说明: 该工具已从 get_maven_last_updated_version 重命名为 get_latest_release,现在默认排除预发布版本。这确保了生产应用程序默认获得稳定版本,同时在需要时仍允许访问预发布版本。

错误处理

服务器处理各种错误情况:

  • 无效的依赖格式

  • 无效的版本格式

  • 不存在的依赖项

  • 未找到稳定版本(启用过滤时)

  • API 连接问题

  • 格式错误的响应

  • 缺少版本信息

开发

要修改或扩展服务器:

  1. src/index.ts 进行更改

  2. 使用 npm run build 重新构建

  3. 重启 MCP 服务器以应用更改

许可证

MIT

Install Server
A
license - permissive license
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server for managing Maven dependency versions using direct metadata parsing from Maven Central. It provides tools to fetch latest stable versions, list version history, and compare versions with upgrade recommendations.
    4
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive MCP server for analyzing Maven jar files in the local repository, enabling AI agents to understand dependencies, analyze bytecode, and extract source code.
    22
    19
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that scans Maven project dependencies, decompiles Java class files, and provides class structure analysis to LLMs for accurate code generation.
    6
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bigsy/maven-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server