Maven Tools MCP Server

Maven Tools MCP Server

JVM dependency intelligence for any build tool using Maven Central Repository. Includes Context7 integration for upgrade documentation and guidance.

10 Tools

Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

Use cases

About

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.

What is an MCP Server?

MCP Info

Image Building InfoDockerfile|https://github.com/arvindand/maven-tools-mcp/blob/main/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 ServerShort Description
analyze_dependency_ageSingle dependency.
analyze_project_healthBulk project view.
analyze_release_patternsSingle dependency.
check_multiple_dependenciesBulk.
check_version_existsSingle dependency + version.
compare_dependency_versionsBulk compare.
get_latest_versionSingle dependency.
get_library_docsFetches up-to-date documentation for a library.
get_version_timelineSingle dependency.
resolve_library_idResolves 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.

ParametersTypeDescription
dependencystringMaven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core'
maxAgeInDaysintegeroptionalOptional 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. Use for dependency health reports.

ParametersTypeDescription
dependenciesstringComma or newline separated list of Maven dependency coordinates in format 'groupId:artifactId' (NO versions). Example: 'org.springframework:spring-core,junit:junit'
maxAgeInDaysintegeroptionalOptional maximum acceptable age threshold in days for health scoring. Dependencies exceeding this age receive lower health scores. No age penalty if not specified

Tool: analyze_release_patterns

Single dependency. Analyzes historical releases to infer cadence, consistency, and likely next-release timeframe. Useful for maintenance and planning.

ParametersTypeDescription
dependencystringMaven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'com.fasterxml.jackson.core:jackson-core'
monthsToAnalyzeintegeroptionalNumber 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 stableOnly=true to filter to production-ready (stable) versions only. Use for audits of multiple dependencies.

ParametersTypeDescription
dependenciesstringComma or newline separated list of Maven dependency coordinates in format 'groupId:artifactId' (NO versions). Example: 'org.springframework:spring-core,junit:junit'
stableOnlybooleanoptionalWhen true, filters results to show only stable (production-ready) versions. When false, includes all version types (default: false)

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?'

ParametersTypeDescription
dependencystringMaven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core'
versionstringSpecific 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 onlyStableTargets=true to restrict upgrade recommendations to stable releases. Never suggests downgrades.

ParametersTypeDescription
currentDependenciesstringComma 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'
onlyStableTargetsbooleanoptionalWhen true, only suggests upgrades to stable versions for production safety. When false, suggests upgrades to latest available version of any type (default: false)

Tool: get_latest_version

Single dependency. Returns newest versions by type (stable/rc/beta/alpha/milestone). Set preferStable=true to prioritize stable as primary while still including other types. Use when asked: 'what's the latest version of X?' Works with all JVM build tools.

ParametersTypeDescription
dependencystringMaven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.springframework:spring-core'
preferStablebooleanoptionalWhen true, prioritizes stable version in response while showing all types. When false, shows latest version of any type first (default: false)

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.

ParametersTypeDescription
context7CompatibleLibraryIDstringExact 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'.
tokensnumberoptionalMaximum number of tokens of documentation to retrieve (default: 5000). Higher values provide more context but consume more tokens.
topicstringoptionalTopic 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.

ParametersTypeDescription
dependencystringMaven dependency coordinate in format 'groupId:artifactId' (NO version). Example: 'org.junit.jupiter:junit-jupiter'
versionCountintegeroptionalNumber 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:

  1. Analyze the query to understand what library/package the user is looking for
  2. 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.

ParametersTypeDescription
libraryNamestringLibrary 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"
      ]
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers