Skip to main content
Glama

Server Details

CVE intelligence: exploitation (KEV/EPSS), detection coverage, fixed versions. All tools 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
100.0% over 47 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct facet: single-CVE record (get_cve), catalog search (search_cves), chain claims (get_chains), sightings (get_sightings), EPSS movers, publication deltas, package advisories, and a batch Table 1 read. Minor overlap exists between get_cve's embedded BOD 26-04 block, the bod filter in search_cves, and table1_read, but the single-vs-batch scope keeps them distinguishable.

Naming Consistency4/5

Most names follow a get_/search_/query_ verb pattern (get_cve, get_chains, get_sightings, get_updates, get_epss_movers, get_scoreboard, search_cves, query_package). table1_read breaks the convention as a noun_verb form, a minor deviation but still readable.

Tool Count5/5

Nine tools is well-scoped for a CVE intelligence domain: one lookup, one search, and seven focused facet/report tools. No redundant or filler tools are apparent.

Completeness4/5

Coverage spans lookup, filtering, chains, sightings, EPSS movement, publication change feed, OSS package advisories, KEV/BOD mapping and scoreboard reporting, which is strong for the domain. Gaps are minor, e.g. no bulk multi-CVE lookup beyond the 50-item table1_read and package scope limited to OSS purl ecosystems rather than vendor product listings.

Available Tools

9 tools
get_chainsA
Read-onlyIdempotent
Inspect

Known Chained Vulnerabilities™: pairs of CVEs that a cited source reports were used together in one exploit chain (VulnCheck KEV entry text, Metasploit modules, SigmaHQ rules, press, research or academic sentences, community text judged by a local model). Each row carries both CVEs with their CISA KEV status, the claim kind (observed: the source reports attacks; potential: the source reports they can be chained), the quoted evidence with its source, URL and date, and community discussion counts, which show discussion and are not chain claims. The per-CVE record carries chains.known and chains.candidates (KCV Watch: possible chains for teams to research, pairs whose extracted exploit capabilities connect or whose records tie them together, derived and never confirmed, each with its tier, lane, reasons, basis, product, bridge, grade, a caption and the entry step where one is extracted); search_cves accepts chained=1 and chainability=1. Filters: source (vulncheck_kev, metasploit, sigma, press, research, community), since (YYYY-MM-DD, first seen), claim (observed|potential), limit (1..500).

ParametersJSON Schema
NameRequiredDescriptionDefault
claimNoobserved: the source reports attacks that chained them; potential: the source reports they can be chained
limitNo1..500 (default 100)
sinceNoPairs first seen on or after this day (YYYY-MM-DD)
sourceNoEvidence lane: vulncheck_kev, metasploit, sigma, press, research, academic, community, github_poc, exploitdb or exploit_code

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld, but the description adds genuinely useful behavioral context beyond them: community discussion counts 'show discussion and are not chain claims,' candidates are 'derived and never confirmed,' and the observed vs. potential claim distinction. It stops short of describing pagination or ordering.

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

Conciseness2/5

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

One very long paragraph with deeply nested parentheticals (the chains.candidates field list alone spans a dozen comma-separated attributes). Information is crammed rather than structured or front-loaded, and the source enum is duplicated from the schema.

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?

With no output schema, the description carries the burden of explaining return shape and does so thoroughly (per-row CVEs, KEV status, claim kind, quoted evidence with source/URL/date, discussion counts). An agent knows what a row contains, though ordering and pagination remain unstated.

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%, so all four parameters are already documented, including the observed/potential enum. The description largely restates the source and claim filters and the limit range already in the schema, adding little syntax or format detail beyond the baseline.

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

Purpose4/5

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

The opening clause states a specific resource ('Known Chained Vulnerabilities: pairs of CVEs... used together in one exploit chain') and enumerates the evidence sources behind the claim, so an agent can tell this apart from get_cve. It is clear, though the purpose is embedded in a dense paragraph rather than front-loaded as a single crisp statement.

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

Usage Guidelines3/5

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

It implies relationship to siblings by noting that 'search_cves accepts chained=1 and chainability=1,' and explains that chains.candidates exist for teams to research. However, it never states explicitly when to call get_chains versus search_cves with those flags, leaving the routing decision to inference.

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

get_cveA
Read-onlyIdempotent
Inspect

Full intelligence record for one CVE: per-scorer CVSS, EPSS, CISA KEV/ransomware/SSVC, four remote-detection modalities (the checks that work over the network) plus a host-check tier (self-contained Nuclei templates and Metasploit local modules that run on the system itself) and the Sigma log-detection layer, both kept out of scannable coverage, per-product fixed versions (fixed = first patched build; affected_through = the last vulnerable build, so upgrade past it), news/community coverage, intelligence summary, and bod_26_04: the BOD 26-04 Table 1 read on both exposure branches (CISA's row numbers and timelines from KEV status and CISA's SSVC Automatable and Technical impact) with CISA's KEV due date, forensic triage flag and the KEV entry's action text (kev_required_action, CISA's requiredAction field); the agency's exposure tag decides the row. other_databases lists the CVE's records in ENISA's EUVD, BDU (FSTEC of Russia), CNVD (CNCERT/CC) and JVN iPedia (JPCERT/CC and IPA) with the address of each. No key required over MCP; an API key on the HTTP request (Authorization: Bearer cvs_live_…) is honored for attribution. Absence semantics: a null field means this dataset holds no such record. The source may still hold one.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCVE id, such as CVE-2024-3400

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, closed-world behavior, and the description adds genuinely new context: no key required over MCP, the optional Authorization: Bearer attribution path, and explicit absence semantics ('a null field means this dataset holds no such record'). It stops short of stating rate limits, pagination, or latency, but the added auth and null-handling rules are substantive.

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

Conciseness3/5

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

The scope statement is front-loaded, which is good, but the remainder is an extremely dense multi-clause block with nested parentheses and heavy jargon that is hard to parse. Information is substantive rather than filler, but the structure is not easily scannable.

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 no output schema, the description carries the full burden of explaining return values, and it does so exhaustively: per-scorer CVSS, EPSS, KEV/SSVC, detection tiers, fixed/affected_through semantics, and the bod_26_04 branch logic. Absence semantics and auth context round it out, leaving nothing an agent needs 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 the single 'id' parameter is fully documented in the schema as a CVE id. The description adds no format or edge-case detail beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource up front: 'Full intelligence record for one CVE,' followed by an enumeration of the exact record categories returned. However, it never names or contrasts against the obvious siblings (search_cves for lookup, table1_read for the BOD 26-04 view), so the agent must infer the boundary itself.

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

Usage Guidelines2/5

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

The description explains what data comes back but gives no when-to-use or when-not-to-use guidance, nor any pointer to alternatives like search_cves or table1_read. The single-CVE scope is implied by 'one CVE' but never framed as usage criteria.

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

get_epss_moversA
Read-onlyIdempotent
Inspect

CVEs whose EPSS exploitation probability rose the most recently. window is "7d" (default) or "30d". Each rise is measured between same-EPSS-model-version scores, so a model release (which shifts the whole distribution) never appears as a mover. A rise raises the priority of a CVE; observed exploitation is recorded through CISA KEV. Returns cve_id, current score, the delta, KEV status and url, largest rise first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo1..100 (default 25)
windowNoRise window (default 7d)

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses important behavioral nuances: rises are compared within the same EPSS model version so model releases never create false movers, and KEV status is included as observed-exploitation context. It also states the ordering (largest rise first), which is not derivable from annotations or the schema.

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 compact and front-loaded: the core purpose appears in the first clause, followed by parameter default, a key methodological caveat, output fields, and ordering. Every sentence contributes useful information; there is no filler or repetition of the tool name.

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

Completeness5/5

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

For a simple read-only tool with only two optional parameters and no output schema, the description is fully self-sufficient. It tells the agent what is returned, the ordering, the available windows and defaults, and why the mover signal is reliable, leaving no critical gap.

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?

The input schema already fully describes both parameters, including the enum for window, the range for limit, and defaults. The description adds contextual meaning for window by explaining that it is the rise window, but it does not materially expand on limit or introduce semantics beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description clearly states what the tool does: it returns CVEs whose EPSS exploitation probability rose most recently. It also lists the exact output fields (cve_id, current score, delta, KEV status and url), which is specific and unambiguous. However, it does not explicitly contrast itself with sibling tools like search_cves or get_updates, so the differentiation is implicit rather than stated.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you want recent EPSS movers, and it explains the window choices (7d or 30d) and default. It does not explicitly state when not to use it or point to alternatives, leaving some routing inference to the agent.

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

get_scoreboardA
Read-onlyIdempotent
Inspect

The Defender Scoreboard report (CC BY 4.0): exploited vs detectable vs patchable, every figure with its method, caveat and denominator, plus the corpus block and any method-change notes. Cite as "CVE Security Defender Scoreboard, cve-security.com/scoreboard".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already communicate read-only and idempotent behavior. The description adds value by disclosing the CC BY 4.0 license and the citation requirement, which is a genuine behavioral constraint beyond annotations. No contradiction exists with readOnlyHint=true.

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?

At roughly 30 words, the description is compact and every phrase carries information: license, report contents, and citation. It is front-loaded with the resource name. It is slightly dense as a single long sentence, but nothing is wasted.

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 parameterless, read-only report getter, the description covers what the report contains and how to cite it, which compensates for the missing output schema. It does not specify the response format, but that is not essential for this tool.

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?

The tool has zero parameters, so parameter documentation is unnecessary; the baseline of 4 applies. The description appropriately focuses on report content rather than inputs.

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

Purpose4/5

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

The description clearly identifies the resource (Defender Scoreboard report) and details its contents: exploited vs detectable vs patchable, method/caveat/denominator, corpus block, and method-change notes. This distinguishes it from siblings like get_cve or search_cves. However, it lacks an explicit verb like 'returns' or 'fetches' and does not directly contrast with sibling tools.

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 content description makes the use case clear: an agent should call this when the user needs scoreboard statistics with methodology, caveats, and denominators. It does not explicitly name alternatives or state when not to use it, so it falls short of full routing guidance.

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

get_sightingsA
Read-onlyIdempotent
Inspect

Field sightings: CVEs a named sensor network recorded in the last 7 or 30 days, most sighting days first. A field sighting is a day on which Shadowserver honeypots (cited by VulnCheck KEV and published as daily lists by CIRCL Vulnerability-Lookup) or VulnCheck canary sensors recorded traffic aimed at the CVE. Each row carries first and last sighting day, days sighted in the last 7 and 30, the sensors, and per-sensor detail including a 30-day presence strip. Presence per day, without volume; a sighting stays apart from the exploitation claims and from CISA KEV. Filters: window (7|30, default 7), kev (0|1), limit (1..500).

ParametersJSON Schema
NameRequiredDescriptionDefault
kevNoRestrict to CVEs outside (0) or inside (1) CISA KEV
limitNo1..500 (default 100)
windowNoSighting window in days (default 7)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent hints. The description adds behavioral context: presence per day without volume, sensor source details, and that it is distinct from CISA KEV – valuable 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.

Conciseness5/5

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

Information-dense and well organized: a one-sentence summary, then a definition, then output details, then filters. Front-loaded with the key concept. No fluff or repetition of annotation hints.

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?

Comprehensive for a read-only list tool with no output schema: it explains what each row contains, the sensor sources, and the exact filter enumeration. 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.

Parameters3/5

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

Schema coverage is 100% and describes all three parameters with defaults and enums. The description mentions the filters again but adds no new meaning beyond what the schema already provides, so baseline 3 applies.

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?

Clearly states it returns CVEs recorded by a named sensor network, defines 'field sighting' precisely, and distinguishes it from exploitation claims and CISA KEV. The verb is implicit but the resource and scope are unmistakable.

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?

Provides clear context about what the tool returns and its filters, and explicitly separates it from exploitation/KEV data. However, it does not name alternative sibling tools or state when to use this vs. others, leaving some inference to the agent.

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

get_updatesA
Read-only
Inspect

The publication change stream: what this site published, stamped with OUR publish time (first_published, kev_added, detection_added, remediation_added, first_sighted, chain_added, and the BOD 26-04 Table 1 input changes ssvc_changed, kev_due_changed, kev_triage_flag_changed, kev_notes_changed, which fire on value changes between snapshots; a timestamp refresh alone fires none). Pass since (YYYY-MM-DD, strictly-after) on the first call, then the returned next_cursor to continue. Optional cve scopes the stream to one CVE's change history. Events for withdrawn CVE ids are omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveNoScope to one CVE's change history, such as CVE-2024-3400
typeNo
limitNo
sinceNo
cursorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safe-read nature is covered. The description adds valuable behavioral context beyond that: the distinction between value changes and timestamp refreshes, the omission of withdrawn CVE IDs, and the cursor-based continuation mechanism. These are non-obvious and critical for correct invocation, and they align with the idempotentHint=false annotation (since cursor use makes the operation stateful). No contradiction with annotations.

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

Conciseness3/5

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

The description is a single dense paragraph that packs a lot of information, but it is not well structured—the list of event types is embedded in a long sentence, and the cursor usage instructions are tacked on. It is front-loaded with the main purpose but lacks clear paragraph breaks or bullet points. The content earns its place, but the presentation could be cleaner, so it does not merit a 4 or 5.

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 the complexity of a change stream with pagination, event types, and CVE scoping, the description covers the essential usage flow well: initial call, continuation, and scoping. It also discloses edge behavior (withdrawn CVE IDs omitted). However, it omits details on the 'type' and 'limit' parameters and does not describe the output shape (since there's no output schema). For a read-only tool, this is reasonably complete, but the missing parameter explanations and output format leave some gaps, so a 4 is fair.

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

Parameters3/5

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

Schema coverage is only 20% (only 'cve' has a description in the schema). The description compensates for three of five parameters: it explains 'since' (format and strictly-after semantics), 'cursor' (continuation via next_cursor), and 'cve' (scoping). However, it does not explain what 'type' or 'limit' do, nor does it explicitly state that 'type' filters by event type (though the event list is given). Given the low coverage, the description only partially compensates, so a 3 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?

The description is highly specific: it defines the tool as 'the publication change stream' and enumerates exactly which events it reports (first_published, kev_added, etc.), including the nuance that timestamp-only refreshes do not fire events. This clearly distinguishes it from sibling tools that fetch single records or current states, giving an agent a precise mental model of the tool's function.

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 operational guidance: pass 'since' on first call, then use the returned cursor to continue, and optionally scope by 'cve'. It implies the tool is for tracking changes over time, which differentiates it from sibling tools like get_cve or get_chains that likely return current snapshots. However, it does not explicitly state when NOT to use this tool or name alternatives, so it stops short of a 5.

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

query_packageA
Read-onlyIdempotent
Inspect

CVEs affecting one open-source package, by purl (pkg:npm/lodash) or ecosystem + name (Maven names are group:artifact). Returns the CVE list KEV-first with each OSV version range VERBATIM: events plus one render-safe projection: fixed (the upgrade targets) or affected_through (the last VULNERABLE version, so upgrade past it). This tool does not evaluate version membership; compare versions on your side with your ecosystem’s own semantics. Covers CVE-linked, GitHub-reviewed OSS advisories via OSV.dev; absence is not evidence of safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPackage name, verbatim (for example @babel/core or org.jenkins-ci.main:jenkins-core)
purlNoPackage URL, such as pkg:npm/lodash or pkg:maven/org.apache.logging.log4j/log4j-core
ecosystemNoOSV ecosystem (npm, PyPI, Maven, Go, crates.io, Packagist, RubyGems, NuGet, …) or purl type (pypi, cargo, composer, gem, golang, …)

TDQS

A4.7/5.0
Behavior5/5

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

Even though annotations already indicate read-only and idempotent behavior, the description adds substantial behavioral context: KEV-first ordering, verbatim OSV range output, the events/fixed/affected_through projection, the explicit refusal to evaluate version membership, and the coverage caveat that absence is not evidence of safety. This goes well beyond what annotations provide.

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 dense but every sentence earns its place: purpose, input modes, output format, version-range semantics, and an important coverage caveat. The main action is front-loaded and there is no filler or repetition of the schema.

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?

There is no output schema, so the description correctly takes on the burden of explaining return values. It covers what is returned (CVE list, KEV-first), how version ranges are represented (fixed vs affected_through), and what the tool does not do. For a read-only package advisory lookup, nothing critical is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by clarifying purl vs ecosystem+name usage, flagging Maven group:artifact format, and giving concrete examples like pkg:npm/lodash, which helps an agent construct correct parameter combinations.

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 opens with a specific verb and resource: 'CVEs affecting one open-source package' and immediately distinguishes the query modes (purl vs ecosystem + name). It clearly separates this from siblings like search_cves and get_cve by emphasizing a single package's advisory list.

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?

It gives clear context for when to use the tool: when you need CVEs for one package, identified by purl or ecosystem + name. It does not explicitly name alternatives or exclusions, but the package-scoped scenario is unmistakable and no misleading guidance is present.

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

search_cvesA
Read-onlyIdempotent
Inspect

Search the catalog. Free text (q) and/or structured filters: vendor (slug), cwe (CWE-nnn), technique (ATT&CK id, such as T1190), year ("2024,2025"), sev ("critical,high"), kev (0|1), kev_from / kev_to (ISO days, half-open CISA listing window; imply kev=1), kev_vendor (the CISA vendorProject string verbatim, such as "Microsoft"), ransomware (0|1), detect (0|1, a detection signal we track), fix (0|1; fix=0 means the fix status was computed and this dataset holds no actionable vendor fix), automatable (0|1, CISA SSVC Automatable; 1=yes, 0=CISA assessed no, unassessed CVEs match neither), sighted (7|30: a named sensor network recorded the CVE in the last 7 or 30 days, a field sighting; presence per day, apart from the exploitation claims), malware (0|1: a published source ties a named malware family, tool, campaign or ransomware group to the CVE), watch (0|1: on KEV Watch at tier 1 or 2, reported exploited by trackers other than CISA and outside CISA KEV), epss_gte (0..1), ti (total|partial: CISA SSVC Technical impact, for CVEs with a CISA assessment held), triage_flag (0|1: CISA's forensic triage flag on the KEV entry), ssvc (0|1; ssvc=0 selects rows with no CISA SSVC assessment held), bod (3df|3d|14d|60d|fsu: the BOD 26-04 Table 1 read at the stated exposure, with exposed 0|1, default 1; a mapping at that exposure, and an agency's timeline still needs its own enumeration date), eco (OSS ecosystem, such as npm or PyPI), pkg (pkg_key, such as npm/lodash; for ranges use query_package), page, limit (1..50). Filter-only queries return the /browse slice ordered KEV-first then EPSS.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
tiNoCISA SSVC Technical impact, for CVEs with a CISA assessment held
bodNoBOD 26-04 Table 1 read at the stated exposure: a mapping of KEV status and CISA SSVC values to a timeline key at that exposure
cweNo
ecoNo
fixNo
kevNo
pkgNo
sevNo
pageNo
ssvcNoWhether this dataset holds a CISA SSVC assessment for the CVE
yearNo
limitNo
watchNoOn KEV Watch at tier 1 or 2: reported as exploited by trackers other than CISA, outside CISA KEV
detectNo
kev_toNoISO day, exclusive upper bound on the CISA listing date
vendorNo
chainedNoIn a known exploit chain: a cited source reports the CVE was used together with another CVE in one exploit chain
exposedNoThe exposure branch for bod: 1 publicly exposed (default), 0 internal
malwareNoA published source ties a named malware family, tool, campaign or ransomware group to the CVE
sightedNoField sighting window in days: a named sensor network recorded the CVE within the last 7 or 30 days
epss_gteNo
kev_fromNoISO day, inclusive lower bound on the CISA listing date
techniqueNoATT&CK technique id, such as T1190 or T1059.001
kev_vendorNoCISA's vendorProject, verbatim (for example 'Palo Alto Networks')
ransomwareNo
automatableNo
triage_flagNoCISA's forensic triage flag on the KEV entry (BOD 26-04)
chainabilityNoOn KCV Watch™: the CVE carries at least one chain candidate at tier A or B, a pair whose extracted exploit capabilities connect or whose records tie the two CVEs together; a candidate is not a confirmed chain

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/closed-world, so the lower bar applies, and the description still adds real behavior: the result ordering (KEV-first then EPSS) for filter-only queries, the default for exposed (1), the half-open kev window, and the special meaning of fix=0 and automatable=0/unassessed. This is meaningful disclosure 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.

Conciseness3/5

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

Purpose is front-loaded in a short first clause, but the remainder is a single dense run-on wall of parenthetical clauses that is hard to scan. For 29 parameters the length is arguably justified, yet the structure could be broken into a scannable list without losing content.

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 29-parameter, no-output-schema search tool with readOnly annotations, the description covers facet semantics, defaults, and result ordering well enough to invoke correctly. Minor gaps (pagination behavior, whether page defaults, exact text-search fields) remain, but nothing critical is 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?

Schema coverage is only 48%, so the description must carry the load, and it does: nearly every parameter's matching semantics are spelled out (kev_from/kev_to bounds and implied kev=1, sighted window meaning, automatable tri-state, bod exposure mapping plus the enumeration-date caveat, watch tiers, ssvc=0 meaning 'no assessment held'). This adds substantial meaning the schema alone lacks.

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

Purpose4/5

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

Opens with 'Search the catalog' and immediately clarifies it is free-text and structured filtering over CVEs via the enumerated facets, so the verb+resource is discernible. It even routes package-range needs to query_package, giving partial sibling differentiation. The only weakness is that 'the catalog' is never named as a CVE catalog explicitly.

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

Usage Guidelines3/5

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

There is one explicit alternative ('for ranges use query_package') and an implicit usage hint ('filter-only queries return the /browse slice'). However there is no clear statement of when to reach for this tool versus get_cve, get_chains, or table1_read, so usage is implied rather than specified.

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

table1_readA
Read-onlyIdempotent
Inspect

BOD 26-04 Table 1 read for up to 50 CVEs at a stated asset exposure. Per CVE this dataset supplies CISA KEV status and due date, CISA's SSVC Automatable and Technical impact (Vulnrichment) and CISA's forensic triage flag on the KEV entry; you supply exposure for the asset (yes, no, or unknown, which returns both branches). Each item carries the Table 1 row and timeline for the stated exposure, both branches, kev_feed (which branch reproduces CISA's due date and flag pair, if any) and the fix and detection state held, lanes listed separately. A row is a mapping; an agency's timeline for an asset also needs the agency's own enumeration date, so no date is returned beyond CISA's KEV due date. basis says where the values came from: cisa_ssvc, cisa_interim (a CVE outside KEV with no CISA assessment held takes CISA's interim values) or kev_unassessed (a KEV entry with no values held gets no rows).

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesCVE ids, such as CVE-2024-3400 (1 to 50)
exposureNoWhether the asset is publicly exposed, the agency's own per-asset value; unknown returns both branches

TDQS

A4.8/5.0
Behavior5/5

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

Even though annotations already declare readOnlyHint and idempotentHint, the description adds substantial behavioral detail beyond that: it explains that unknown exposure returns both branches, that kev_feed indicates which branch reproduces CISA's due date, that a row is a mapping and no agency enumeration date is returned, and the meaning of basis values. This is extra transparency about what the tool actually does and returns.

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 a single dense paragraph, but it is efficiently front-loaded with the essential purpose first, then expands into details that each earn their place. No filler or repetition exists. The flow from purpose to data provided to field clarifications is logical and compact given the complexity of the tool.

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 moderate complexity and the absence of an output schema, the description covers all necessary aspects: the input parameters, the returned fields (KEV status, due date, SSVC values, triage flag, row, timeline, kev_feed, fix/detection state, lanes), the basis explanation, and a key limitation (no agency enumeration date). An agent has enough context to invoke the tool correctly.

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?

The schema already covers 100% of the parameters with descriptions, but the description adds significant semantic nuance: it explains the effect of exposure values (yes/no/unknown, with unknown returning both branches), the max count of 50 CVEs, and what the 'basis' field means relative to each CVE's status. This goes well beyond the schema's basic descriptions.

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 opens with 'BOD 26-04 Table 1 read for up to 50 CVEs at a stated asset exposure,' which clearly states the verb (read), the specific resource (BOD 26-04 Table 1), and the scope. It distinguishes the operation from sibling tools like search_cves or get_cve by focusing on a specific BOD dataset and the exposure parameter.

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 clearly implies when to use it: to read Table 1 data for a set of CVEs given an asset exposure. It does not explicitly state when not to use it or name alternative tools, but the context is unambiguous. It explains the inputs and behavior sufficiently for an agent to decide it is the right tool for BOD 26-04 table reads.

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. 1 tool update
    • Changedsearch_cves1 field changed
      • changedInput schema / properties / chainability / description
        Previous value: -"On KCV Watch™: the CVE carries at least one chain candidate, a same-product pair whose extracted exploit capabilities connect, derived from exploit-capability analysis; a candidate is not a confirmed chain"New value: +"On KCV Watch™: the CVE carries at least one chain candidate at tier A or B, a pair whose extracted exploit capabilities connect or whose records tie the two CVEs together; a candidate is not a confirmed chain"
  2. 1 tool update
    • Changedget_chains1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Evidence lane: vulncheck_kev, metasploit, sigma, press, research, academic, community, github_poc or exploitdb"New value: +"Evidence lane: vulncheck_kev, metasploit, sigma, press, research, academic, community, github_poc, exploitdb or exploit_code"
  3. 2 tool updates
    • Changedget_updates1 field changed
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "first_published",
        -  "kev_added",
        -  "detection_added",
        -  "remediation_added",
        -  "first_sighted",
        -  "chain_added"
        -]New value: +[
        +  "first_published",
        +  "kev_added",
        +  "detection_added",
        +  "remediation_added",
        +  "first_sighted",
        +  "chain_added",
        +  "ssvc_changed",
        +  "kev_due_changed",
        +  "kev_triage_flag_changed",
        +  "kev_notes_changed"
        +]
    • Changedsearch_cves5 fields changed
      • addedInput schema / properties / bod
        Added value: +{
        +  "description": "BOD 26-04 Table 1 read at the stated exposure: a mapping of KEV status and CISA SSVC values to a timeline key at that exposure",
        +  "enum": [
        +    "3df",
        +    "3d",
        +    "14d",
        +    "60d",
        +    "fsu"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / exposed
        Added value: +{
        +  "description": "The exposure branch for bod: 1 publicly exposed (default), 0 internal",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / ssvc
        Added value: +{
        +  "description": "Whether this dataset holds a CISA SSVC assessment for the CVE",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / ti
        Added value: +{
        +  "description": "CISA SSVC Technical impact, for CVEs with a CISA assessment held",
        +  "enum": [
        +    "total",
        +    "partial"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / triage_flag
        Added value: +{
        +  "description": "CISA's forensic triage flag on the KEV entry (BOD 26-04)",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
  4. 1 tool update
    • Addedtable1_read
  5. 1 tool update
    • Changedget_chains1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Evidence lane: vulncheck_kev, metasploit, sigma, press, research, community, github_poc or exploitdb"New value: +"Evidence lane: vulncheck_kev, metasploit, sigma, press, research, academic, community, github_poc or exploitdb"
  6. 1 tool update
    • Changedsearch_cves2 fields changed
      • changedInput schema / properties / chainability / description
        Previous value: -"KCV Watch™ tier: a structural pattern (same product, published within 365 days or within 30 days inside the largest products, complementary weakness class) published with its measured rate; a tier is not a confirmed chain"New value: +"On KCV Watch™: the CVE carries at least one chain candidate, a same-product pair whose extracted exploit capabilities connect, derived from exploit-capability analysis; a candidate is not a confirmed chain"
      • changedInput schema / properties / chainability / enum
        Previous value: -[
        -  "1",
        -  "2",
        -  "3"
        -]New value: +[
        +  "0",
        +  "1"
        +]
  7. 1 tool update
    • Changedsearch_cves1 field changed
      • changedInput schema / properties / chainability / description
        Previous value: -"KCV Watch™ tier: a structural pattern (same product, published within 30 or 90 days, complementary weakness class) published with its measured rate; a tier is not a confirmed chain"New value: +"KCV Watch™ tier: a structural pattern (same product, published within 365 days or within 30 days inside the largest products, complementary weakness class) published with its measured rate; a tier is not a confirmed chain"
  8. 1 tool update
    • Changedsearch_cves1 field changed
      • changedInput schema / properties / chainability / description
        Previous value: -"Chainability™ watch tier: a structural pattern (same product, published within 30 or 90 days, complementary weakness class) published with its measured rate; a tier is not a confirmed chain"New value: +"KCV Watch™ tier: a structural pattern (same product, published within 30 or 90 days, complementary weakness class) published with its measured rate; a tier is not a confirmed chain"
  9. 3 tool updates
    • Addedget_chains
    • Changedget_updates1 field changed
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "first_published",
        -  "kev_added",
        -  "detection_added",
        -  "remediation_added",
        -  "first_sighted"
        -]New value: +[
        +  "first_published",
        +  "kev_added",
        +  "detection_added",
        +  "remediation_added",
        +  "first_sighted",
        +  "chain_added"
        +]
    • Changedsearch_cves2 fields changed
      • addedInput schema / properties / chainability
        Added value: +{
        +  "description": "Chainability™ watch tier: a structural pattern (same product, published within 30 or 90 days, complementary weakness class) published with its measured rate; a tier is not a confirmed chain",
        +  "enum": [
        +    "1",
        +    "2",
        +    "3"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / chained
        Added value: +{
        +  "description": "In a known exploit chain: a cited source reports the CVE was used together with another CVE in one exploit chain",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
  10. 1 tool update
    • Changedsearch_cves2 fields changed
      • addedInput schema / properties / malware
        Added value: +{
        +  "description": "A published source ties a named malware family, tool, campaign or ransomware group to the CVE",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / watch
        Added value: +{
        +  "description": "On KEV Watch at tier 1 or 2: reported as exploited by trackers other than CISA, outside CISA KEV",
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
  11. 3 tool updates
    • Addedget_sightings
    • Changedget_updates1 field changed
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "first_published",
        -  "kev_added",
        -  "detection_added",
        -  "remediation_added"
        -]New value: +[
        +  "first_published",
        +  "kev_added",
        +  "detection_added",
        +  "remediation_added",
        +  "first_sighted"
        +]
    • Changedsearch_cves1 field changed
      • addedInput schema / properties / sighted
        Added value: +{
        +  "description": "Field sighting window in days: a named sensor network recorded the CVE within the last 7 or 30 days",
        +  "enum": [
        +    "7",
        +    "30"
        +  ],
        +  "type": "string"
        +}
  12. 4 tool updates
    • Changedget_cve1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"CVE id, e.g. CVE-2024-3400"New value: +"CVE id, such as CVE-2024-3400"
    • Changedget_updates1 field changed
      • changedInput schema / properties / cve / description
        Previous value: -"Scope to one CVE's change history, e.g. CVE-2024-3400"New value: +"Scope to one CVE's change history, such as CVE-2024-3400"
    • Changedquery_package2 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"Package name, verbatim (e.g. @babel/core, org.jenkins-ci.main:jenkins-core)"New value: +"Package name, verbatim (for example @babel/core or org.jenkins-ci.main:jenkins-core)"
      • changedInput schema / properties / purl / description
        Previous value: -"Package URL, e.g. pkg:npm/lodash or pkg:maven/org.apache.logging.log4j/log4j-core"New value: +"Package URL, such as pkg:npm/lodash or pkg:maven/org.apache.logging.log4j/log4j-core"
    • Changedsearch_cves2 fields changed
      • changedInput schema / properties / kev_vendor / description
        Previous value: -"CISA's vendorProject, verbatim (e.g. 'Palo Alto Networks')"New value: +"CISA's vendorProject, verbatim (for example 'Palo Alto Networks')"
      • changedInput schema / properties / technique / description
        Previous value: -"ATT&CK technique id, e.g. T1190 or T1059.001"New value: +"ATT&CK technique id, such as T1190 or T1059.001"
  13. 1 tool update
    • Changedsearch_cves3 fields changed
      • addedInput schema / properties / kev_from
        Added value: +{
        +  "description": "ISO day, inclusive lower bound on the CISA listing date",
        +  "type": "string"
        +}
      • addedInput schema / properties / kev_to
        Added value: +{
        +  "description": "ISO day, exclusive upper bound on the CISA listing date",
        +  "type": "string"
        +}
      • addedInput schema / properties / kev_vendor
        Added value: +{
        +  "description": "CISA's vendorProject, verbatim (e.g. 'Palo Alto Networks')",
        +  "type": "string"
        +}
  14. 1 tool update
    • Changedget_updates1 field changed
      • addedInput schema / properties / cve
        Added value: +{
        +  "description": "Scope to one CVE's change history, e.g. CVE-2024-3400",
        +  "type": "string"
        +}
  15. 1 tool update
    • Addedget_epss_movers
  16. 1 tool update
    • Changedsearch_cves2 fields changed
      • addedInput schema / properties / automatable
        Added value: +{
        +  "enum": [
        +    "0",
        +    "1"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / technique
        Added value: +{
        +  "description": "ATT&CK technique id, e.g. T1190 or T1059.001",
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides CVE lookup, search, and exploit intelligence from public vulnerability sources (NVD, CISA KEV, EPSS) for AI agents to produce remediation guidance without consuming LLM tokens for data fetching.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time vulnerability intelligence including CVE lookup, EPSS exploit probability, and CISA KEV status from free APIs, enabling AI assistants to prioritize CVEs by real-world risk.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources