{
  "markdown": "# Maven Tools MCP Server\n\n[![Java](https://img.shields.io/badge/Java-25-orange.svg)](https://openjdk.java.net/)\n[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.1.1-green.svg)](https://spring.io/projects/spring-boot)\n[![Spring AI](https://img.shields.io/badge/Spring%20AI-2.0.1-green.svg)](https://spring.io/projects/spring-ai)\n[![MCP Protocol](https://img.shields.io/badge/MCP-2025--11--25-blue.svg)](https://modelcontextprotocol.io/)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/arvindand/maven-tools-mcp)](https://github.com/arvindand/maven-tools-mcp/releases)\n[![Docker](https://img.shields.io/badge/Docker-Multi--Arch-blue.svg)](https://hub.docker.com/r/arvindand/maven-tools-mcp)\n[![Docker Pulls](https://img.shields.io/docker/pulls/arvindand/maven-tools-mcp)](https://hub.docker.com/r/arvindand/maven-tools-mcp)\n[![GitHub stars](https://img.shields.io/github/stars/arvindand/maven-tools-mcp?style=social)](https://github.com/arvindand/maven-tools-mcp/stargazers)\n\nMaven Tools MCP Server gives MCP-capable clients a practical way to inspect JVM dependencies using live Maven Central data.\n\nIt 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.\n\n![Demo](assets/demo.gif)\n\n## What It Helps With\n\n- **Version checks:** find stable releases and compare upgrades with major/minor/patch context.\n- **Dependency audits:** inspect age, release cadence, known vulnerabilities, and license data.\n- **POM analysis:** resolve declared dependency versions through parents and BOMs without building the project.\n- **Upgrade planning:** get structured edits an agent can validate and apply, with major upgrades, conflicts, and overrides flagged for review.\n- **Documentation:** look up library docs through the optional Context7 tools.\n\nCoordinate-based tools work with Maven, Gradle, SBT, and Mill projects. The POM analysis and upgrade-planning tools take Maven `pom.xml` files.\n\n## Quick Start\n\n**Prerequisite:** Docker installed and running. No local Java installation is required. For a Docker-free setup, see [building and running the JAR](docs/setup.md#build-from-source).\n\n### Claude Desktop\n\nAdd the `maven-tools` entry to your Claude Desktop config (see [config file locations](docs/setup.md#claude-desktop)):\n\n```json\n{\n  \"mcpServers\": {\n    \"maven-tools\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"arvindand/maven-tools-mcp:latest\"]\n    }\n  }\n}\n```\n\n### VS Code + GitHub Copilot\n\nAdd the following server to `.vscode/mcp.json` in your workspace:\n\n```json\n{\n  \"servers\": {\n    \"maven-tools\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"arvindand/maven-tools-mcp:latest\"]\n    }\n  }\n}\n```\n\n### Image Variants\n\n| Tag | Transport | Context7 | Best For |\n|-----|-----------|----------|----------|\n| `:latest` | STDIO | Yes | Default desktop MCP usage |\n| `:latest-noc7` | STDIO | No | Networks where Context7 is blocked or not wanted |\n| `:latest-http` | HTTP | Yes | Streamable HTTP clients and sidecar workflows |\n\n`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`.\n\nFor fuller setup guidance, including JAR and native-container usage, Docker Compose, and environment notes, see [`docs/setup.md`](docs/setup.md).\n\n## Available Tools\n\nThe default image exposes 11 MCP tools; `-noc7` exposes the 9 core tools.\n\n### Maven intelligence tools\n\n| Tool | What It Does |\n|------|---------------|\n| `get_latest_version` | Find the latest version with stability-aware selection |\n| `check_version_exists` | Verify a specific version and classify its stability |\n| `check_multiple_dependencies` | Bulk lookup for dependency coordinates |\n| `compare_dependency_versions` | Compare current versions against available upgrades |\n| `analyze_dependency_age` | Classify how old a dependency is |\n| `analyze_release_patterns` | Look at release cadence and maintenance signals |\n| `analyze_project_health` | Run a broader dependency health audit |\n| `analyze_pom_dependencies` | Resolve declared dependency versions, identify their source, and surface BOM conflicts |\n| `recommend_pom_upgrades` | Produce actionable POM upgrade recommendations and flag changes needing review |\n\n### Context7 documentation tools\n\n| Tool | What It Does |\n|------|---------------|\n| `resolve_library_id` | Find a documentation library identifier |\n| `query_docs` | Fetch docs by Context7 library ID |\n\nFor parameters, examples, and tool-by-tool notes, see [`docs/tools.md`](docs/tools.md).\n\n### POM-aware dependency analysis\n\nBoth POM tools use **Apache Maven Model Builder** for parent inheritance, properties, and dependency management, including imported BOMs. They accept raw POM XML and an optional `sideloadedPoms` bundle for unreleased parents or sibling modules.\n\n- **`analyze_pom_dependencies`** returns effective versions, classifies declarations as `EXPLICIT`, `MANAGED`, or `EXPLICIT_OVERRIDE`, and identifies managing BOMs and conflicts.\n- **`recommend_pom_upgrades`** returns `deterministicActions` for mechanical edits and `needsAttention` for major upgrades, BOM conflicts, and explicit overrides. Actions identify the version field or property to edit in the input POM.\n\nRecommendations cover editable parent/BOM versions, explicit dependencies, root dependency-management entries, and direct build/plugin dependencies. Declarations without an unambiguous edit location in the input POM are skipped. The server returns recommendations; the client or agent validates and applies them.\n\nAnalysis covers declared dependencies, not the full transitive dependency graph. Profile activation is limited to active-by-default profiles. See [POM analysis details and limits](docs/tools.md#pom-aware-analysis).\n\n## Example\n\nA common prompt in Copilot or Claude is:\n\n> Check all latest versions of the dependencies in my `pom.xml` and call out anything risky.\n\nThe client can combine tool results to report:\n\n- current version vs latest version\n- whether the upgrade is major, minor, or patch\n- whether the newest release is stable\n- whether the dependency looks fresh, aging, or stale\n- whether there are known CVEs or license concerns worth noticing\n\nFor broader questions like \"which library should I choose?\", combine Maven metadata with Context7 documentation and client-side web search for ecosystem context.\n\nSee [more prompt examples](docs/examples.md) or the [`maven-tools` agent skill](https://github.com/arvindand/agent-skills/tree/main/skills/maven-tools) for guidance on choosing and combining tools.\n\n## Dogfooding\n\nThis repository uses its own tools in a weekly dependency-update workflow. A Python agent sends the POM to `recommend_pom_upgrades`, validates and applies minor/patch actions, and opens a PR for review. Its XML editor checks current versions and preserves formatting. Manual major-upgrade reviews use the GitHub Copilot SDK; routine updates do not require an LLM.\n\nSee [the dogfooding guide](docs/dogfooding.md) for the agent, GitHub Actions workflow, credentials, and manual triggers.\n\n## FAQ\n\n- **Does this replace Renovate or Dependabot?** The server provides dependency analysis and upgrade recommendations. File edits, testing, scheduling, and PR creation require a separate agent or workflow. The [included agent](docs/dogfooding.md) demonstrates this for Maven POM updates.\n- **Does it work offline?** Not fully. Uncached metadata queries need access to Maven Central or your configured repository. Vulnerability checks and Context7 documentation also use external services.\n- **Does it parse Gradle, SBT, or Mill build files?** No. Use their dependencies' Maven coordinates with the coordinate-based tools; whole-file analysis accepts Maven POM XML.\n\nFor a few more usage notes, see the FAQ section in [`docs/examples.md`](docs/examples.md#faq).\n\n## Acknowledgements\n\nThe effective POM resolver under `com.arvindand.mcp.maven.pom` follows the resolution\nshape of [maxxq-org/maxxq-maven](https://github.com/maxxq-org/maxxq-maven) (MIT,\nGuy Chauliac), scoped here to declared-dep resolution. See [`NOTICE`](NOTICE).\n\n## More Docs\n\n- [`docs/setup.md`](docs/setup.md) - installation, client configuration, image variants, build-from-source options\n- [`docs/tools.md`](docs/tools.md) - full tool catalog, parameters, and response behavior\n- [`docs/examples.md`](docs/examples.md) - practical prompts, advanced use cases, reusable commands, and FAQ notes\n- [`docs/dogfooding.md`](docs/dogfooding.md) - weekly self-update workflow and agent integration\n- [`docs/troubleshooting.md`](docs/troubleshooting.md) - common environment issues and fixes\n- [`docs/architecture.md`](docs/architecture.md) - design principles, transport/runtime options, and technical notes\n- [`CORPORATE-CERTIFICATES.md`](CORPORATE-CERTIFICATES.md) - custom CA certificate support for locked-down networks\n\n## Further Reading\n\n- [How I Connected Claude to Maven Central (and Why You Should Too)](https://dev.to/arvindand/how-i-connected-claude-to-maven-central-and-why-you-should-too-2clo)\n- [Guided Delegation: Adding Context7 Documentation to My Maven Tools MCP Server](https://dev.to/arvindand/guided-delegation-adding-context7-documentation-to-my-maven-tools-mcp-server-572l)\n\n## Contributing\n\nIf you want to build or test locally, start with [`docs/setup.md`](docs/setup.md#build-from-source) and the helper scripts in [`build/`](build/).\n\nProject history and release notes live in [`CHANGELOG.md`](CHANGELOG.md).\n\n## License\n\nThis project is licensed under the MIT License. See [`LICENSE`](LICENSE).\n\n## Author\n\nArvind Menon\n\n- GitHub: [@arvindand](https://github.com/arvindand)\n",
  "bytes": 9967,
  "sha": "2a7e9fed69658da2ca53d49d318c40d984676e0f69d6b4f8bcfa3aefc894372c",
  "repo_slug": "arvindand/maven-tools-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_arvindand_maven_tools_mcp_8986d08c/readme"
}