Skip to main content
Glama
K4PXD

cve-mcp-server

by K4PXD

Get GitHub Security Advisories

cve_get_advisories
Read-onlyIdempotent

Retrieve GitHub Security Advisories referencing a CVE to identify affected ecosystems, vulnerable version ranges, and first patched versions.

Instructions

Retrieve GitHub Security Advisories (GHSA) that reference a CVE — the best source for package-level impact (ecosystem, affected version ranges, first patched version).

Args:

  • cve_id (string): CVE identifier, e.g. "CVE-2021-44228".

  • response_format ('markdown'|'json', default 'markdown').

Returns (json): array of { ghsaId, summary, severity, cveId, htmlUrl, publishedAt, vulnerabilities: [ { ecosystem, packageName, vulnerableVersionRange, firstPatchedVersion } ] }.

Examples:

  • "Which npm/Maven packages does CVE-2021-44228 affect and when was it fixed?" -> cve_id="CVE-2021-44228".

Notes:

  • Returns an empty list when no advisory references the CVE. Set GITHUB_TOKEN to raise rate limits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cve_idYesCVE identifier, e.g. 'CVE-2021-44228'.
response_formatNoOutput format: 'markdown' (default, human-readable) or 'json' (full structured data).markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only and idempotent behavior, and the description adds genuine operational context: empty-list behavior when no advisory references the CVE, the GITHUB_TOKEN rate-limit dependency, and the markdown/json output contract. There is no contradiction with annotations; the only minor ambiguity is that Returns (json) is stated while markdown is the default format.

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

Conciseness5/5

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

The description is organized into purpose, args, returns, examples, and notes with the key purpose front-loaded. While the returns block is detailed, it earns its place because the tool has no output schema, and there is no filler.

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

Completeness5/5

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

For a two-parameter read-only tool with no output schema, the description provides the full return shape, empty-list behavior, rate-limit/auth note, and a working example. Nothing needed to call the tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents both parameters. The description adds value by giving a concrete example question tied to cve_id and clarifying what the response_format choices mean operationally. This goes slightly beyond the baseline schema semantics.

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 uses a specific verb and resource: Retrieve GitHub Security Advisories that reference a CVE. It also frames its differentiating value as the best source for package-level impact, so an agent can distinguish it from siblings like cve_get_details or cve_get_pocs.

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

Usage Guidelines4/5

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

The opening line and example question clearly signal when to use this tool: when package-level impact (ecosystem, versions, first patched version) is needed. It does not explicitly name alternative tools or give when-not-to-use conditions, but the context is strong enough for correct selection.

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