Skip to main content
Glama

cisa-cybersecurity-mcp-server

cisa_check_cve_status

cisa_check_cve_status
Read-onlyIdempotent

Check CVE IDs against the CISA Known Exploited Vulnerabilities catalog — up to 200 per call, served from a cached catalog snapshot at no upstream cost. Returns, per CVE, whether it is in KEV and if so the date added, the federal remediation due date, days remaining or days overdue, which binding operational directive the entry cites, the required action text, whether it is linked to ransomware campaigns, whether it falls in the three-day forensic-triage tier, CISA's own vendor and product labels, associated CWEs, and the reference URLs parsed from the entry's notes. A CVE that is not in KEV is a normal result, not an error. For a large batch, detail "summary" keeps only the triage fields — the deadline and overdue status, directive, ransomware and forensic-triage flags, and vendor and product labels — and drops the descriptive text, CWEs, and references, so a full batch stays compact. The CWE IDs returned chain directly into the cwe filter of cisa_search_kev and cisa_search_ics_advisories, and the parsed NVD reference gives the canonical record for scoring detail. For the reverse direction — which ICS advisories cover a CVE — pass it as cve to cisa_search_ics_advisories, or set inKev there to list the advisories covering any KEV CVE.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cveIdsYesCVE identifiers to check, up to 200 per call. The whole batch costs zero upstream requests, so a full CVE alias list from a dependency audit can be checked in one call — pair a large batch with detail "summary".
detailNofull returns every field of each in-KEV entry. summary returns only cveId, inKev, dateAdded, dueDate, daysUntilDue, overdue, directive, vendorProject, product, knownRansomwareCampaignUse, and forensicTriage — the triage view for a large batch. Not-in-KEV results are the same under both.full

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
asOfNoThe UTC date daysUntilDue and overdue were computed against, YYYY-MM-DD.
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when none of the supplied CVE IDs are in the catalog.
catalogNoWhich catalog snapshot answered this call.
resultsNoOne result per requested CVE, in the order supplied.
foundCountNoHow many of the requested CVEs are in the catalog.
summaryNoteNoPresent only under detail "summary": which fields each in-KEV result omits and how to restore them.
notFoundCountNoHow many of the requested CVEs are not in the catalog.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • changedInput schema / properties / cveIds / description
      Previous value: -"CVE identifiers to check, up to 200 per call. The whole batch costs zero upstream requests, so a full CVE alias list from a dependency audit can be checked in one call."New value: +"CVE identifiers to check, up to 200 per call. The whole batch costs zero upstream requests, so a full CVE alias list from a dependency audit can be checked in one call — pair a large batch with detail \"summary\"."
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "full",
      +  "description": "full returns every field of each in-KEV entry. summary returns only cveId, inKev, dateAdded, dueDate, daysUntilDue, overdue, directive, vendorProject, product, knownRansomwareCampaignUse, and forensicTriage — the triage view for a large batch. Not-in-KEV results are the same under both.",
      +  "enum": [
      +    "full",
      +    "summary"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / results / items / description
      Previous value: -"One KEV catalog entry, or a not-in-KEV result carrying only cveId and inKev."New value: +"One KEV catalog entry, or a not-in-KEV result carrying only cveId and inKev. Under cisa_check_cve_status detail \"summary\" an entry carries only cveId, inKev, the dates and deadline status, directive, vendor and product labels, and the ransomware and forensic-triage flags."
    • changedOutput schema / properties / results / items / properties / cwes / description
      Previous value: -"Associated CWEs. Empty on 175 entries, so a CWE filter excludes those."New value: +"Associated CWEs. Empty on some entries, and a CWE filter excludes those. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / directive / description
      Previous value: -"The binding operational directive the entry cites, or null when it cites neither — 1,277 of 1,716 entries name none, and none is never inferred from age."New value: +"The binding operational directive the entry cites, or null when it cites neither — most entries name none, and none is never inferred from age."
    • changedOutput schema / properties / results / items / properties / kevUrl / description
      Previous value: -"Absolute URL of the KEV catalog page for this CVE."New value: +"Absolute URL of the KEV catalog page for this CVE. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / notesCommentary / description
      Previous value: -"Free prose from the notes field, present when the entry opens with prose."New value: +"The prose segments of the notes field, verbatim with any URLs they contain; present when the notes carry prose. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / references / description
      Previous value: -"Reference URLs parsed from the notes field, each classified by kind."New value: +"Every reference URL in the notes field, in notes order, each classified by kind. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / requiredAction / description
      Previous value: -"CISA's required-action text for the entry, verbatim."New value: +"CISA's required-action text for the entry, verbatim. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / shortDescription / description
      Previous value: -"CISA's one-paragraph description."New value: +"CISA's one-paragraph description. Absent under detail \"summary\"."
    • changedOutput schema / properties / results / items / properties / vulnerabilityName / description
      Previous value: -"CISA's short name for the vulnerability."New value: +"CISA's short name for the vulnerability. Absent under detail \"summary\"."
    • addedOutput schema / properties / summaryNote
      Added value: +{
      +  "description": "Present only under detail \"summary\": which fields each in-KEV result omits and how to restore them.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses that the catalog is a cached snapshot, that a full batch costs zero upstream requests, that not-in-KEV is a normal result rather than an error, and that summary mode drops specific fields. These are meaningful behavioral details an agent needs.

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 front-loaded with purpose and usage, and most sentences carry distinct value. It is somewhat long because it enumerates return fields in prose that the output schema already covers, but the density is justified by the tool's batching and cross-tool integration behavior.

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?

Given the two-parameter schema, existing annotations, and output schema, the description covers batch limits, error semantics, detail-mode tradeoffs, and integrations with sibling tools. Nothing an agent needs to call the tool correctly seems missing.

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

Parameters5/5

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

Even though the schema already documents both parameters, the description adds actionable context: cveIds can carry a full dependency-audit alias list because the batch is upstream-free, and detail='summary' is recommended for large batches with the exact retained triage fields enumerated.

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 first sentence states a specific verb and resource: checking CVE IDs against the CISA KEV catalog. It also adds scope details (up to 200 per call, cached snapshot) that distinguish this tool from the sibling search/advisory tools.

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

Usage Guidelines5/5

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

The description explicitly says when to use detail='summary' for large batches and explains the reverse direction through cisa_search_ics_advisories. It also names sibling tools and gives concrete routing rules for CWE chaining into cisa_search_kev and cisa_search_ics_advisories.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.