agentleFS
arvindandarvindand/agent-skills/skills/maven-tools/SKILL.md

maven-tools

Skill17 starsChanged 12 days agoMITView on GitHub

JVM dependency intelligence via Maven Tools MCP server. Use when the user asks about Maven or Gradle dependencies, safe upgrades, CVEs, license risks, release history, or project dependency health. Use when reviewing `pom.xml`, `build.gradle`, `build.gradle.kts`, or Maven coordinates. Use when the user says 'check my dependencies', 'should I upgrade X', 'what can I safely bump', or 'is this version safe'. Use even when the user just pastes a `groupId:artifactId` coordinate without a verb.

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. About 0 are common, 13 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill to ground JVM dependency decisions in live Maven Central data.

    line 11
  2. Distinctive:

    Use Maven Tools MCP for version, security, license, freshness, and release-pattern facts from Maven Central.

    line 26
  3. Distinctive:

    Do the reasoning in-model: recommend next steps, call out risk, and separate safe-now actions from manual-review items.

    line 28
  4. Distinctive:

    Do not use Maven metadata alone to decide library popularity, framework fit, migration effort, or performance tradeoffs.

    line 31
  5. Very specific:

    Default to analyze_project_health when the user says "check my dependencies" or pastes a project dependency set.

    line 49
  6. Very specific:

    Use check_multiple_dependencies for candidate sets without current versions.

    line 53
  7. Very specific:

    When the user hands you a raw pom.xml and wants to know what to upgrade ("what can I safely bump?", scheduled maintenance, dependency-bot …

    line 67
  8. Very specific:

    When compare_dependency_versions returns same_major_stable_fallback:

    line 93
  9. Distinctive:

    treat the top-level major upgrade as the long-term path

    line 95
  10. Distinctive:

    treat the fallback as the safest immediate upgrade target

    line 96
  11. Distinctive:

    If the user asks whether a dependency is safe:

    line 99
  12. Very specific:

    use compare_dependency_versions when remediation guidance matters

    line 101
  13. Very specific:

    use analyze_release_patterns when maintenance risk matters

    line 102
  14. Distinctive:

    When the answer needs migration guides, API details, or library usage patterns, add documentation context before giving a strong …

    line 107
  15. Distinctive:

    use Maven Tools MCP first for dependency facts

    line 111
  16. Distinctive:

    if raw Context7 tools are available in the current tool list, use them directly

    line 112
  17. Distinctive:

    if no documentation path is available, say dependency facts are available but deeper doc lookup is not

    line 115
  18. Distinctive:

    Use this especially for:

    line 117
  19. Distinctive:

    Only discuss installation when the tools are unavailable.

    line 137

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Maven Tools

Use this skill to ground JVM dependency decisions in live Maven Central data.

This is an execution skill. Use Maven Tools MCP first for dependency facts, then do the reasoning in-model. Assume Maven Tools MCP is already configured; only discuss setup if the tools are unavailable.

When to Use

Activate when the user asks about:

  • Java, Kotlin, Scala, or JVM dependencies
  • Maven, Gradle, pom.xml, build.gradle, or build.gradle.kts
  • latest versions, upgrades, CVEs, licenses, dependency age, or release history
  • whether a dependency is safe, current, stale, or worth upgrading

Core Boundary

Use Maven Tools MCP for version, security, license, freshness, and release-pattern facts from Maven Central.

  • Do the reasoning in-model: recommend next steps, call out risk, and separate safe-now actions from manual-review items.
  • Normalize dependency inputs to groupId:artifactId or groupId:artifactId:version as needed.
  • For recommendation questions, evaluate concrete candidates with Maven Tools first, then add documentation context before making a strong call.
  • Do not use Maven metadata alone to decide library popularity, framework fit, migration effort, or performance tradeoffs.

Tool Selection

Choose the narrowest tool that matches the request:

IntentToolDefault Parameters
latest version lookupget_latest_versionstabilityFilter: PREFER_STABLE
check exact versioncheck_version_existsnone
bulk candidate check (no current versions)check_multiple_dependenciesstabilityFilter: PREFER_STABLE
upgrade analysis (single coordinate, with current version)compare_dependency_versionsincludeSecurityScan: true, stabilityFilter: STABLE_ONLY
whole-POM upgrade plan (raw pom.xml)recommend_pom_upgradesmode: MINOR_PATCH
resolve effective POM versions (raw pom.xml)analyze_pom_dependenciesnone
age/freshnessanalyze_dependency_ageuse project-appropriate threshold
maintenance signal / release historyanalyze_release_patternsmonthsToAnalyze: 24
full project auditanalyze_project_healthincludeSecurityScan: true, includeLicenseScan: true, stabilityFilter: PREFER_STABLE

Default to analyze_project_health when the user says "check my dependencies" or pastes a project dependency set.

When the user provides raw pom.xml content, prefer the POM-aware tools: analyze_pom_dependencies resolves and classifies effective versions (EXPLICIT / MANAGED / EXPLICIT_OVERRIDE) and surfaces multi-BOM conflicts; recommend_pom_upgrades returns an actionable upgrade plan. Both walk the parent chain, apply <dependencyManagement>, and resolve <scope>import</scope> BOMs; pass sideloadedPoms for monorepo siblings or unreleased parents.

Use check_multiple_dependencies for candidate sets without current versions. Use compare_dependency_versions for single-coordinate upgrade decisions. Use analyze_project_health for broad audits, not every single dependency question.

Workflow

  1. Extract dependencies from user input or the build file
  2. Pick the narrowest tool that answers the request
  3. Report the result in decision-oriented language:
    • what is current
    • what changed
    • what is safe to do now
    • what needs manual review

Whole-POM upgrades and bot-like maintenance

When the user hands you a raw pom.xml and wants to know what to upgrade ("what can I safely bump?", scheduled maintenance, dependency-bot replacement), lead with recommend_pom_upgrades:

  • mode: MINOR_PATCH (default) keeps major upgrades out of the safe path
  • apply deterministicActions[] directly — these are mechanical <version> edits:
    • explicit_bump — declared dependencies
    • bom_bump — user-controllable BOMs
    • managed_decl_bump — direct, non-import <dependencyManagement> entries the input POM owns, including platform/master POMs with no normal <dependencies> usage (3.2.0+)
    • plugin_dep_bump — direct dependencies under build/plugins and build/pluginManagement, such as com.puppycrawl.tools:checkstyle inside maven-checkstyle-plugin (3.2.0+)
  • Validate the action against the current XML location and version before editing. Property edits must remain consistent across all references; stop for stale or ambiguous actions.
  • owned-declaration actions carry edit-location metadata (editTarget, propertyName, declaredIn) telling you whether to edit a literal <version> or the backing property; plugin_dep_bump also names the owner plugin and build path, so apply the edit inside that plugin block rather than at the top level
  • route needsAttention[] (majors, multi-BOM conflicts, explicit overrides) to human or LLM review; each entry carries the Maven Central latest for context

One call returns everything mechanical plus the review queue — no per-coordinate fan-out for whole-POM flows. Reach for analyze_pom_dependencies first when the user wants the raw resolution ("what does my POM actually resolve to?") without recommendations.

Single-coordinate upgrade decisions

For a specific dependency ("should I upgrade X from 2.7 to 3.2?"), prefer compare_dependency_versions with:

  • includeSecurityScan: true
  • stabilityFilter: STABLE_ONLY

Then interpret the result conservatively:

  • patch and minor updates are the default safe path
  • major updates should be treated as manual review unless the user explicitly wants a breaking upgrade

When compare_dependency_versions returns same_major_stable_fallback:

  • treat the top-level major upgrade as the long-term path
  • treat the fallback as the safest immediate upgrade target
  • surface both, but recommend the fallback first for conservative maintenance workflows

If the user asks whether a dependency is safe:

  1. use compare_dependency_versions when remediation guidance matters
  2. use analyze_release_patterns when maintenance risk matters
  3. combine the two instead of relying only on "latest version" checks

Documentation Handoff

When the answer needs migration guides, API details, or library usage patterns, add documentation context before giving a strong recommendation.

Use this order:

  1. use Maven Tools MCP first for dependency facts
  2. if raw Context7 tools are available in the current tool list, use them directly
  3. otherwise, if standalone Context7 tools are available, use them
  4. otherwise, use WebSearch and WebFetch for official docs, release notes, and migration guides
  5. if no documentation path is available, say dependency facts are available but deeper doc lookup is not

Use this especially for:

  • major upgrades
  • migration planning
  • recommendation-style comparisons between candidate libraries

Less Helpful / Out of Scope

  • private artifact repositories that are not mirrored through Maven Central
  • non-JVM ecosystems that do not use Maven coordinates
  • trivial one-off lookups where the exact dependency and decision are already obvious
  • recommendation questions driven mostly by ecosystem adoption or benchmarks unless you also add docs and broader research

Setup Assumption

Assume the user already has Maven Tools MCP configured.

  • arvindand/maven-tools-mcp:latest is the default when raw Context7 tools should be exposed through the same server
  • arvindand/maven-tools-mcp:latest-noc7 is the clean option when documentation is handled separately

Only discuss installation when the tools are unavailable.

Recovery

IssueAction
MCP tools unavailableTell the user Maven Tools MCP is not configured and point them to https://github.com/arvindand/maven-tools-mcp. Mention :latest when they want raw Context7 in the same server, or :latest-noc7 when docs are handled separately.
Dependency not foundVerify groupId:artifactId format and check whether the artifact is on Maven Central.
Raw Context7 tools unavailableUse standalone Context7 tools if available; otherwise fall back to WebSearch and WebFetch.
No documentation path is availableSay dependency facts are available but deeper migration or API docs are not available in the current environment.
Security scan is incomplete or slowUse available version/maintenance facts, mark security status as incomplete or unknown, and do not describe a candidate as vulnerability-free.
Version type is unclearTreat it as unstable and prefer a known stable release.

License: MIT Requires: Maven Tools MCP server Pairs with: context7 skill or standalone Context7 tools for documentation-heavy follow-up

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.