{"id":"f8fd3696-f7f6-487f-991a-4de26a625bec","shortId":"s8hch9","kind":"skill","title":"maven-tools","tagline":"JVM dependency intelligence via Maven Tools MCP server. Use when the user asks about Maven or Gradle dependencies, JVM library versions, safe upgrades, CVEs, license risks, release history, or project dependency health. Use when reviewing `pom.xml`, `build.gradle`, `build.gradle.","description":"# Maven Tools\n\nUse this skill to ground JVM dependency decisions in live Maven Central data.\n\nThis 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.\n\n## When to Use\n\nActivate when the user asks about:\n\n- Java, Kotlin, Scala, or JVM dependencies\n- Maven, Gradle, `pom.xml`, `build.gradle`, or `build.gradle.kts`\n- latest versions, upgrades, CVEs, licenses, dependency age, or release history\n- whether a dependency is safe, current, stale, or worth upgrading\n\n## Core Boundary\n\nUse Maven Tools MCP for version, security, license, freshness, and release-pattern facts from Maven Central.\n\n- Do the reasoning in-model: recommend next steps, call out risk, and separate safe-now actions from manual-review items.\n- Normalize dependency inputs to `groupId:artifactId` or `groupId:artifactId:version` as needed.\n- For recommendation questions, evaluate concrete candidates with Maven Tools first, then add documentation context before making a strong call.\n- Do not use Maven metadata alone to decide library popularity, framework fit, migration effort, or performance tradeoffs.\n\n## Tool Selection\n\nChoose the narrowest tool that matches the request:\n\n| Intent | Tool | Default Parameters |\n|--------|------|--------------------|\n| latest version lookup | `get_latest_version` | `stabilityFilter: PREFER_STABLE` |\n| check exact version | `check_version_exists` | none |\n| bulk candidate check (no current versions) | `check_multiple_dependencies` | `stabilityFilter: PREFER_STABLE` |\n| upgrade analysis (with current versions) | `compare_dependency_versions` | `includeSecurityScan: true`, `stabilityFilter: STABLE_ONLY` |\n| age/freshness | `analyze_dependency_age` | use project-appropriate threshold |\n| maintenance signal | `analyze_release_patterns` | `monthsToAnalyze: 24` |\n| release history | `get_version_timeline` | `versionCount: 20` |\n| full project audit | `analyze_project_health` | `includeSecurityScan: true`, `includeLicenseScan: true`, `stabilityFilter: PREFER_STABLE` |\n\nDefault to `analyze_project_health` when the user says \"check my dependencies\" or pastes a project dependency set.\n\nUse `check_multiple_dependencies` for candidate sets without current versions. Use `compare_dependency_versions` for upgrade decisions on current versions. Use `analyze_project_health` for broad audits, not every single dependency question.\n\n## Workflow\n\n1. Extract dependencies from user input or the build file\n2. Pick the narrowest tool that answers the request\n3. Report the result in decision-oriented language:\n   - what is current\n   - what changed\n   - what is safe to do now\n   - what needs manual review\n\nFor upgrade questions, prefer `compare_dependency_versions` with:\n\n- `includeSecurityScan: true`\n- `stabilityFilter: STABLE_ONLY`\n\nThen interpret the result conservatively:\n\n- patch and minor updates are the default safe path\n- major updates should be treated as manual review unless the user explicitly wants a breaking upgrade\n\nWhen `compare_dependency_versions` returns `same_major_stable_fallback`:\n\n- treat the top-level major upgrade as the long-term path\n- treat the fallback as the safest immediate upgrade target\n- surface both, but recommend the fallback first for conservative maintenance workflows\n\nThis is especially important for \"safe update\" or bot-like maintenance flows.\n\nIf the user asks whether a dependency is safe:\n\n1. use `compare_dependency_versions` when remediation guidance matters\n2. use `analyze_release_patterns` when maintenance risk matters\n3. combine the two instead of relying only on \"latest version\" checks\n\n## Documentation Handoff\n\nWhen the answer needs migration guides, API details, or library usage patterns, add documentation context before giving a strong recommendation.\n\nUse this order:\n\n1. use Maven Tools MCP first for dependency facts\n2. if raw Context7 tools are available in the current tool list, use them directly\n3. otherwise, if standalone Context7 tools are available, use them\n4. otherwise, use `WebSearch` and `WebFetch` for official docs, release notes, and migration guides\n5. if no documentation path is available, say dependency facts are available but deeper doc lookup is not\n\nUse this especially for:\n\n- major upgrades\n- migration planning\n- recommendation-style comparisons between candidate libraries\n\n## Less Helpful / Out of Scope\n\n- private artifact repositories that are not mirrored through Maven Central\n- non-JVM ecosystems that do not use Maven coordinates\n- trivial one-off lookups where the exact dependency and decision are already obvious\n- recommendation questions driven mostly by ecosystem adoption or benchmarks unless you also add docs and broader research\n\n## Setup Assumption\n\nAssume the user already has Maven Tools MCP configured.\n\n- `arvindand/maven-tools-mcp:latest` is the default when raw Context7 tools should be exposed through the same server\n- `arvindand/maven-tools-mcp:latest-noc7` is the clean option when documentation is handled separately\n\nOnly discuss installation when the tools are unavailable.\n\n## Recovery\n\n| Issue | Action |\n|-------|--------|\n| MCP tools unavailable | Tell 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. |\n| Dependency not found | Verify `groupId:artifactId` format and check whether the artifact is on Maven Central. |\n| Raw Context7 tools unavailable | Use standalone Context7 tools if available; otherwise fall back to `WebSearch` and `WebFetch`. |\n| No documentation path is available | Say dependency facts are available but deeper migration or API docs are not available in the current environment. |\n| Security scan is incomplete or slow | Use the partial result, say CVE data may be incomplete, and continue with version/maintenance guidance. |\n| Version type is unclear | Treat it as unstable and prefer a known stable release. |\n\n---\n\n> **License:** MIT\n> **Requires:** [Maven Tools MCP server](https://github.com/arvindand/maven-tools-mcp)\n> **Pairs with:** [context7 skill](../context7/) or standalone Context7 tools for documentation-heavy follow-up","tags":["maven","tools","agent","skills","arvindand","agent-skills","ai-agents","ai-tools","claude-code","developer-tools","github-copilot","llm"],"capabilities":["skill","source-arvindand","skill-maven-tools","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-claude-code","topic-developer-tools","topic-github-copilot","topic-llm","topic-mcp","topic-opencode","topic-skills"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/arvindand/agent-skills/maven-tools","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add arvindand/agent-skills","source_repo":"https://github.com/arvindand/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 12 github stars · SKILL.md body (6,330 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:10.768Z","embedding":null,"createdAt":"2026-04-23T13:04:11.564Z","updatedAt":"2026-05-18T19:07:10.768Z","lastSeenAt":"2026-05-18T19:07:10.768Z","tsv":"'/arvindand/maven-tools-mcp':776 '/arvindand/maven-tools-mcp)':897 '/context7':902 '1':365,515,570 '2':375,524,579 '20':300 '24':293 '3':384,533,594 '4':604 '5':618 'action':169,757 'activ':95 'add':198,559,702 'adopt':696 'age':119,281 'age/freshness':278 'alon':211 'alreadi':82,688,712 'also':701 'analysi':266 'analyz':279,289,304,316,353,526 'answer':381,549 'api':553,844 'appropri':285 'artifact':657,808 'artifactid':180,183,802 'arvindand/maven-tools-mcp':718,734 'ask':16,99,509 'assum':77,709 'assumpt':708 'audit':303,358 'avail':585,601,624,629,822,834,839,848 'back':825 'benchmark':698 'bot':502 'bot-lik':501 'boundari':134 'break':449 'broad':357 'broader':705 'build':373 'build.gradle':40,41,110 'build.gradle.kts':112 'bulk':253 'call':161,205 'candid':192,254,337,649 'central':55,151,665,812 'chang':397 'check':246,249,255,259,323,333,544,805 'choos':225 'clean':740 'combin':534 'compar':270,343,412,452,517 'comparison':647 'concret':191 'configur':83,717,769 'conserv':425,490 'context':200,561 'context7':582,598,725,783,814,819,900,905 'continu':870 'coordin':675 'core':133 'current':128,257,268,340,350,395,588,851 'cve':864 'cves':27,116 'data':56,865 'decid':213 'decis':51,348,390,686 'decision-ori':389 'deeper':631,841 'default':235,314,432,722 'depend':5,21,34,50,68,106,118,125,176,261,271,280,325,330,335,344,362,367,413,453,512,518,577,626,684,797,836 'detail':554 'direct':593 'discuss':85,748 'doc':612,632,703,793,845 'document':199,545,560,621,743,831,909 'documentation-heavi':908 'driven':692 'ecosystem':669,695 'effort':219 'environ':852 'especi':495,638 'evalu':190 'everi':360 'exact':247,683 'execut':60 'exist':251 'explicit':446 'expos':729 'extract':366 'fact':69,148,578,627,837 'fall':824 'fallback':459,475,487 'file':374 'first':66,196,488,575 'fit':217 'flow':505 'follow':912 'follow-up':911 'format':803 'found':799 'framework':216 'fresh':143 'full':301 'get':240,296 'github.com':775,896 'github.com/arvindand/maven-tools-mcp':774 'github.com/arvindand/maven-tools-mcp)':895 'give':563 'gradl':20,108 'ground':48 'groupid':179,182,801 'guid':552,617 'guidanc':522,873 'handl':745,795 'handoff':546 'health':35,306,318,355 'heavi':910 'help':652 'histori':31,122,295 'immedi':479 'import':496 'in-model':74,155 'includelicensescan':309 'includesecurityscan':273,307,416 'incomplet':856,868 'input':177,370 'instal':749 'instead':537 'intellig':6 'intent':233 'interpret':422 'issu':756 'item':174 'java':101 'jvm':4,22,49,105,668 'known':885 'kotlin':102 'languag':392 'latest':113,237,241,542,719,736,778,790 'latest-noc7':735,789 'less':651 'level':464 'librari':23,214,556,650 'licens':28,117,142,888 'like':503 'list':590 'live':53 'long':470 'long-term':469 'lookup':239,633,680 'mainten':287,491,504,530 'major':435,457,465,640 'make':202 'manual':172,406,441 'manual-review':171 'match':230 'matter':523,532 'maven':2,8,18,42,54,63,78,107,136,150,194,209,572,664,674,714,764,811,891 'maven-tool':1 'may':866 'mcp':10,65,80,138,574,716,758,766,893 'mention':777 'metadata':210 'migrat':218,551,616,642,842 'minor':428 'mirror':662 'mit':889 'model':76,157 'monthstoanalyz':292 'most':693 'multipl':260,334 'narrowest':227,378 'need':186,405,550 'next':159 'noc7':737,791 'non':667 'non-jvm':666 'none':252 'normal':175 'note':614 'obvious':689 'offici':611 'one':678 'one-off':677 'option':741 'order':569 'orient':391 'otherwis':595,605,823 'pair':898 'paramet':236 'partial':861 'past':327 'patch':426 'path':434,472,622,832 'pattern':147,291,528,558 'perform':221 'pick':376 'plan':643 'point':771 'pom.xml':39,109 'popular':215 'prefer':244,263,312,411,883 'privat':656 'project':33,284,302,305,317,329,354 'project-appropri':283 'question':189,363,410,691 'raw':581,724,782,813 'reason':73,154 'recommend':158,188,485,566,645,690 'recommendation-styl':644 'recoveri':755 'releas':30,121,146,290,294,527,613,887 'release-pattern':145 'reli':539 'remedi':521 'report':385 'repositori':658 'request':232,383 'requir':890 'research':706 'result':387,424,862 'return':455 'review':38,173,407,442 'risk':29,163,531 'safe':25,127,167,400,433,498,514 'safe-now':166 'safest':478 'say':322,625,835,863 'scala':103 'scan':854 'scope':655 'secur':141,853 'select':224 'separ':165,746,796 'server':11,733,787,894 'set':331,338 'setup':86,707 'signal':288 'singl':361 'skill':46,61,901 'skill-maven-tools' 'slow':858 'source-arvindand' 'stabilityfilt':243,262,275,311,418 'stabl':245,264,276,313,419,458,886 'stale':129 'standalon':597,818,904 'step':160 'strong':204,565 'style':646 'surfac':482 'target':481 'tell':761 'term':471 'threshold':286 'timelin':298 'tool':3,9,43,64,79,89,137,195,223,228,234,379,573,583,589,599,715,726,752,759,765,815,820,892,906 'top':463 'top-level':462 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-claude-code' 'topic-developer-tools' 'topic-github-copilot' 'topic-llm' 'topic-mcp' 'topic-opencode' 'topic-skills' 'tradeoff':222 'treat':439,460,473,878 'trivial':676 'true':274,308,310,417 'two':536 'type':875 'unavail':91,754,760,816 'unclear':877 'unless':443,699 'unstabl':881 'updat':429,436,499 'upgrad':26,115,132,265,347,409,450,466,480,641 'usag':557 'use':12,36,44,62,94,135,208,282,332,342,352,516,525,567,571,591,602,606,636,673,817,859 'user':15,98,321,369,445,508,711,763 'verifi':800 'version':24,114,140,184,238,242,248,250,258,269,272,297,341,345,351,414,454,519,543,874 'version/maintenance':872 'versioncount':299 'via':7 'want':447,781 'webfetch':609,829 'websearch':607,827 'whether':123,510,806 'without':339 'workflow':364,492 'worth':131","prices":[{"id":"fd21d2f3-db89-4d55-a028-f7128e911fec","listingId":"f8fd3696-f7f6-487f-991a-4de26a625bec","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"arvindand","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:11.564Z"}],"sources":[{"listingId":"f8fd3696-f7f6-487f-991a-4de26a625bec","source":"github","sourceId":"arvindand/agent-skills/maven-tools","sourceUrl":"https://github.com/arvindand/agent-skills/tree/main/skills/maven-tools","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:11.564Z","lastSeenAt":"2026-05-18T19:07:10.768Z"}],"details":{"listingId":"f8fd3696-f7f6-487f-991a-4de26a625bec","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"arvindand","slug":"maven-tools","github":{"repo":"arvindand/agent-skills","stars":12,"topics":["agent-skills","ai-agents","ai-tools","claude-code","developer-tools","github-copilot","llm","mcp","opencode","skills"],"license":"mit","html_url":"https://github.com/arvindand/agent-skills","pushed_at":"2026-05-12T21:27:46Z","description":"Reusable agent skills for Claude Code, GitHub Copilot, and other AI assistants. Dependency intelligence, GitHub ops, documentation lookup, UI/UX design patterns.","skill_md_sha":"20dc5649f2214a9e05969236fbda0803ec5addf0","skill_md_path":"skills/maven-tools/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/arvindand/agent-skills/tree/main/skills/maven-tools"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"maven-tools","description":"JVM dependency intelligence via Maven Tools MCP server. Use when the user asks about Maven or Gradle dependencies, JVM library versions, 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', or 'is this version safe'. Use even when the user just pastes a `groupId:artifactId` coordinate without a verb."},"skills_sh_url":"https://skills.sh/arvindand/agent-skills/maven-tools"},"updatedAt":"2026-05-18T19:07:10.768Z"}}