Maven Tools MCP Server

Maven Tools MCP Server

Provides live Maven Central dependency inspection with stability filtering, version comparison, CVE checks, and POM-aware upgrade recommendations for MCP-capable clients.

Category
访问服务器

README

Maven Tools MCP Server

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

Maven Tools MCP Server gives MCP-capable clients a practical way to inspect JVM dependencies using live Maven Central data.

It is built for developers and agents that need more than a plain version lookup: stability filtering, upgrade comparisons, dependency health signals, license data, CVE checks, and optional documentation lookups through Context7.

Demo

What It Helps With

Use Maven Tools MCP when you want to:

  • check the latest stable version of a library without leaving your editor
  • compare your current dependency set against what is available now
  • plan upgrades with major/minor/patch context
  • audit a project for stale, risky, or weakly maintained dependencies
  • give an AI assistant structured, current dependency metadata instead of making it scrape docs or web pages
  • resolve a whole pom.xml into per-dependency effective versions — walking the parent chain, applying <dependencyManagement>, importing BOMs — without actually building the project (useful in CI pre-checks, dependency-update PRs, multi-module monorepos, and any project where bumping a library means bumping a BOM instead)
  • get a deterministic, applyable upgrade plan that a non-LLM agent can execute in one round-trip, with majors / conflicts / explicit overrides separated out for human or LLM judgement

This project works with any JVM build tool that relies on Maven Central. The inputs are standard Maven coordinates, so the same data applies to Maven, Gradle, SBT, and Mill projects.

Why It Matters

This project is most useful when a plain package search is not enough.

  • it gives MCP clients structured dependency data instead of making them scrape web pages
  • it keeps upgrade checks grounded in current Maven Central metadata
  • it adds stability, age, CVE, and license signals in one place
  • it works well alongside agent workflows that need dependency facts before they edit code or open PRs

Emerging Use Case

One of the more interesting uses of this project is agent-driven dependency maintenance.

The core server does not open PRs by itself, but it gives an agent enough current dependency context to make safer update decisions than a blind version-bump workflow. The recommend_pom_upgrades tool was built for exactly that shape: a non-LLM agent hands it a raw pom.xml, applies every deterministic_actions[] entry at its identified version field or property, and surfaces needs_attention[] for a human or LLM to review separately. No per-coordinate fan-out and no recommendations the agent can't actually apply — transitively-managed BOMs and managed declarations without a root-owned edit site are filtered out.

This repository's own weekly self-update flow is the clearest example: GitHub Actions orchestrates the run, one MCP call returns the action list, the agent applies the diffs, and the result is a reviewable PR. Major-upgrade review is the only path that asks Copilot for judgement and migration framing.

That is also why the dogfooding setup matters beyond this repository. It demonstrates, in a small and concrete way, the same shape that broader GitHub Agentic Workflows can build on: a workflow orchestrator, structured tool output for deterministic edits, an AI worker only where judgement is useful, and a human-reviewed change at the end.

Quick Start

Claude Desktop

Add this to your Claude Desktop config:

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

VS Code + GitHub Copilot

Create .vscode/mcp.json in your workspace:

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

Image Variants

Tag Transport Context7 Best For
:latest STDIO Yes Default desktop MCP usage
:latest-noc7 STDIO No Networks where Context7 is blocked or not wanted
:latest-http HTTP Yes Streamable HTTP clients and sidecar workflows

CONTEXT7_API_KEY is optional. Most setups can start without it. If your environment requires Context7 auth, or you want to avoid anonymous limits, pass it through Docker with -e CONTEXT7_API_KEY.

For fuller setup guidance, including JAR/native usage, Docker Compose, and environment notes, see docs/setup.md.

Core Tools

The server exposes 11 MCP tools.

Maven intelligence tools

Tool What It Does
get_latest_version Find the latest version with stability-aware selection
check_version_exists Verify a specific version and classify its stability
check_multiple_dependencies Bulk lookup for dependency coordinates
compare_dependency_versions Compare current versions against available upgrades
analyze_dependency_age Classify how old a dependency is
analyze_release_patterns Look at release cadence and maintenance signals
analyze_project_health Run a broader dependency health audit
analyze_pom_dependencies POM-aware: resolve effective versions from raw pom.xml, classify as EXPLICIT / MANAGED / EXPLICIT_OVERRIDE, surface multi-BOM conflicts
recommend_pom_upgrades POM-aware: returns deterministic explicit, BOM, and root dependency-management edits for an agent to apply, plus a needs_attention list of majors / conflicts / overrides for human or LLM review

