Maven Version Server
MCP server for Maven dependency version management using ONLY maven-metadata.xml from Maven Central (NO Solr search API).
Features
- 4 Tools for Maven dependency management
- Strict stability filtering - excludes SNAPSHOT, alpha, beta, RC, milestones, etc.
- Pure metadata approach - uses only maven-metadata.xml
- Fast and reliable - direct XML parsing, no search API dependencies
Tools
1. get_latest_stable_version
Get the latest stable version for a Maven dependency.
Input:
{
"dependency": "io.mockk:mockk"
}
Output: Plain text version string (e.g., 1.14.7)
2. get_all_versions
List all versions with optional filtering and limits.
Input:
{
"dependency": "com.google.guava:guava",
"stableOnly": true,
"limit": 10
}
Output: Newline-separated version list
3. check_version_exists
Verify if a specific version exists and check its stability.
Input:
{
"dependency": "org.springframework:spring-core",
"version": "6.2.8"
}
Output: JSON object with exists, isStable fields
4. compare_versions
Compare two versions and get upgrade recommendations.
Input:
{
"dependency": "org.springframework:spring-core",
"currentVersion": "5.3.20",
"targetVersion": "6.2.8"
}
Output: JSON object with upgrade type and recommendation
Stability Filter
Excludes versions containing (case-insensitive):
SNAPSHOT- Development snapshotsalpha/a- Alpha releasesbeta/b- Beta releasesRC- Release candidatesM+ digit - MilestonesCR- Candidate releasesEA- Early accesspreview- Preview releasesdev- Development versionsincubating- Apache incubator
Installation
Via npm (Recommended)
npm install -g maven-version-server
Or use with npx (no installation needed):
npx maven-version-server
Configure for Claude Code CLI
Add to ~/.claude/mcp_servers.json:
{
"mcpServers": {
"maven-version": {
"command": "npx",
"args": ["maven-version-server"]
}
}
}
Or if installed globally:
{
"mcpServers": {
"maven-version": {
"command": "maven-version-server"
}
}
}
Build from source
git clone https://github.com/krotim/maven-version-server.git
cd maven-version-server
npm install
npm run build
Usage Examples
Example 1: Get latest stable version
User: What's the latest stable version of MockK?
Claude: [Uses get_latest_stable_version with dependency="io.mockk:mockk"]
Result: 1.14.7
Example 2: Compare versions
User: Should I upgrade Spring Core from 5.3.20 to 6.2.8?
Claude: [Uses compare_versions]
Result: {
"currentVersion": "5.3.20",
"targetVersion": "6.2.8",
"upgradeType": "major",
"recommendation": "Caution: Major version upgrade may contain breaking changes. Review migration guide.",
"isCurrentStable": true,
"isTargetStable": true
}
Example 3: List recent versions
User: Show me the last 5 versions of Guava
Claude: [Uses get_all_versions with limit=5]
Result:
33.5.0-jre
33.4.0-jre
33.3.1-jre
33.3.0-jre
33.2.1-jre
Testing
Test with MCP Inspector
npm run inspector
Manual test
node build/index.js
Technical Details
- Language: TypeScript (strict mode)
- Data Source: https://repo1.maven.org/maven2/{groupPath}/{artifactId}/maven-metadata.xml
- Transport: STDIO (Claude Code CLI)
- Timeout: 10 seconds
- Dependencies: @modelcontextprotocol/sdk, axios, xml2js
License
MIT