Skip to main content
Glama
tedorigawa001

OSV-Scanner-MCP

脆弱性を解消する推奨アップグレードの提案

suggest_fix

Scans Java Maven/Gradle projects for vulnerable dependencies, recommending the closest secure upgrade version per CVE. Clearly marks CVEs without fixes as unfixed.

Instructions

Java(Maven)プロジェクトをスキャンし、脆弱な依存パッケージごとに推奨アップグレードバージョンを提案する。現在のバージョンに最も近いリリース系統の修正版を優先する3段階フォールバック(same_minor: 同一major.minor系統内 → major_internal: 同一メジャー内 → cross_major: メジャーアップグレード)で選定し、推奨バージョン・アップグレード距離(upgrade_tier)・CVEごとの修正版を返す。修正版が存在しないCVEはunfixedとして明示する。Maven(pom.xml)とGradle(gradle.lockfile)に対応。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_pathYesスキャン対象のプロジェクトディレクトリ、またはpom.xml/gradle.lockfileの絶対パス

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.11

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does a good job: it discloses the three-tier fallback selection logic, the upgrade_tier concept, handling of unfixed CVEs, and support for Maven and Gradle. It could additionally state explicitly whether any files are modified, but 'propose' strongly implies non-mutating behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, front-loading the main purpose and then detailing the fallback algorithm and output. It is appropriately sized for the complexity involved, though the Maven/Gradle support is mentioned twice, creating slight redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description correctly explains the key return elements: recommended version, upgrade_tier, per-CVE fixed versions, and unfixed status. It also covers the selection strategy and supported build files. It does not describe behavior for projects with no vulnerabilities or error cases, but it is otherwise sufficient for a single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a bit of context about Maven and Gradle support, but the schema already documents that project_path can be a project directory or a pom.xml/gradle.lockfile path. No significant additional parameter meaning is introduced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: scanning a Java project and proposing recommended upgrade versions for vulnerable dependencies. It also specifies the output contents (recommended version, upgrade_tier, CVE-specific fixed version), which distinguishes it from sibling tools like scan_java_project and explain_vulnerability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but does not explicitly say when to use it versus scan_java_project or explain_vulnerability. No usage conditions, exclusions, or alternative routing are provided, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.