Context7 documentation tools

Tool What It Does
resolve-library-id Find a documentation library identifier
query-docs Fetch docs by Context7 library ID

For parameters, examples, and tool-by-tool notes, see docs/tools.md.

POM-aware dependency analysis

Two tools take a whole POM (raw XML) rather than a single coordinate. Both walk the parent chain, apply <dependencyManagement>, resolve <scope>import</scope> BOMs against Maven Central, scope ${project.version} per-POM so an imported BOM's placeholders resolve to that BOM's version (not the importer's), and accept an optional sideloadedPoms bundle for monorepo siblings / unreleased parents.

  • analyze_pom_dependencies — returns each declared dep with effective version + classification (EXPLICIT / MANAGED / EXPLICIT_OVERRIDE) + managing BOM coordinate + any multi-BOM conflicts. Use when you want raw analysis ("what does my POM actually resolve to?").
  • recommend_pom_upgrades — builds on the analyzer and returns two lists: deterministic_actions (mechanical edits — explicit_bump for declared deps, bom_bump for user-controllable BOMs, managed_decl_bump for direct root dependency-management entries, and plugin_dep_bump for direct build/plugin dependencies) and needs_attention (majors, multi-BOM conflicts, and explicit overrides). Owned-declaration actions include edit location metadata; plugin actions also identify the owner plugin so a client can edit the correct block directly.

Upgrade recommendations are scoped to knobs the caller can actually edit in the input POM: the direct <parent>, root-level BOM imports, explicit dependencies, and direct non-import dependency-management declarations with a literal version or an exact root-owned property. Transitively-imported BOMs, inherited properties, and compound property expressions are silently skipped because they lack an unambiguous edit site in the input file.

Example

A common prompt in Copilot or Claude is:

Check all latest versions of the dependencies in my pom.xml and call out anything risky.

A good response from this server gives the client structured information such as:

  • current version vs latest version
  • whether the upgrade is major, minor, or patch
  • whether the newest release is stable
  • whether the dependency looks fresh, aging, or stale
  • whether there are known CVEs or license concerns worth noticing

That keeps the workflow grounded in live repository data instead of guesswork.

For broader questions like "which library should I choose?", the useful pattern is: let the model use Maven Tools MCP for current coordinates, version/stability signals, and upgrade context, then combine that with Context7 docs (available through the default image's exposed tools) and, when needed, client-side web search for ecosystem context that this server does not provide on its own.

For more prompt examples, see docs/examples.md. There is also a maven-tools skill in the separate agent-skills repository that gives agents general guidance for using Maven Tools MCP effectively across varied use cases, while the local prompt examples and dogfooding agent define more specific paths.

Dogfooding

This repository runs a weekly self-update workflow that uses a local Python agent against its own pom.xml and opens a reviewable PR for safe dependency updates. The agent hands the raw POM to recommend_pom_upgrades and applies the returned deterministic_actions[] directly — no per-coordinate fan-out, no XML parsing in Python. Manual major-review runs are the only mode that routes through the GitHub Copilot SDK.

That flow is documented in docs/dogfooding.md, including:

  • the GitHub Actions workflow
  • the agent subproject under agents/copilot-maven-tools-agent/
  • direct MCP minor/patch mode vs Copilot-backed major-review mode
  • required COPILOT_BOT_PAT setup for PR creation and major-review runs
  • manual trigger instructions

FAQ

  • Does this replace Renovate or Dependabot? For Maven Central-based JVM projects, it can. Maven Tools MCP is the dependency intelligence layer, and the replacement behavior comes from the agent workflow built on top of it. In this repository, the weekly self-update workflow already replaces routine blind update PRs for safe minor and patch upgrades through direct MCP calls, while leaving major upgrades for Copilot-assisted manual review.
  • Does it work offline? Not fully. Uncached queries need network access to Maven Central.
  • Does it work for Gradle or other JVM build tools? Yes, as long as the project depends on libraries that are resolved through Maven Central coordinates.

For a few more usage notes, see the FAQ section in docs/examples.md.

Acknowledgements

The effective POM resolver under com.arvindand.mcp.maven.pom follows the resolution shape of maxxq-org/maxxq-maven (MIT, Guy Chauliac), scoped here to declared-dep resolution. See NOTICE.

More Docs

Further Reading

Contributing

If you want to build or test locally, start with docs/setup.md and the helper scripts in build/.

Project history and release notes live in CHANGELOG.md.

License

This project is licensed under the MIT License. See LICENSE.

Author

Arvind Menon

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选