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.
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
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
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.
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.
- 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
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 |
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
}
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"
}
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
}
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
]
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
]
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
}
}
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"
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
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
Action: "What are the latest stable versions for Spring Boot, Spring Security, and Jackson?"
Result: Current tech stack recommendations with version compatibility
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
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 |
- 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.
- 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
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 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
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"
]
}
}
}
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
This server implements MCP Protocol 2024-11-05 with stdio transport, making it compatible with any MCP-compliant client.
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
- 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
- Official Website: modelcontextprotocol.io
- GitHub Repository: modelcontextprotocol/specification
- Protocol Documentation: MCP Specification
- Documentation: Spring AI MCP Reference
- GitHub: spring-projects/spring-ai
- Search API: search.maven.org
- REST API Guide: Using the REST API
This project is licensed under the MIT License - see the LICENSE file for details.
Arvind Menon
- GitHub: @arvindand
- Version: 0.1.4-SNAPSHOT