Skip to main content
Glama

cisa-cybersecurity-mcp-server

Server Details

CISA KEV with BOD 26-04 deadlines, SSVC prioritization, and the ICS advisory corpus (CSAF). Keyless.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 42 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/cisa-cybersecurity-mcp-server
GitHub Stars
1
Server Listing
@cyanheads/cisa-cybersecurity-mcp-server

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource and action: status lookup (check_cve_status), single-advisory read (get_advisory), feed listing (get_alerts), SSVC computation (get_ssvc), vocabulary reference (list_reference), and two searches over clearly different corpora (KEV vs ICS advisories). The search pair is separable because KEV is a catalog and ICS is an advisory corpus, and descriptions explicitly cross-reference which tool to use for which direction of query.

Naming Consistency5/5

Consistent verb_noun pattern throughout with the cisa_ namespace prefix (get_, check_, search_, list_). The lone deviation — check_cve_status using check_ rather than get_ — is semantically justified since it is a membership test, not a fetch, and the pattern remains predictable.

Tool Count5/5

Seven tools is well-scoped for a domain covering three data sources (KEV, ICS advisories, SSVC) plus feeds and a vocabulary reference. Each tool earns its place: two searches, two retrievals, a status check, a computation, and a legend, with no padding.

Completeness4/5

Coverage is strong: search plus detail retrieval for both corpora, direct CVE-status lookup, SSVC timeline computation, recent-feeds, and a vocabulary decoder that closes the training gap for free-text filters. Minor gaps remain — no bulk CVE enrichment or cross-server pivots beyond the documented ones — but the core investigative loop (discover, retrieve, triage) is fully closed.

Available Tools

7 tools
cisa_check_cve_statuscisa_check_cve_statusA
Read-onlyIdempotent
Inspect

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.

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

NameRequiredDescription
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.

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.

cisa_get_advisorycisa_get_advisoryA
Read-onlyIdempotent
Inspect

Read one CISA industrial control system advisory: product definitions and relationship component references; per-CVE CVSS score, vector, and CWE; vendor remediations; sectors; and revision history. Large advisories return a section outline with byte sizes and vulnerability CVE IDs. Re-call with sections, cves for named vulnerabilities, or productIds for exact product definitions referenced by vulnerability status, scores, or remediations. Product IDs are case-sensitive; relationship selection does not expand components. Every response carries source URLs and attribution. Find advisory IDs with cisa_search_ics_advisories.

NameRequiredDescriptionDefault
cvesNoNarrow the vulnerabilities section to these CVE IDs; the outline lists the ones the advisory holds. Alone, it selects the vulnerabilities section; with sections, that list must include "vulnerabilities".
sectionsNoSections to return. Omit for the whole document, or for its outline when the document overflows the inline budget.
advisoryIdYesAdvisory identifier, e.g. ICSA-26-260-07 or ICSMA-26-253-02, with an optional revision suffix: a single letter A-F or a numeric -N. Case, surrounding whitespace, and a trailing .json are normalized.
productIdsNoNarrow products to these IDs from vulnerability status, score, or remediation references. Alone selects products; combined with cves selects both sections. Explicit sections must include products.

Output Schema

NameRequiredDescription
kindNofull when the document is returned; outline when only the section listing is.
errorNoPresent when the call failed. Absent on success.
foundNoWhether an advisory with that ID is in the index.
summaryNoNarrative notes and sector classification.
advisoryNoAdvisory identity, dates, and attribution. Always kept, including on a section selection.
guidanceNoWhat to do instead, present when found is false: how current the index is, and whether the advisory may be newer than it.
productsNoAffected products and version ranges.
sectionsNoOutline arm — the sections available, largest first, with their byte sizes and, for vulnerabilities, its CVE IDs.
referencesNoDocument-level references.
outlineNoticeNoOutline arm — how to call cisa_get_advisory for specific sections.
acknowledgmentsNoAcknowledgment entries.
indexCheckpointNoPresent when found is false: the newest revision timestamp the index holds, or null if none.
revisionHistoryNoRevision history, oldest first as published.
vulnerabilitiesNoVulnerabilities the advisory covers, with scores, remediations, and product status.
indexLastSyncedAtNoPresent when found is false: when the index last completed a sync, ISO 8601, or null if never.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the bar is lower, yet the description adds genuine behavior: large advisories degrade to a section outline with byte sizes and CVE IDs, and every response carries source URLs and attribution. It also notes the non-expanding relationship selection. Not exhaustive on pagination/error behavior, but solid beyond the annotations.

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?

