arvindand/maven-tools-mcp
If you are the rightful owner of maven-tools-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Maven Tools MCP Server is a Model Context Protocol server designed to enhance AI assistants by providing real-time Maven Central intelligence, ensuring accurate and up-to-date Maven dependency information.
maven_get_latest
Retrieves the latest available version of a Maven dependency for each version type.
maven_check_exists
Checks if a specific version of a Maven dependency exists.
maven_get_stable
Retrieves the latest stable version of a Maven dependency.
maven_bulk_check_latest
Checks latest versions for multiple dependencies in a single call.
maven_compare_versions
Compares current dependencies to the latest available and provides update recommendations.
Maven Tools MCP Server
A Model Context Protocol (MCP) server that supercharges AI assistants with real-time Maven Central intelligence. Get instant, accurate dependency information that's faster and more reliable than web searches.
🎯 Why This Matters
Problem: AI assistants get outdated or inaccurate Maven dependency info from web searches Solution: Direct Maven Central API access with intelligent caching and bulk operations
⚡ Quick Demo
Ask your AI assistant:
- "Check all dependencies in this pom.xml for latest versions" (paste your pom.xml)
- "What's the latest Spring Boot version and all available types?"
- "Which dependencies in my project need updates?" (paste pom.xml)
- "Are there any beta or RC versions I should consider?"
vs Web Search:
- ✅ 100ms response (cached) vs 3-5 seconds
- ✅ Bulk operations (20 deps at once) vs individual lookups
- ✅ Structured JSON vs parsing web content
- ✅ Always current vs outdated search results
Setup for Claude Desktop
Step 1: Locate your Claude Desktop configuration file
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Add this configuration (using pre-built Docker image):
{
"mcpServers": {
"maven-tools": {
"command": "docker",
"args": [
"run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker",
"arvindand/maven-tools-mcp:latest"
]
}
}
}
Step 3: Restart Claude Desktop
Prerequisites: Docker installed and running
Note: The Docker image supports both AMD64 (Intel/AMD) and ARM64 (Apple Silicon) architectures. Docker automatically selects the correct version for your platform.
Setup for VS Code with GitHub Copilot
Option 1: Workspace Configuration - Create .vscode/mcp.json
:
{
"servers": {
"maven-tools": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker", "arvindand/maven-tools-mcp:latest"]
}
}
}
Option 2: User Settings - Add to your VS Code settings:
{
"mcp": {
"servers": {
"maven-tools": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SPRING_PROFILES_ACTIVE=docker", "arvindand/maven-tools-mcp:latest"]
}
}
}
}
Usage: Open Chat view (Ctrl+Alt+I), select Agent mode, then use the Tools button to enable Maven tools.
What it does
- Get latest or stable versions of Maven dependencies
- Check if specific versions exist
- Bulk version checking for multiple dependencies
- Compare versions and get update recommendations
Available Tools
Tool | Purpose | Example |
---|---|---|
maven_get_latest | Get newest version by type (stable, rc, beta, alpha, milestone) | Latest Spring Boot with all release types |
maven_get_stable | Get latest stable only (production-ready) | Production-ready Jackson version |
maven_check_exists | Verify if a specific version exists, with type | Does Spring Boot 3.5.0 exist? |
maven_bulk_check_latest | Check multiple dependencies for all version types | Update status for entire project |
maven_bulk_check_stable | Stable versions for many dependencies | Production update candidates |
maven_compare_versions | Compare current vs latest, get update recommendations | Compare current vs available versions |
maven_get_latest
Retrieves the latest available version of a Maven dependency from Maven Central for each version type (stable, rc, beta, alpha, milestone).
Parameters:
dependency
(string, required): Maven coordinate in formatgroupId:artifactId
(NO version)
Example:
{
"dependency": "org.springframework:spring-core"
}
Response:
{
"dependency": "org.springframework:spring-core",
"latest_stable": { "version": "6.2.7", "type": "stable" },
"latest_rc": { "version": "7.0.0-RC1", "type": "rc" },
"latest_beta": { "version": "7.0.0-beta1", "type": "beta" },
"latest_alpha": { "version": "7.0.0-alpha1", "type": "alpha" },
"latest_milestone": { "version": "7.0.0-M5", "type": "milestone" },
"total_versions": 100
}
maven_check_exists
Checks if a specific version of a Maven dependency exists in Maven Central, with version type information.
Parameters:
dependency
(string, required): Maven coordinate in formatgroupId:artifactId
(NO version)version
(string, required): Version to check
Example:
{
"dependency": "org.springframework:spring-core",
"version": "6.0.0"
}
Response:
{
"exists": true,
"version": "6.0.0",
"type": "stable"
}
maven_get_stable
Retrieves the latest stable version of a Maven dependency (excludes RCs, alphas, betas, milestones).
Parameters:
dependency
(string, required): Maven coordinate in formatgroupId:artifactId
(NO version)
Example:
{
"dependency": "com.fasterxml.jackson.core:jackson-core"
}
Response:
{
"version": "2.19.0",
"type": "stable",
"total_versions": 100,
"stable_versions": 82
}
maven_bulk_check_latest
Checks latest versions for multiple dependencies in a single call, returning all version types (stable, rc, beta, alpha, milestone).
Parameters:
dependencies
(string, required): Comma- or newline-separated list of Maven coordinates (NO versions)
Example:
{
"dependencies": "org.springframework:spring-core,com.fasterxml.jackson.core:jackson-core\njunit:junit"
}
Response (array):
[
{
"dependency": "org.springframework:spring-core",
"primary_version": "6.2.7",
"primary_type": "stable",
"total_versions": 100,
"stable_versions": 82,
"latest_stable": { "version": "6.2.7", "type": "stable" },
"latest_rc": { "version": "7.0.0-RC1", "type": "rc" },
"latest_beta": null,
"latest_alpha": null,
"latest_milestone": { "version": "7.0.0-M5", "type": "milestone" }
},
// ...more results
]
maven_bulk_check_stable
Checks latest stable versions for multiple dependencies (excludes pre-release versions).
Parameters:
dependencies
(string, required): Comma- or newline-separated list of Maven coordinates (NO versions)
Example:
{
"dependencies": "org.springframework:spring-boot-starter,com.fasterxml.jackson.core:jackson-core"
}
Response (array):
[
{
"dependency": "org.springframework:spring-boot-starter",
"primary_version": "3.5.3",
"primary_type": "stable",
"total_versions": 50,
"stable_versions": 40
},
// ...more results
]
maven_compare_versions
Compares current dependencies (with versions) to the latest available, and provides update recommendations (major, minor, patch, none).
Parameters:
currentDependencies
(string, required): Comma- or newline-separated list of Maven coordinates with versions (groupId:artifactId:version
)
Example:
{
"currentDependencies": "org.springframework:spring-core:6.0.0,junit:junit:4.12"
}
Response:
{
"comparison_date": "2025-06-07T22:38:47Z",
"dependencies": [
{
"dependency": "org.springframework:spring-core:6.0.0",
"current_version": "6.0.0",
"latest_version": "7.0.0-M5",
"latest_type": "milestone",
"update_type": "major",
"update_available": true,
"status": "success",
"error": null
}
],
"update_summary": {
"major_updates": 1,
"minor_updates": 0,
"patch_updates": 0,
"no_updates": 0
}
}
Usage Examples
Getting Started Examples
Simple Questions:
- "What's the latest Spring Boot version?"
- "Show me all version types for Jackson"
- "Is Spring Boot 3.5.0 available?"
Paste Your pom.xml:
- "Check all dependencies in this pom.xml for latest versions"
- "Which dependencies need updates?" (paste pom.xml)
- "Are there any pre-release versions I should consider?"
Follow-up Intelligence:
- "What type of updates would these be - major, minor, or patch?"
- "Should I use the RC version of Spring Boot?"
- "Compare my current versions with what's available"
🚀 Real-World Use Cases
Project Dependency Audit
Action: Paste your pom.xml and ask: "Which dependencies are outdated and what updates are available?"
Result: Complete project analysis in 2 seconds vs 10+ minutes manually
Security Response
Action: Paste affected pom.xml: "We got a security alert - show me latest versions for all dependencies"
Result: Instant security patch identification with comprehensive analysis
New Project Setup
Action: "What are the latest stable versions for Spring Boot, Spring Security, and Jackson?"
Result: Current tech stack recommendations with version compatibility
Migration Planning
Action: Paste current pom.xml: "I'm upgrading to Spring Boot 3.x - what's the migration path?"
Result: Step-by-step upgrade analysis with compatibility matrix
🆚 Why Not Just Web Search?
Scenario | Web Search | Maven Tools MCP |
---|---|---|
Single dependency lookup | 3-5 seconds | <100ms (cached) |
20 dependencies | 60+ seconds | <500ms |
Data accuracy | Variable/outdated | 100% current |
Bulk operations | Manual, error-prone | Native support |
Version classification | Manual parsing | Automatic (stable/RC/beta) |
Semantic analysis | Not available | Major/minor/patch detection |
Features
- Version lookup (latest, stable, or specific versions)
- Version type classification (stable, RC, beta, alpha, milestone)
- Bulk operations for multiple dependencies
- Version comparison tools
- Caching for better performance
- Works with MCP-compatible AI assistants
Note: Snapshot versions are not supported. This is because the Maven Central API does not index or provide access to snapshot artifacts. Only released versions (stable, rc, beta, alpha, milestone) are available.
Performance Notes
- Cache effectiveness: ~90% of repeated requests served from cache
- Recommended batch sizes: 10-20 dependencies for bulk operations
- First requests: Build cache (normal), subsequent requests much faster
- Cache duration: 24 hours
🤔 Frequently Asked Questions
Q: How is this different from Dependabot/Renovate?
A: Those tools create automated PRs. This gives you instant, interactive dependency intelligence through your AI assistant for decision-making and planning.
Q: Why not just search Maven Central directly?
A: This provides structured, cached responses optimized for AI consumption with intelligent version classification and bulk operations.
Q: Can this replace my IDE's dependency management?
A: No, it complements your IDE by providing instant dependency intelligence during conversations with AI assistants.
Q: Does it work with private Maven repositories?
A: Currently only Maven Central.
Q: What about Gradle dependencies?
A: Maven Central hosts both Maven and Gradle dependencies, so it works for Gradle projects too (using Maven coordinates).
Alternative Setup Methods
Using Docker Compose
Alternative Claude Desktop configuration (if you prefer compose):
Download docker-compose.yml
and configure:
{
"mcpServers": {
"maven-tools": {
"command": "docker",
"args": [
"compose", "-f", "/absolute/path/to/docker-compose.yml",
"run", "--rm", "maven-tools-mcp"
]
}
}
}
For development/testing only:
docker compose up -d # Runs server in background for testing
Build from Source (for contributors)
Prerequisites:
- Java 24
- Maven 3.9+
# Clone the repository
git clone https://github.com/arvindand/maven-tools-mcp.git
cd maven-tools-mcp
# Quick build (CI-friendly - unit tests only)
./mvnw clean package -Pci
# Full build with all tests (requires network access)
./mvnw clean package -Pfull
# Run the JAR
java -jar target/maven-tools-mcp-0.1.4-SNAPSHOT.jar
Claude Desktop configuration for JAR:
{
"mcpServers": {
"maven-tools": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/maven-tools-mcp-0.1.4-SNAPSHOT.jar"
]
}
}
}
Build Scripts
For easier builds, use the provided scripts in the build/
folder:
# Linux/macOS - Complete build helper
./build/build.sh
# Windows - Complete build helper
.\build\build-windows.cmd
Enterprise & Custom Clients
This server implements MCP Protocol 2024-11-05 with stdio transport, making it compatible with any MCP-compliant client.
Configuration
The server can be configured via application.yaml
:
# Cache configuration
spring:
cache:
type: caffeine
caffeine:
spec: maximumSize=2000,expireAfterWrite=3600s
# Maven Central API settings
maven:
central:
base-url: https://search.maven.org/solrsearch/select
timeout: 10s
max-results: 100
# Logging (minimal for MCP stdio transport)
logging:
level:
root: ERROR
Technical Details
- Framework: Spring Boot 3.5.0 with Spring AI MCP
- MCP Protocol: 2024-11-05
- Java Version: 24
- Transport: stdio
- HTTP Client: Spring Web RestClient
- Cache: Caffeine (24-hour TTL, 2000 entries max)
- API: Maven Central Search API
References & Resources
Model Context Protocol (MCP)
- Official Website: modelcontextprotocol.io
- GitHub Repository: modelcontextprotocol/specification
- Protocol Documentation: MCP Specification
Spring AI MCP
- Documentation: Spring AI MCP Reference
- GitHub: spring-projects/spring-ai
Maven Central API
- Search API: search.maven.org
- REST API Guide: Using the REST API
License
This project is licensed under the MIT License - see the file for details.
Author
Arvind Menon
- GitHub: @arvindand
- Version: 0.1.4-SNAPSHOT