io.github.cyanheads/cisa-cybersecurity-mcp-server
REMOTE · CISA-CYBERSECURITY.CASEYJHAND.COM · 2 COMPONENTS · SCANNED SEP 21
CISA KEV with BOD 26-04 deadlines, SSVC prioritization, and the ICS advisory corpus (CSAF). Keyless.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability86
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8210 tokens (~122/item across 67 items; 7 tools + 60 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
How do I install the io.github.cyanheads/cisa-cybersecurity-mcp-server server?
io.github.cyanheads/cisa-cybersecurity-mcp-server is a hosted endpoint at https://cisa-cybersecurity.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · cisa-cybersecurity.caseyjhand.com
claude mcp add --transport http cyanheads-cisa-cybersecurity-mcp-server 'https://cisa-cybersecurity.caseyjhand.com/mcp'
{
"mcpServers": {
"cyanheads-cisa-cybersecurity-mcp-server": {
"url": "https://cisa-cybersecurity.caseyjhand.com/mcp"
}
}
} {
"servers": {
"cyanheads-cisa-cybersecurity-mcp-server": {
"type": "http",
"url": "https://cisa-cybersecurity.caseyjhand.com/mcp"
}
}
} [mcp_servers.cyanheads-cisa-cybersecurity-mcp-server] url = "https://cisa-cybersecurity.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cyanheads-cisa-cybersecurity-mcp-server": {
"type": "remote",
"url": "https://cisa-cybersecurity.caseyjhand.com/mcp",
"enabled": true
}
}
} openclaw mcp add cyanheads-cisa-cybersecurity-mcp-server --url 'https://cisa-cybersecurity.caseyjhand.com/mcp' --transport streamable-http
mcp_servers:
cyanheads-cisa-cybersecurity-mcp-server:
url: "https://cisa-cybersecurity.caseyjhand.com/mcp" {
"McpServers": {
"cyanheads-cisa-cybersecurity-mcp-server": {
"Transport": "http",
"Url": "https://cisa-cybersecurity.caseyjhand.com/mcp"
}
}
} assistant mcp add cyanheads-cisa-cybersecurity-mcp-server -t streamable-http -u 'https://cisa-cybersecurity.caseyjhand.com/mcp'
{
"mcpServers": {
"cyanheads-cisa-cybersecurity-mcp-server": {
"type": "http",
"url": "https://cisa-cybersecurity.caseyjhand.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://cisa-cybersecurity.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 4 Sept 2026 | 3 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | a6985204ed51ae050e7738aa6be668e9 |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of cisa-cybersecurity.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| cisa-cybersecurity.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://cisa-cybersecurity.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://cisa-cybersecurity.caseyjhand.com/mcp | HTTPS enforced | 301 | https://cisa-cybersecurity.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cisa_check_cve_status ~230
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. The CWE IDs returned chain directly into cisa_search_kev's CWE filter, and the parsed NVD reference gives the canonical record for scoring detail.
| Name | Type | Req | Description |
|---|---|---|---|
| cveIds | array | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| asOf | string | – | The UTC date daysUntilDue and overdue were computed against, YYYY-MM-DD. |
| catalog | object | – | Which catalog snapshot answered this call. |
| error | object | – | Present when the call failed. Absent on success. |
| foundCount | integer | – | How many of the requested CVEs are in the catalog. |
| notFoundCount | integer | – | How many of the requested CVEs are not in the catalog. |
| notice | string | – | Guidance when none of the supplied CVE IDs are in the catalog. |
| results | array | – | One result per requested CVE, in the order supplied. |
No examples provided.
cisa_get_advisory ~216
Read one CISA industrial control system advisory in full: affected products flattened from the CSAF product tree into vendor, product, and version ranges; per-CVE CVSS score, vector, and CWE; remediations with their category and vendor instructions; critical-infrastructure sectors; and the revision history. Large advisories return a section outline instead of the whole document — re-call with the sections you need. Republished vendor advisories carry the originating vendor's text; every response reports the source URL and attribution. Find advisory IDs with cisa_search_ics_advisories.
| Name | Type | Req | Description |
|---|---|---|---|
| advisoryId | string | yes | Advisory identifier, e.g. ICSA-26-260-07 or ICSMA-26-253-02. Case-insensitive; an optional revision suffix is a single letter a-f or a numeric -N. A trailing .json is stripped. |
| sections | array | – | Sections to return. Omit for the whole document, or for its outline when the document overflows the inline budget. |
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledgments | array | – | Acknowledgment entries. |
| advisory | object | – | Advisory identity, dates, and attribution. Always kept, including on a section selection. |
| error | object | – | Present when the call failed. Absent on success. |
| found | boolean | – | Whether an advisory with that ID is in the index. |
| guidance | string | – | What to do instead, present when found is false. |
| kind | string | – | full when the document is returned; outline when only the section listing is. |
| outlineNotice | string | – | Outline arm — how to call cisa_get_advisory for specific sections. |
| products | object | – | Affected products and version ranges. |
| references | array | – | Document-level references. |
| revisionHistory | array | – | Revision history, oldest first as published. |
| sections | array | – | Outline arm — the sections available, largest first, with their byte sizes. |
| summary | object | – | Narrative notes and sector classification. |
| vulnerabilities | array | – | Vulnerabilities the advisory covers, with scores, remediations, and product status. |
No examples provided.
cisa_get_alerts ~212
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.
| Name | Type | Req | Description |
|---|---|---|---|
| feed | string | – | Which feed to read: advisories (all.xml, ~8 days of coverage), alerts (alerts.xml, ~8 weeks), or ics (ics-advisories.xml, ~2.5 weeks). |
| limit | integer | – | Maximum items to return. The 30 ceiling is the upstream window, not a server choice. |
| since | string | – | Keep only items published on or after this date, YYYY-MM-DD. Filters within the fetched window; it cannot reach back beyond it. |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | integer | – | The limit that was applied. |
| effectiveQuery | string | – | The since filter as applied, and how many window items it excluded. |
| error | object | – | Present when the call failed. Absent on success. |
| feed | string | – | The feed that was read. |
| feedTitle | string | – | The channel title the feed declares. |
| feedUrl | string | – | The absolute feed URL this window came from. |
| items | array | – | Items from the current window, newest first as published. |
| notice | string | – | Guidance when the since filter excluded every item. |
| shown | integer | – | Items returned. |
| truncated | boolean | – | True when the limit capped the returned items. |
| window | object | – | What the fetched window covers. |
| windowCaveat | string | – | That the feed has no history, no pagination, and no date query. |
No examples provided.
cisa_get_ssvc ~275
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assetExposure | string | – | Whether 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… |
| cveIds | array | yes | CVE 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| echo | object | – | The request as the server parsed it. |
| error | object | – | Present when the call failed. Absent on success. |
| foundCount | integer | – | How many CVEs carry published SSVC decision points. |
| notFoundCount | integer | – | How many CVEs do not. |
| notice | string | – | Guidance when nothing was enriched, or when a decision timestamp predates KEV. |
| results | array | – | One result per requested CVE, in the order supplied. |
No examples provided.
cisa_list_reference ~176
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.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | yes | Which 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 hold… |
| Name | Type | Req | Description |
|---|---|---|---|
| definitions | array | – | Topic directives only — supporting definitions from the directive text. |
| entries | array | – | The decoded terms for this topic. |
| error | object | – | Present when the call failed. Absent on success. |
| sources | object | – | Topic sources only — what this server currently holds, read from in-process state. |
| summary | string | – | What this topic covers and when to reach for it. |
| supersedes | array | – | Topic directives only — the directives BOD 26-04 supersedes and revokes. |
| timelineTable | array | – | Topic directives only — all sixteen rows of BOD 26-04 Appendix A, Table 1. |
| title | string | – | Human-readable title for the topic. |
| topic | string | – | The topic that was decoded. |
No examples provided.
cisa_search_ics_advisories ~578
Search the CISA industrial control system advisory corpus — 3,926 CSAF 2.0 documents covering PLC, HMI, SCADA, building-automation, and medical-device products from 2010 onward. Filter by vendor, product, CVE, CVSS range, severity band, critical-infrastructure sector, advisory series, publication date, or revision date, 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 the source URL and attribution every advisory response carries.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque pagination cursor from a previous call. Omit for the first page. |
| cve | string | – | Exact CVE membership. The corpus covers 12,321 distinct CVEs. |
| cvssMax | number | – | Maximum value of the advisory's maximum CVSS base score, inclusive. |
| cvssMin | number | – | Minimum value of the advisory's maximum CVSS base score, inclusive. |
| limit | integer | – | Maximum advisories per page. |
| order | string | – | Sort direction. Under relevance, desc means most relevant first. |
| product | string | – | Case-insensitive substring of a product name. |
| publishedFrom | string | – | Earliest initial release date, inclusive, YYYY-MM-DD. |
| publishedTo | string | – | Latest initial release date, inclusive, YYYY-MM-DD. |
| publisher | string | – | coordinator selects CISA-authored advisories (2,863); other selects republished vendor advisories (1,063). |
| q | string | – | Full-text search over advisory titles, vendor names, and product names. Tokens are AND-combined; FTS5 operators in the input are neutralized rather than honored. |
| revisedFrom | string | – | Earliest current release date, inclusive, YYYY-MM-DD. |
| revisedTo | string | – | Latest current release date, inclusive, YYYY-MM-DD. |
| sector | string | – | Critical-infrastructure sector, matched against the normalized sector set. Multiple is the sentinel the corpus uses for an advisory affecting many sectors. |
| series | string | – | Advisory series: ICSA (3,738 documents) or ICSMA medical devices (188). |
| severity | string | – | Severity band of the advisory's maximum CVSS score. |
| sortBy | string | – | Field to sort by. relevance requires q and ranks by FTS5 bm25. |
| vendor | string | – | Case-insensitive substring of a vendor label. Vendor names are unnormalized upstream — the same company appears under several spellings — so this is substring, not exact. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedFilters | object | – | The filters the server actually applied. |
| cap | integer | – | The page limit that was applied. |
| cursor | string | – | Opaque cursor for the next page. Absent when this is the last page. |
| cvssCoverage | string | – | Disclosure of derived-band and no-score coverage under a score filter. |
| error | object | – | Present when the call failed. Absent on success. |
| hasMore | boolean | – | Whether more matches exist beyond this page. |
| mirror | object | – | Which index state answered this call. |
| notice | string | – | Guidance when nothing matched. |
| results | array | – | Matching advisories for this page. |
| sectorCoverage | string | – | Disclosure of how many advisories a sector filter can never match. |
| shown | integer | – | Advisories returned on this page. |
| totalCount | integer | – | Total matches before paging. |
| truncated | boolean | – | True when the page limit capped this result. |
No examples provided.
cisa_search_kev ~521
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque pagination cursor from a previous call. Omit for the first page. |
| cveIdPrefix | string | – | Year scope for the CVE ID, e.g. CVE-2026. |
| cwe | string | – | Exact CWE identifier, e.g. CWE-362. Excludes the 175 entries with no CWEs. |
| dateAddedFrom | string | – | Earliest date added, inclusive, YYYY-MM-DD. |
| dateAddedTo | string | – | Latest date added, inclusive, YYYY-MM-DD. |
| directive | string | – | Which directive the entry cites. "none" selects the 1,277 entries citing neither. |
| dueAfter | string | – | Earliest due date, inclusive, YYYY-MM-DD. |
| dueBefore | string | – | Latest due date, inclusive, YYYY-MM-DD. |
| forensicTriage | boolean | – | True selects the BOD 26-04 three-day forensic-triage tier (58 entries). |
| limit | integer | – | Maximum entries per page. |
| nameContains | string | – | Strict token match over the vulnerability name and short description: every token must appear. No fuzzy fallback. |
| order | string | – | Sort direction. |
| overdue | boolean | – | True selects entries whose due date is strictly before the echoed asOf date. |
| product | string | – | Case-insensitive substring of CISA's own product label. 694 distinct values. |
| ransomware | boolean | – | True selects entries CISA has linked to ransomware campaigns (360 entries). |
| sortBy | string | – | Field to sort by. |
| vendorProject | string | – | Case-insensitive substring of CISA's own vendor label. 283 distinct values. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedFilters | object | – | The filters the server actually applied, as it parsed them. |
| asOf | string | – | The UTC date overdue and daysUntilDue were computed against, YYYY-MM-DD. |
| cap | integer | – | The page limit that was applied. |
| catalog | object | – | Which catalog snapshot answered this call. |
| cursor | string | – | Opaque cursor for the next page. Absent when this is the last page. |
| error | object | – | Present when the call failed. Absent on success. |
| hasMore | boolean | – | Whether more matches exist beyond this page. |
| notice | string | – | Guidance when nothing matched. |
| results | array | – | Matching KEV entries for this page. |
| shown | integer | – | Entries returned on this page. |
| snapshotCaveat | string | – | Disclosure that additions are queryable but revisions are not detectable. |
| totalCount | integer | – | Total matches before paging. |
| truncated | boolean | – | True when the page limit capped this result. |
No examples provided.
What is the io.github.cyanheads/cisa-cybersecurity-mcp-server server?
io.github.cyanheads/cisa-cybersecurity-mcp-server is listed in the public MCP registry as io.github.cyanheads/cisa-cybersecurity-mcp-server. CISA KEV with BOD 26-04 deadlines, SSVC prioritization, and the ICS advisory corpus (CSAF). Keyless. This page covers its hosted endpoint (https://cisa-cybersecurity.caseyjhand.com/mcp).
Is the io.github.cyanheads/cisa-cybersecurity-mcp-server server safe to use?
io.github.cyanheads/cisa-cybersecurity-mcp-server scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.cyanheads/cisa-cybersecurity-mcp-server server expose?
io.github.cyanheads/cisa-cybersecurity-mcp-server exposes 7 tools: cisa_list_reference, cisa_check_cve_status, cisa_search_kev, cisa_get_ssvc, cisa_search_ics_advisories, and 2 more. Their descriptions and schemas cost roughly 2,208 tokens of context every time the server is loaded.
Does the io.github.cyanheads/cisa-cybersecurity-mcp-server server require authentication?
No. We connected to io.github.cyanheads/cisa-cybersecurity-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.cyanheads/cisa-cybersecurity-mcp-server server still maintained?
io.github.cyanheads/cisa-cybersecurity-mcp-server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.