Dense but front-loaded: the core read action and return contents come first, followed by narrowing mechanics and the search-tool pointer. Every sentence carries information, though it is on the longer side and repeats some schema-level detail.

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?

Given an output schema exists, return values needn't be spelled out, yet the description usefully previews them and explains the overflow/outline behavior that an agent needs to interpret large responses. Complete for the task; only minor gaps around error or revision-edge behavior.

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 description coverage is 100% and the schema already documents sections, cves, productIds, and advisoryId syntax in detail, so the baseline is 3. The description largely restates that behavior; the one real addition is 'relationship selection does not expand components' for productIds.

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?

States a specific verb and resource ('Read one CISA industrial control system advisory') and enumerates the concrete content it returns (product definitions, CVSS score/vector/CWE, remediations, sectors, revisions). It also names the sibling used to find IDs, making it clearly distinguishable from cisa_search_ics_advisories.

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?

Explains how to narrow results (re-call with sections, cves, or productIds) and routes the agent to cisa_search_ics_advisories for discovering IDs. Clear contextual guidance, though it doesn't explicitly state when-not to use this tool versus other advisory tools like cisa_get_ssvc.

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

cisa_get_alertscisa_get_alertsA
Read-onlyIdempotent
Inspect

List what CISA has published recently — its combined advisory feed, its alerts feed, or its ICS advisory feed. Each feed is a rolling window of exactly 30 items with no history, no pagination, and no date-range query, so the window's coverage varies from about a week to about two months depending on the feed. For ICS advisory history beyond the window, use cisa_search_ics_advisories, which covers the full corpus back to 2010.

NameRequiredDescriptionDefault
feedNoWhich feed to read: advisories (all.xml, ~8 days of coverage), alerts (alerts.xml, ~8 weeks), or ics (ics-advisories.xml, ~2.5 weeks).advisories
limitNoMaximum items to return. The 30 ceiling is the upstream window, not a server choice.
sinceNoKeep only items published on or after this date, YYYY-MM-DD. Filters within the fetched window; it cannot reach back beyond it.

Output Schema

NameRequiredDescription
capNoThe limit that was applied.
feedNoThe feed that was read.
errorNoPresent when the call failed. Absent on success.
itemsNoItems from the fetched window, newest first as published; stale identifies cached fallback.
shownNoItems returned.
staleNoTrue when refresh failed and this response uses the last cached window.
noticeNoSafe retry guidance on refresh failure, or guidance when the since filter excluded every item.
windowNoWhat the fetched window covers.
feedUrlNoThe absolute feed URL this window came from.
feedTitleNoThe channel title the feed declares.
fetchedAtNoUTC timestamp when this window was successfully fetched.
truncatedNoTrue when the limit capped the returned items.
windowCaveatNoThat the feed has no history, no pagination, and no date query.
effectiveQueryNoThe since filter as applied, and how many window items it excluded.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and idempotentHint; the description goes well beyond them by disclosing the fixed 30-item rolling window, absence of history/pagination/date-range querying, and the fact that coverage varies from roughly a week to two months by feed. That is exactly the operational context an agent needs before calling.

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?

Two dense sentences, front-loaded with the action and feed options, then the constraint, then the fallback route. No filler and nothing buried.

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?

An output schema exists so return values need not be described, and the description covers the scope, the rolling-window limitation, and the alternative tool for deeper history. Nothing an agent needs to call this correctly is missing.

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 description coverage is 100% and each parameter already documents its enum values, 30-item ceiling, and windowed-filter behavior, so the baseline is 3. The description adds little param-level detail beyond reiterating the window constraint, and its 'no date-range query' phrasing sits in mild tension with the existence of `since` (the schema resolves this, but the description does not).

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?

States a concrete verb and resource ('List what CISA has published recently') and immediately enumerates the three specific feeds it can read. It also names the sibling cisa_search_ics_advisories, so an agent can distinguish scope without opening either schema.

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?

Explicitly states both when to use it (recent publication lookup across the three feeds) and when not to (ICS history beyond the rolling window), routing to cisa_search_ics_advisories and noting that it covers the full corpus back to 2010. The 'no pagination, no date-range query' clause further bounds its use.

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

cisa_get_ssvccisa_get_ssvcA
Read-onlyIdempotent
Inspect

Fetch the SSVC decision points CISA publishes per CVE as a CVE Authorized Data Publisher — Exploitation, Automatable, and Technical Impact — along with the CVSS score and CWE CISA contributes where present, and compute the BOD 26-04 remediation timeline those values imply for the asset exposure you supply. The computed timeline applies CISA's published decision table to CISA's published decision points and your stated exposure; it is not a compliance determination and it is not CISA's own due-date assignment, which is reported separately when the CVE is in KEV and can differ. Not every CVE is enriched — a miss returns found false with guidance rather than an error. Call cisa_list_reference with topic ssvc_values for the decision-point vocabulary.

NameRequiredDescriptionDefault
cveIdsYesCVE identifiers to look up, up to 50 per call — lower than cisa_check_cve_status's 200-CVE cap because each CVE needs its own live enrichment lookup rather than a cached batch check.
assetExposureNoWhether the affected asset is reachable by unauthenticated or untrusted entities over public networks. The one BOD 26-04 decision point CISA cannot publish. "unknown" returns both arms so the spread is visible without guessing.unknown

Output Schema

NameRequiredDescription
echoNoThe request as the server parsed it.
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when nothing was enriched, or when a decision timestamp predates KEV.
resultsNoOne result per requested CVE, in the order supplied.
foundCountNoHow many CVEs carry published SSVC decision points.
notFoundCountNoHow many CVEs do not.

TDQS

A4.7/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 important behaviors: misses return 'found false with guidance rather than an error,' the computed timeline is not CISA's own due-date assignment and can differ when the CVE is in KEV, and the lookup uses live enrichment per CVE. These are substantive behavioral details that help an agent set expectations correctly.

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 longer than a typical one-liner, but every sentence adds necessary context: core function, computed-timeline limitations, miss behavior, and vocabulary reference. It is front-loaded with the primary action and structured so caveats follow naturally.

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 tool's complexity and the presence of an output schema, the description covers the essential context: what data is fetched, how the timeline is computed, what is excluded, how misses behave, and where to get supporting vocabulary. An agent has enough guidance to invoke the tool correctly and interpret unexpected results.

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 baseline is 3, but the description boosts understanding by explaining how assetExposure is the one BOD 26-04 decision point CISA cannot publish and that the supplied exposure drives the timeline computation. It also ties cveIds to per-CVE enrichment, reinforcing why the cap is lower than the sibling status tool.

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 names a specific verb and resource: 'Fetch the SSVC decision points CISA publishes per CVE' and 'compute the BOD 26-04 remediation timeline.' It clearly distinguishes the tool from siblings by focusing on SSVC enrichment plus timeline computation, not on generic CVE status, advisories, or KEV search.

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 description provides clear context for when to use the tool, including what it does and key caveats such as 'not every CVE is enriched' and 'not a compliance determination.' It also explicitly routes users to cisa_list_reference for decision-point vocabulary, but it does not contrast this tool with cisa_check_cve_status or cisa_search_kev as directly as it could.

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

cisa_list_referencecisa_list_referenceA
Read-onlyIdempotent
Inspect

Decode the vocabulary the other CISA tools take as input. Topics cover the BOD 26-04 remediation timeline table and what each tier means, the KEV record fields and their value domains, the SSVC decision points CISA publishes, the critical-infrastructure sector names as the advisory corpus spells them, advisory ID formats, CVSS severity bands, and the freshness of the data this server currently holds. Call this before constructing filters for cisa_search_kev or cisa_search_ics_advisories, and whenever another tool's recovery hint points here.

NameRequiredDescriptionDefault
topicYesWhich reference block to return: directives (BOD 26-04 Table 1 and its definitions), kev_fields, ssvc_values, sectors, advisory_id_formats, severity_bands, or sources (what this server currently holds).

Output Schema

NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
titleNoHuman-readable title for the topic.
topicNoThe topic that was decoded.
entriesNoThe decoded terms for this topic.
sourcesNoTopic sources only — what this server currently holds, read from in-process state.
summaryNoWhat this topic covers and when to reach for it.
supersedesNoTopic directives only — the directives BOD 26-04 supersedes and revokes.
definitionsNoTopic directives only — supporting definitions from the directive text.
timelineTableNoTopic directives only — all sixteen rows of BOD 26-04 Appendix A, Table 1.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and closed-world, so the safety profile is covered. The description adds genuine behavioral context: this is a static lookup surface, it discloses data-freshness information via the 'sources' topic, and it tells the agent this tool is an input to other tools rather than an action.

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?

Three sentences, front-loaded with the core purpose, then the topic inventory, then the usage rule. The middle sentence is long but each item is a distinct reference block, so little is wasted; the usage rule is slightly deferred to the end.

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?

An output schema exists, so return-value detail is not required. The description covers purpose, full topic inventory, and invocation timing for a single-parameter, one-of-enum tool — an agent has everything needed to call it correctly.

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% and the enum values are documented in the schema, so baseline 3 applies. The description goes beyond the schema by glossing the two most opaque topics ('the BOD 26-04 remediation timeline table', 'the freshness of the data this server currently holds'), adding semantics the enum labels alone don't convey.

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?

States a specific verb and resource ('decode the vocabulary the other CISA tools take as input') and then enumerates exactly what vocabulary is covered. It is immediately distinguishable from the search/get siblings, which consume this vocabulary rather than define it.

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?

Gives an explicit when-to-use rule ('Call this before constructing filters for cisa_search_kev or cisa_search_ics_advisories') and a second trigger ('whenever another tool's recovery hint points here'). Both the alternative tools and the condition that selects this one are named.

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

cisa_search_ics_advisoriescisa_search_ics_advisoriesA
Read-onlyIdempotent
Inspect

Search the CISA industrial control system advisory corpus — every CSAF 2.0 advisory covering PLC, HMI, SCADA, building-automation, and medical-device products from 2010 onward. Filter by vendor, product, CVE, CWE, CVSS range, severity band, critical-infrastructure sector, advisory series, publication date, revision date, or whether an advisory covers a CVE in the CISA Known Exploited Vulnerabilities catalog, and run full-text search over advisory titles and product names. Sector filtering reaches only advisories that carry a sector note, which begins in 2017; the response reports how many documents a sector filter can never match. Returns advisory IDs for cisa_get_advisory, the CVEs each advisory covers and which of them are in KEV, and the source URL and attribution every advisory response carries.

NameRequiredDescriptionDefault
qNoFull-text search over advisory titles, vendor names, and product names. Tokens are AND-combined; FTS5 operators in the input are neutralized rather than honored, and a token with no letter or digit is ignored. Needs at least one word or number.
cveNoExact CVE membership, e.g. CVE-2021-44228. Case and surrounding whitespace are normalized.
cweNoExact CWE identifier, e.g. CWE-787, matched against every vulnerability entry in the advisory. Case and surrounding whitespace are normalized. A parent class does not match its children.
inKevNotrue selects advisories covering at least one CVE in the CISA Known Exploited Vulnerabilities catalog; false selects advisories covering none. Checked against every CVE an advisory covers, not only the twenty listed per result.
limitNoMaximum advisories per page.
orderNoSort direction. Under relevance, desc means most relevant first.desc
cursorNoOpaque pagination cursor from a previous call. Omit for the first page.
sectorNoCritical-infrastructure sector, matched against the normalized sector set. Multiple is the sentinel the corpus uses for an advisory affecting many sectors.
seriesNoAdvisory series: ICSA industrial control system advisories, or ICSMA medical-device advisories, a small minority of the corpus.
sortByNoField to sort by. relevance requires q and ranks by FTS5 bm25.revised
vendorNoCase-insensitive substring of a vendor label, matched literally — % and _ are ordinary characters. Vendor names are unnormalized upstream — the same company appears under several spellings — so this is substring, not exact.
cvssMaxNoMaximum value of the advisory's maximum CVSS base score, inclusive.
cvssMinNoMinimum value of the advisory's maximum CVSS base score, inclusive.
productNoCase-insensitive substring of a product name, matched literally — % and _ are ordinary characters.
severityNoSeverity band of the advisory's maximum CVSS score.
publisherNocoordinator selects CISA-authored advisories; other selects vendor advisories CISA republished, over a quarter of the corpus.
revisedToNoLatest current release date, inclusive, YYYY-MM-DD.
publishedToNoLatest initial release date, inclusive, YYYY-MM-DD.
revisedFromNoEarliest current release date, inclusive, YYYY-MM-DD.
publishedFromNoEarliest initial release date, inclusive, YYYY-MM-DD.

Output Schema

NameRequiredDescription
capNoThe page limit that was applied.
errorNoPresent when the call failed. Absent on success.
shownNoAdvisories returned on this page.
cursorNoOpaque cursor for the next page. Absent when this is the last page.
mirrorNoWhich index state answered this call.
noticeNoGuidance when nothing matched — the filter that matches no advisory on its own and what dropping it restores, or the filters whose removal restores results and how many — when a page was capped, when KEV membership was not evaluated, or when a cwe result may be incomplete.
hasMoreNoWhether more matches exist beyond this page.
resultsNoMatching advisories for this page.
truncatedNoTrue when the page limit capped this result.
totalCountNoTotal matches before paging.
cvssCoverageNoDisclosure of derived-band and no-score coverage under a score filter.
appliedFiltersNoThe filters the server actually applied.
sectorCoverageNoDisclosure of how many advisories a sector filter can never match.

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the readOnly/idempotent/openWorld annotations by disclosing a real corpus limitation: sector filtering only reaches advisories carrying a sector note, which begins in 2017, and the response reports how many documents a sector filter can never match. It also states that every response carries source URL and attribution. Rate limits, ordering effects beyond the schema, and result-size caveats are not covered, keeping it short of a 5.

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?

Front-loaded with purpose and scope before enumerating filters, and no sentence is pure filler. It is a single long sentence dense enough to be hard to skim, so a small structure penalty applies, but the information density is high.

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?

For a 20-parameter, zero-required search tool with an output schema, the description covers corpus boundaries, the filter surface, the sector-coverage caveat, and the shape of returned IDs and KEV flags. Pagination is delegated to the cursor schema and sort behavior to sortBy, so nothing critical is missing, though explicit composition/default guidance is absent.

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 description coverage is 100% and every parameter is already documented in the schema, so the baseline is 3. The description largely restates the filter taxonomy the schema already provides; the one nuance it adds (KEV coverage is checked against every CVE an advisory covers, not just the twenty listed) is also present in the inKev schema description, so the marginal semantic value is limited.

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?

States a specific verb (search) plus resource (CISA ICS advisory corpus) and pins the scope precisely: CSAF 2.0 advisories covering PLC/HMI/SCADA/building-automation/medical-device products from 2010 onward. It also routes the agent onward by naming cisa_get_advisory as the consumer of the returned IDs, which cleanly separates it from the fetch-by-ID sibling.

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?

Gives strong context for when this is the right tool: an enumerated filter surface (vendor, product, CVE, CWE, CVSS range, severity, sector, series, dates, KEV) plus full-text search, and it implies the follow-up path via cisa_get_advisory. It never explicitly contrasts itself with siblings like cisa_search_kev or cisa_check_cve_status, so the when-not/alternative case is left to inference.

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

cisa_search_kevcisa_search_kevA
Read-onlyIdempotent
Inspect

Search the CISA Known Exploited Vulnerabilities catalog across every entry in the cached snapshot. Filter by vendor or product using CISA's own labels, by name substring, by CWE, by the date an entry was added, by due date, by overdue status, by ransomware linkage, by the three-day forensic-triage tier, or by which binding operational directive the entry cites. Results are paged and sortable by due date or date added. Vendor and product values are CISA's free-text labels, not CPE names — call cisa_list_reference for the field vocabulary before guessing one. The catalog records additions but carries no per-record modified timestamp, so dateAddedFrom answers "what is new since D" while a revised due date on an existing entry is not detectable from the feed.

NameRequiredDescriptionDefault
cweNoExact CWE identifier, e.g. CWE-362. Case and surrounding whitespace are normalized. Entries with no CWEs never match.
limitNoMaximum entries per page.
orderNoSort direction.desc
cursorNoOpaque pagination cursor from a previous call. Omit for the first page.
sortByNoField to sort by.dateAdded
overdueNoTrue selects entries whose due date is strictly before the echoed asOf date.
productNoCase-insensitive substring of CISA's own product label.
dueAfterNoEarliest due date, inclusive, YYYY-MM-DD.
directiveNoWhich directive the entry cites. "none" selects the entries citing neither.
dueBeforeNoLatest due date, inclusive, YYYY-MM-DD.
ransomwareNoTrue selects entries CISA has linked to ransomware campaigns.
cveIdPrefixNoYear scope for the CVE ID, e.g. CVE-2026. Case and surrounding whitespace are normalized.
dateAddedToNoLatest date added, inclusive, YYYY-MM-DD.
nameContainsNoStrict token match over the vulnerability name and short description: every token must appear. Matching folds case and accents, spells letters such as ß, æ, ø, þ, and ł as ss, ae, o, th, and l, and keeps only the letters a-z and the digits 0-9; a word carrying any other letter or digit, such as one in another script, loses those characters and the response names it, and a value left with none of them is rejected. No fuzzy fallback.
dateAddedFromNoEarliest date added, inclusive, YYYY-MM-DD.
vendorProjectNoCase-insensitive substring of CISA's own vendor label.
forensicTriageNoTrue selects the BOD 26-04 three-day forensic-triage tier.

Output Schema

NameRequiredDescription
capNoThe page limit that was applied.
asOfNoThe UTC date overdue and daysUntilDue were computed against, YYYY-MM-DD.
errorNoPresent when the call failed. Absent on success.
shownNoEntries returned on this page.
cursorNoOpaque cursor for the next page. Absent when this is the last page.
noticeNoGuidance when nothing matched, when a page was capped, or when nameContains dropped characters it cannot match.
catalogNoWhich catalog snapshot answered this call.
hasMoreNoWhether more matches exist beyond this page.
resultsNoMatching KEV entries for this page.
truncatedNoTrue when the page limit capped this result.
totalCountNoTotal matches before paging.
appliedFiltersNoThe filters the server actually applied, as it parsed them.
snapshotCaveatNoDisclosure that additions are queryable but revisions are not detectable.

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/idempotentHint annotations: it discloses that the data is a cached snapshot, that results are paged and sortable, that vendor/product are CISA free-text labels rather than CPE names, and a genuine data-model limitation (no per-record modified timestamp, so revised due dates are undetectable). That last point is exactly the kind of caveat an agent cannot infer elsewhere.

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?

Front-loaded with verb and resource, then filters, then paging/sorting, then the two caveats. The long filter enumeration is dense but every clause maps to a real capability, and no sentence is 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?

With an output schema present, return-value documentation is unnecessary, and the description covers what matters for correct invocation: scope, filter inventory, pagination, sort keys, label vocabulary warning, and the temporal caveat. Nothing an agent needs to call this 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 description coverage is 100%, so 3 is the baseline, but the description adds interpretive meaning the schema does not: the vendor/product label-vs-CPE distinction, the paging/sorting behavior, and the semantic asymmetry between the added-date and due-date filters. It does not restate the enum values or patterns, which is appropriate.

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?

States a specific verb and resource ('Search the CISA Known Exploited Vulnerabilities catalog') and immediately scopes it ('across every entry in the cached snapshot'), then enumerates the filterable dimensions. This is clearly distinguishable from sibling reads like cisa_get_advisory or cisa_check_cve_status without opening a schema.

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?

Gives an explicit prerequisite-style routing instruction: call cisa_list_reference for the field vocabulary before guessing vendor/product values. It also clarifies which date filter answers which question (dateAddedFrom = 'what is new since D'). It does not, however, state when to prefer this tool over siblings like cisa_check_cve_status, so it stops short of full when/when-not coverage.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changedcisa_get_advisory15 fields changed
      • addedInput schema / properties / productIds
        Added value: +{
        +  "description": "Narrow products to these IDs from vulnerability status, score, or remediation references. Alone selects products; combined with cves selects both sections. Explicit sections must include products.",
        +  "items": {
        +    "description": "Exact case-sensitive CSAF product ID; surrounding whitespace is trimmed.",
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `mirror_not_ready`: The advisory index has never completed a full sync. `mirror_unavailable`: The advisory index store cannot be opened: its location is not writable, is read-only, runs through a missing directory or a file, or holds a file that is not a SQLite database. `unknown_section`: A requested section is one this advisory does not carry. `cves_need_vulnerabilities_section`: cves is set but sections does not include \"vulnerabilities\", so there is nothing for cves to narrow. `unknown_cve`: A cves entry names a CVE this advisory does not cover. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `product_ids_need_products_section`: productIds is nonempty but explicit sections omits products. `unknown_product_id`: productIds names an ID with no definition in this advisory. `mirror_busy`: A transient SQLite lock prevents the advisory index from opening. `mirror_not_ready`: The advisory index has never completed a full sync. `mirror_unavailable`: The advisory index store cannot be opened: its location is not writable, is read-only, runs through a missing directory or a file, or holds a file that is not a SQLite database. `unknown_section`: A requested section is one this advisory does not carry. `cves_need_vulnerabilities_section`: cves is set but sections does not include \"vulnerabilities\", so there is nothing for cves to narrow. `unknown_cve`: A cves entry names a CVE this advisory does not cover. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "mirror_not_ready",
        -  "mirror_unavailable",
        -  "unknown_section",
        -  "cves_need_vulnerabilities_section",
        -  "unknown_cve"
        -]New value: +[
        +  "product_ids_need_products_section",
        +  "unknown_product_id",
        +  "mirror_busy",
        +  "mirror_not_ready",
        +  "mirror_unavailable",
        +  "unknown_section",
        +  "cves_need_vulnerabilities_section",
        +  "unknown_cve"
        +]
      • addedOutput schema / properties / products / properties / selected
        Added value: +{
        +  "description": "True when productIds selects only requested definitions; whole-document totals are retained.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / products / properties / shownProducts / description
        Previous value: -"Flattened version rows returned — equal to productCount except on a truncated copy."New value: +"Product definitions returned — equal to productCount except under productIds selection or on a legacy truncated copy."
      • changedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / description
        Previous value: -"Version entries under this product."New value: +"Product definitions grouped under this product label."
      • changedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / description
        Previous value: -"One affected version or version range."New value: +"One branch, standalone, or relationship product definition."
      • addedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / identificationHelper
        Added value: +{
        +  "description": "Lossless JSON text of upstream CSAF product identification metadata, when supplied.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / kind / description
        Previous value: -"CSAF branch category this entry came from, e.g. product_version or product_version_range."New value: +"CSAF branch category, or full_product_name or relationship for definitions outside branches."
      • addedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / name
        Added value: +{
        +  "description": "Exact full product name supplied upstream.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / productId / description
        Previous value: -"The CSAFPID token vulnerability entries reference — how a CVE maps to exact affected versions."New value: +"Exact opaque CSAF product ID referenced by vulnerability entries; case-sensitive and not restricted to CSAFPID tokens."
      • addedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / productReference
        Added value: +{
        +  "description": "First relationship component ID; not automatically expanded.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / relatesToProductReference
        Added value: +{
        +  "description": "Second relationship component ID; not automatically expanded.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / relationshipCategory
        Added value: +{
        +  "description": "CSAF relationship category supplied upstream.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / products / properties / vendors / items / properties / products / items / properties / versions / items / properties / value / description
        Previous value: -"The version or version-range expression."New value: +"Version/range expression for a branch row, or full name for a standalone or relationship definition."
    • Changedcisa_get_alerts7 fields changed
      • addedInput schema / properties / since / format
        Added value: +"date"
      • changedInput schema / properties / since / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "feed",
        -      "feedUrl",
        -      "feedTitle",
        -      "items",
        -      "window",
        -      "windowCaveat"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "stale",
        +      "fetchedAt",
        +      "feed",
        +      "feedUrl",
        +      "feedTitle",
        +      "items",
        +      "window",
        +      "windowCaveat"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / fetchedAt
        Added value: +{
        +  "description": "UTC timestamp when this window was successfully fetched.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / items / description
        Previous value: -"Items from the current window, newest first as published."New value: +"Items from the fetched window, newest first as published; stale identifies cached fallback."
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when the since filter excluded every item."New value: +"Safe retry guidance on refresh failure, or guidance when the since filter excluded every item."
      • addedOutput schema / properties / stale
        Added value: +{
        +  "description": "True when refresh failed and this response uses the last cached window.",
        +  "type": "boolean"
        +}
    • Changedcisa_list_reference5 fields changed
      • changedOutput schema / properties / sources / properties / csafMirror / properties / documentCount / description
        Previous value: -"Advisories held in the index; null before the first sync completes."New value: +"Advisories currently held in the index, including partial updates; null before the first sync completes or when the store cannot be read."
      • addedOutput schema / properties / sources / properties / csafMirror / properties / failedDocumentCount
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Changed documents that failed in the last manifest application; zero after a successful sync, null when the store cannot be read."
        +}
      • addedOutput schema / properties / sources / properties / csafMirror / properties / lastSuccessfulCheckpoint
        Added value: +{
        +  "description": "Newest current_release_date at the last wholly successful sync; unchanged after partial updates, null before completion.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / sources / properties / csafMirror / properties / syncStatus / description
        Previous value: -"Lifecycle state: pending, in_progress, complete, error, or unavailable."New value: +"Lifecycle state: pending, in_progress, complete, partial, error, busy, or unavailable. A partial refresh keeps applied rows and retries unresolved documents on the next refresh."
      • changedOutput schema / properties / sources / properties / csafMirror / required
        Previous value: -[
        -  "ready",
        -  "documentCount",
        -  "checkpoint",
        -  "syncStatus",
        -  "lastCompletedAt"
        -]New value: +[
        +  "ready",
        +  "documentCount",
        +  "failedDocumentCount",
        +  "lastSuccessfulCheckpoint",
        +  "checkpoint",
        +  "syncStatus",
        +  "lastCompletedAt"
        +]
    • Changedcisa_search_ics_advisories10 fields changed
      • addedInput schema / properties / publishedFrom / format
        Added value: +"date"
      • changedInput schema / properties / publishedFrom / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / publishedTo / format
        Added value: +"date"
      • changedInput schema / properties / publishedTo / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / revisedFrom / format
        Added value: +"date"
      • changedInput schema / properties / revisedFrom / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / revisedTo / format
        Added value: +"date"
      • changedInput schema / properties / revisedTo / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `mirror_not_ready`: The advisory index has never completed a full sync. `mirror_unavailable`: The advisory index store cannot be opened: its location is not writable, is read-only, runs through a missing directory or a file, or holds a file that is not a SQLite database. `invalid_cvss_range`: cvssMin exceeds cvssMax. `invalid_date_range`: A From bound is later than its matching To bound. `relevance_sort_without_query`: sortBy is relevance but no q was supplied, so there is no bm25 rank to sort by. `empty_search_text`: q contains no word or number once quotes and punctuation are removed, so there is nothing to search for. `catalog_unavailable`: inKev is set, no KEV catalog snapshot is held, and the fetch from cisa.gov failed. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `mirror_busy`: A transient SQLite lock prevents the advisory index from opening. `mirror_not_ready`: The advisory index has never completed a full sync. `mirror_unavailable`: The advisory index store cannot be opened: its location is not writable, is read-only, runs through a missing directory or a file, or holds a file that is not a SQLite database. `invalid_cvss_range`: cvssMin exceeds cvssMax. `invalid_date_range`: A From bound is later than its matching To bound. `relevance_sort_without_query`: sortBy is relevance but no q was supplied, so there is no bm25 rank to sort by. `empty_search_text`: q contains no word or number once quotes and punctuation are removed, so there is nothing to search for. `catalog_unavailable`: inKev is set, no KEV catalog snapshot is held, and the fetch from cisa.gov failed. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "mirror_not_ready",
        -  "mirror_unavailable",
        -  "invalid_cvss_range",
        -  "invalid_date_range",
        -  "relevance_sort_without_query",
        -  "empty_search_text",
        -  "catalog_unavailable"
        -]New value: +[
        +  "mirror_busy",
        +  "mirror_not_ready",
        +  "mirror_unavailable",
        +  "invalid_cvss_range",
        +  "invalid_date_range",
        +  "relevance_sort_without_query",
        +  "empty_search_text",
        +  "catalog_unavailable"
        +]
    • Changedcisa_search_kev8 fields changed
      • addedInput schema / properties / dateAddedFrom / format
        Added value: +"date"
      • changedInput schema / properties / dateAddedFrom / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / dateAddedTo / format
        Added value: +"date"
      • changedInput schema / properties / dateAddedTo / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / dueAfter / format
        Added value: +"date"
      • changedInput schema / properties / dueAfter / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      • addedInput schema / properties / dueBefore / format
        Added value: +"date"
      • changedInput schema / properties / dueBefore / pattern
        Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables prioritizing vulnerabilities by real-world exploitation evidence, combining CISA KEV, EPSS, CVSS, and SSVC to rank CVEs and package versions, and providing fix recommendations.
    4
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables CVE lookups and risk assessment by integrating CISA Known Exploited Vulnerabilities (KEV) data and CVSS metrics. It helps users prioritize patching efforts by ranking vulnerabilities based on exploitation status and calculated risk scores.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server to query and manage CISA Known Exploited Vulnerabilities catalog with EPSS overlay, enabling vulnerability checks and remediation deadline tracking.
    35 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.