Maven Tools MCP Server MCP Server
JVM dependency intelligence for any build tool using Maven Central Repository. Includes Context7 integration for upgrade documentation and guidance.
MCP Info
| Attribute | Details |
|---|---|
| Docker Image | arvindand/maven-tools-mcp:latest |
| Author | arvindand |
| Repository | https://github.com/arvindand/maven-tools-mcp |
Image Building Info
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/arvindand/maven-tools-mcp/blob/d419a7bfeb19f3515838a64f9a695fe38291e0ec/Dockerfile |
| Docker Image built by | arvindand |
| Docker Scout Health Score | Not available |
| Verify Signature | Not available |
| Licence | MIT License |
Available Tools (10)
| Tools provided by this Server | Short Description |
|---|---|
analyze_dependency_age |
Single dependency. |
analyze_project_health |
Bulk project view. |
analyze_release_patterns |
Single dependency. |
check_multiple_dependencies |
Bulk. |
check_version_exists |
Single dependency + version. |
compare_dependency_versions |
Bulk compare. |
get_latest_version |
Single dependency. |
get_library_docs |
Fetches up-to-date documentation for a library. |
get_version_timeline |
Single dependency. |
resolve_library_id |
Resolves a package/product name to a Context7-compatible library ID and returns a list of matching libraries. |
Tools Details
Tool: analyze_dependency_age
Single dependency. Returns days since last release and freshness (fresh/current/aging/stale), with actionable insights. Use when asked about 'how old' or 'last release' of a library.
| Parameters | Type | Description |
|---|---|---|
dependency |
string |
Maven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core' |
maxAgeInDays |
integer optional |
Optional maximum acceptable age threshold in days. If specified and dependency exceeds this age, additional recommendations are provided. No limit if not specified |
Tool: analyze_project_health
Bulk project view. Summarizes health across many dependencies using age and maintenance patterns, with concise recommendations. Set stabilityFilter to ALL (default), STABLE_ONLY, or PREFER_STABLE for upgrade recommendations.
| Parameters | Type | Description |
|---|---|---|
dependencies |
string |
Comma or newline separated list of Maven dependency coordinates in format 'groupId:artifactId' (NO versions). Example: 'org.springframework:spring-core,junit:junit' |
maxAgeInDays |
integer optional |
Optional maximum acceptable age threshold in days for health scoring. Dependencies exceeding this age receive lower health scores. No age penalty if not specified |
stabilityFilter |
string optional |
Stability filter: ALL (any version), STABLE_ONLY (production-ready only), or PREFER_STABLE (prioritize stable). Default: PREFER_STABLE |
Tool: analyze_release_patterns
Single dependency. Analyzes historical releases to infer cadence, consistency, and likely next-release timeframe. Useful for maintenance and planning.
| Parameters | Type | Description |
|---|---|---|
dependency |
string |
Maven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'com.fasterxml.jackson.core:jackson-core' |
monthsToAnalyze |
integer optional |
Number of months of historical release data to analyze for patterns and predictions. Default is 24 months if not specified |
Tool: check_multiple_dependencies
Bulk. For many coordinates (no versions), returns per-dependency latest versions by type. Set stabilityFilter to ALL (default), STABLE_ONLY, or PREFER_STABLE. Use for audits of multiple dependencies.
| Parameters | Type | Description |
|---|---|---|
dependencies |
string |
Comma or newline separated list of Maven dependency coordinates in format 'groupId:artifactId' (NO versions). Example: 'org.springframework:spring-core,junit:junit' |
stabilityFilter |
string optional |
Stability filter: ALL (all versions), STABLE_ONLY (production-ready only), or PREFER_STABLE (prioritize stable). Default: ALL |
Tool: check_version_exists
Single dependency + version. Validates existence on Maven Central and classifies its stability (stable/rc/beta/alpha/milestone/snapshot). Use when asked: 'does X:Y exist?' or 'is version V stable?'
| Parameters | Type | Description |
|---|---|---|
dependency |
string |
Maven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core' |
version |
string |
Specific version string to check for existence. Example: '6.1.4' or '2.7.18-SNAPSHOT' |
Tool: compare_dependency_versions
Bulk compare. Input includes versions. Suggests upgrades and classifies update type (major/minor/patch). Set stabilityFilter to ALL (default), STABLE_ONLY, or PREFER_STABLE. Never suggests downgrades.
| Parameters | Type | Description |
|---|---|---|
currentDependencies |
string |
Comma or newline separated list of dependency coordinates WITH versions in format 'groupId:artifactId:version'. Example: 'org.springframework:spring-core:6.0.0,junit:junit:4.12' |
stabilityFilter |
string optional |
Stability filter: ALL (any version), STABLE_ONLY (production-ready only), or PREFER_STABLE (prioritize stable). Default: ALL |
Tool: get_latest_version
Single dependency. Returns newest versions by type (stable/rc/beta/alpha/milestone). Set stabilityFilter to ALL (default), STABLE_ONLY, or PREFER_STABLE. Use when asked: 'what's the latest version of X?' Works with all JVM build tools.
| Parameters | Type | Description |
|---|---|---|
dependency |
string |
Maven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core' |
stabilityFilter |
string optional |
Stability filter: ALL (all versions), STABLE_ONLY (production-ready only), or PREFER_STABLE (prioritize stable, show others too). Default: PREFER_STABLE |
Tool: get_library_docs
Fetches up-to-date documentation for a library. You must call 'resolve-library-id' first to obtain the exact Context7-compatible library ID required to use this tool, UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.
| Parameters | Type | Description |
|---|---|---|
context7CompatibleLibraryID |
string |
Exact Context7-compatible library ID (e.g., '/mongodb/docs', '/vercel/next.js', '/supabase/supabase', '/vercel/next.js/v14.3.0-canary.87') retrieved from 'resolve-library-id' or directly from user query in the format '/org/project' or '/org/project/version'. |
tokens |
number optional |
Maximum number of tokens of documentation to retrieve (default: 5000). Higher values provide more context but consume more tokens. |
topic |
string optional |
Topic to focus documentation on (e.g., 'hooks', 'routing'). |
Tool: get_version_timeline
Single dependency. Returns a timeline of recent versions with dates, gaps, and stability patterns. Use for quick release history snapshots.
| Parameters | Type | Description |
|---|---|---|
dependency |
string |
Maven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.junit.jupiter:junit-jupiter' |
versionCount |
integer optional |
Number of recent versions to include in timeline analysis. Default is 20 versions if not specified. Typical range: 10-50 |
Tool: resolve_library_id
Resolves a package/product name to a Context7-compatible library ID and returns a list of matching libraries.
You MUST call this function before 'get-library-docs' to obtain a valid Context7-compatible library ID UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.
Selection Process:
- Analyze the query to understand what library/package the user is looking for
- Return the most relevant match based on:
- Name similarity to the query (exact matches prioritized)
- Description relevance to the query's intent
- Documentation coverage (prioritize libraries with higher Code Snippet counts)
- Trust score (consider libraries with scores of 7-10 more authoritative)
Response Format:
- Return the selected library ID in a clearly marked section
- Provide a brief explanation for why this library was chosen
- If multiple good matches exist, acknowledge this but proceed with the most relevant one
- If no good matches exist, clearly state this and suggest query refinements
For ambiguous queries, request clarification before proceeding with a best-guess match.
| Parameters | Type | Description |
|---|---|---|
libraryName |
string |
Library name to search for and retrieve a Context7-compatible library ID. |
Use this MCP Server
{
"mcpServers": {
"maven-tools-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"arvindand/maven-tools-mcp:latest"
]
}
}
}