first-epss-mcp-server
Server Details
Look up FIRST EPSS scores and daily history, find CVEs by threshold, and prioritize them with CVSS.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/first-epss-mcp-server
- GitHub Stars
- 1
- Server Listing
- first-epss-mcp-server
TDQS
Scored across 5 tools
Each tool has a distinct role: score lookup for supplied CVEs, historical timeseries, static reference, tier assignment, and threshold-based discovery. The main potential confusion is between epss_get_scores (lookup by known CVEs) and epss_query_threshold (discovery by bounds), but the descriptions make the inbound-vs-discovery distinction clear.
All tools use a consistent 'epss_' prefix followed by verb_noun (get_scores, get_timeseries, list_reference, prioritize_cves, query_threshold). The verb choices vary meaningfully but the pattern is predictable and uniform.
Five tools is tight and well-scoped for an EPSS data server. Each tool covers a distinct capability (lookup, history, reference, prioritization, discovery) with no redundancy.
The surface covers the full EPSS domain: current and dated scores, historical timeseries, interpretation guidance, remediation prioritization, and threshold discovery. No obvious operation is missing for this data-centric purpose.
Available Tools
5 toolsepss_get_scoresEpss Get ScoresARead-onlyIdempotentInspect
Retrieve latest available or historically dated FIRST EPSS probability and percentile for supplied CVEs. Process up to 500 unique entries from batchOffset; response byte limits can return fewer whole entries. Resume with nextBatchOffset as batchOffset, the original cves and returned score date as date. deferredCves were not queried; withheldCves were processed but omitted, and either list can be a declared preview. Missing scores remain unknown; use epss_list_reference for coverage and interpretation.
| Name | Required | Description | Default |
|---|---|---|---|
| cves | Yes | One to 5000 CVE identifiers; whitespace, comma or semicolon-delimited strings are also accepted. | |
| date | No | UTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data. | |
| batchOffset | No | Resume in first-occurrence normalized unique input order; resubmit the original cves, returned score date and original policy/severity inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Missing-data, deferred-work or model-metadata caveats. |
| scores | No | Forecasts ordered by EPSS descending then CVE. |
| provenance | No | Source and model attribution. |
| batchOffset | No | Starting offset in the original normalized unique input. |
| deferredCves | No | Never-queried identifiers beyond this call workload cap; complete unless deferredCvesComplete is false. Resume using nextBatchOffset and the original submission. |
| unscoredCves | No | Retained processed identifiers without scores, in request order. |
| withheldCves | No | Already processed identifiers withheld by the byte budget, in original input order; may be a preview. |
| budgetLimited | No | True when whole entries or accounting lists were shortened to fit the serialized response budget. |
| deferredCount | No | Identifiers beyond this call workload cap, not queried. |
| returnedCount | No | Processed identifiers whose complete score, history or unscored entry is included. |
| withheldCount | No | Processed identifiers withheld by the response byte budget; queried valid entries are included in processedCount. |
| duplicateCount | No | Duplicate submitted entries removed. |
| processedCount | No | Unique identifiers processed, including invalid formats. |
| requestedCount | No | Unique normalized identifiers submitted. |
| nextBatchOffset | No | Resume with this batchOffset and the original cves, returned date and original severity/policy inputs. |
| deferredCvesComplete | No | True when deferredCves includes every never-queried deferred identifier. |
| withheldCvesComplete | No | True when withheldCves includes every withheld identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: discloses the 500-unique-entry processing cap, that response byte limits can return fewer whole entries, the exact resume protocol, and the semantics of deferredCves, withheldCves, previews, and unknown scores. These are non-obvious batch behaviors an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It leads with the core purpose and then packs pagination, response-partitioning, and alternative-tool guidance into short clauses without filler. It is dense – several concepts per sentence – but every sentence carries operational information for a batch tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still explains the response partitioning (deferred/withheld/missing) and how to continue iterating, which is exactly the extra context an agent needs for a paginated batch call. Nothing required to invoke or resume it correctly is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds real meaning: batchOffset is a resume cursor into first-occurrence normalized unique order, capped at 500 processed entries, and must be paired with the original cves and returned score date. That constrains usage in a way the schema's plain integer description does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) and resource (FIRST EPSS probability and percentile) for supplied CVEs, and immediately scopes it to either latest or historically dated data. This distinguishes it from epss_get_timeseries (temporal series) and from epss_list_reference, which it names as the coverage/interpretation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operational guidance: resume with nextBatchOffset as batchOffset, resubmit original cves and returned score date, and use epss_list_reference for coverage and interpretation. It does not explicitly say when to prefer epss_get_timeseries or epss_prioritize_cves instead, so the sibling routing is partial rather than complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_get_timeseriesEpss Get TimeseriesARead-onlyIdempotentInspect
Retrieve an EPSS anchor and up to 30 preceding daily observations for up to 50 unique CVEs from batchOffset. Response byte limits retain whole history items. Resume CVE batches with nextBatchOffset as batchOffset, the original cves and returned score date as date; withheldCves were processed, deferredCves were not queried, and lists can be declared previews. Exact 7-day and 30-day deltas require their calendar baselines; gaps remain unknown. Model boundaries do not explain score movement. Re-anchor using previousAnchorDate for the preceding history window; that snapshot may be unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| cves | Yes | One to 5000 CVE identifiers; whitespace, comma or semicolon-delimited strings are also accepted. | |
| date | No | UTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data. | |
| batchOffset | No | Resume in first-occurrence normalized unique input order; resubmit the original cves, returned score date and original policy/severity inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| items | No | Derived trajectories ordered by anchor EPSS descending then CVE. |
| notice | No | Missing-data, deferred-work or model-metadata caveats. |
| provenance | No | Source and model attribution. |
| batchOffset | No | Starting offset in the original normalized unique input. |
| deferredCves | No | Never-queried identifiers beyond this call workload cap; complete unless deferredCvesComplete is false. Resume using nextBatchOffset and the original submission. |
| unscoredCves | No | Retained processed identifiers without scores, in request order. |
| withheldCves | No | Already processed identifiers withheld by the byte budget, in original input order; may be a preview. |
| budgetLimited | No | True when whole entries or accounting lists were shortened to fit the serialized response budget. |
| deferredCount | No | Identifiers beyond this call workload cap, not queried. |
| returnedCount | No | Processed identifiers whose complete score, history or unscored entry is included. |
| withheldCount | No | Processed identifiers withheld by the response byte budget; queried valid entries are included in processedCount. |
| duplicateCount | No | Duplicate submitted entries removed. |
| processedCount | No | Unique identifiers processed, including invalid formats. |
| requestedCount | No | Unique normalized identifiers submitted. |
| nextBatchOffset | No | Resume with this batchOffset and the original cves, returned date and original severity/policy inputs. |
| deferredCvesComplete | No | True when deferredCves includes every never-queried deferred identifier. |
| withheldCvesComplete | No | True when withheldCves includes every withheld identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, and the description goes well beyond that: byte limits that retain whole history items, the distinction between withheldCves (processed) and deferredCves (not queried), previews, and the caveat that re-anchoring snapshots may be unavailable. The one weakness is that it says 'up to 50 unique CVEs' while the schema accepts maxItems 5000, which leaves batch size ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the rest is a dense run-on chain of jargon-heavy clauses ('Response byte limits retain whole history items', 'Model boundaries do not explain score movement') that packs many distinct facts without structure. Nothing is wasteful per se, but readability suffers and key limits are buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paged, read-only, open-world tool with an output schema, the description supplies the resume protocol, partial-result semantics, and the re-anchor fallback, which is close to complete. The unresolved '50 unique CVEs' versus schema maxItems 5000 mismatch is the main gap an agent would want clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real semantics: batchOffset is a first-occurrence normalized-order resume key that must be paired with the original cves and returned score date, and date refers to the returned score date when resuming. It also describes response fields (nextBatchOffset, withheldCves, deferredCves) that are not in the input schema, which is useful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: retrieve an EPSS anchor plus up to 30 preceding daily observations for CVEs, batched via batchOffset. That clearly distinguishes it as a time-series tool. It never names any sibling (epss_get_scores, epss_query_threshold) as an alternative, so differentiation from siblings is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resume instructions ('Resume CVE batches with nextBatchOffset as batchOffset...') and by re-anchoring guidance, but there is no explicit statement of when to choose this over epss_get_scores or epss_query_threshold. An agent must infer that this is for history/deltas while siblings return point scores.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_list_referenceEpss List ReferenceARead-onlyIdempotentInspect
Explain FIRST EPSS interpretation, model publishing dates, lookup coverage and transparent prioritization policy. Use this static reference before interpreting missing scores, score movement or probability versus percentile thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | interpretation: score meaning; models: publishing history; coverage: limits and missing data; prioritization: tier policy; all: every topic. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| topics | No | Selected reference topics. |
| verifiedAt | No | Primary-source verification date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds genuinely new context beyond that: the content is static reference material rather than live EPSS data, and it enumerates the four subject areas returned, which tells the agent to expect documentation, not scores.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste; the 'what it explains' clause comes first and the usage trigger second. Slightly dense enumeration of topics, but everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explanation is unnecessary, and the single optional parameter defaulting to 'all' is documented in the schema. The description covers purpose, static nature, and usage timing; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum's own description already explains every topic value ('interpretation: score meaning; models: publishing history...'). The description adds no per-topic semantics beyond that, so the schema carries the load and a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it explains EPSS interpretation, model publishing dates, coverage limits, and prioritization policy, and calls itself a 'static reference'. That is clearly differentiated in spirit from the data-returning siblings (epss_get_scores, epss_get_timeseries, epss_prioritize_cves, epss_query_threshold), though none are named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this static reference before interpreting missing scores, score movement or probability versus percentile thresholds' gives a concrete trigger condition tied to the sibling tools' outputs. It stops short of stating when not to use it (e.g. 'do not call for live scores'), which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_prioritize_cvesEpss Prioritize CvesARead-onlyIdempotentInspect
Assign remediation tiers using latest or dated EPSS and caller-supplied CVSS base severity. Defaults are severity >= 7 and EPSS probability >= 0.10; select percentile explicitly for population rank. Missing severity stays in epssOnly and missing EPSS stays unscored. Thresholds are policy conventions, not FIRST guidance. Process up to 500 unique entries from batchOffset, returning whole entries within the byte budget. Resume using nextBatchOffset as batchOffset, the original cves with original cvssBaseScore values, returned score date as date, and the same severityThreshold and likelihood. Deferred lists may be declared previews; withheldCves were already processed.
| Name | Required | Description | Default |
|---|---|---|---|
| cves | Yes | One to 5000 CVEs with optional caller severity; process up to 500 unique identifiers from batchOffset. | |
| date | No | UTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data. | |
| likelihood | No | Select one likelihood metric and threshold; omitted uses EPSS >= 0.10. | |
| batchOffset | No | Resume in first-occurrence normalized unique input order; resubmit the original cves, returned score date and original policy/severity inputs. | |
| severityThreshold | No | Inclusive high severity threshold, default 7. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| tiers | No | Policy tiers, each sorted by EPSS, CVSS descending then CVE ascending. |
| notice | No | Missing-data, deferred-work or model-metadata caveats. |
| epssOnly | No | Scored CVEs without caller severity; never classified as low severity. |
| provenance | No | Source and model attribution. |
| thresholds | No | Applied policy conventions, not FIRST recommendations. |
| batchOffset | No | Starting offset in the original normalized unique input. |
| deferredCves | No | Never-queried identifiers beyond this call workload cap; complete unless deferredCvesComplete is false. Resume using nextBatchOffset and the original submission. |
| unscoredCves | No | Processed identifiers without EPSS, preserving supplied severity. |
| withheldCves | No | Already processed identifiers withheld by the byte budget, in original input order; may be a preview. |
| budgetLimited | No | True when whole entries or accounting lists were shortened to fit the serialized response budget. |
| deferredCount | No | Identifiers beyond this call workload cap, not queried. |
| returnedCount | No | Processed identifiers whose complete score, history or unscored entry is included. |
| withheldCount | No | Processed identifiers withheld by the response byte budget; queried valid entries are included in processedCount. |
| duplicateCount | No | Duplicate submitted entries removed. |
| processedCount | No | Unique identifiers processed, including invalid formats. |
| requestedCount | No | Unique normalized identifiers submitted. |
| nextBatchOffset | No | Resume with this batchOffset and the original cves, returned date and original severity/policy inputs. |
| deferredCvesComplete | No | True when deferredCves includes every never-queried deferred identifier. |
| withheldCvesComplete | No | True when withheldCves includes every withheld identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only/idempotent/open-world safety, so the description carries the real behavioral burden and does so: thresholds are policy conventions not FIRST guidance, missing severity falls into epssOnly, missing EPSS stays unscored, batching is capped at 500 unique entries with a byte budget returning whole entries, and deferred vs withheld entries are distinguished. That is exactly the context an agent needs to avoid misinterpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The policy defaults and percentile guidance are front-loaded, and nearly every sentence adds operational information. It is dense and uses internal result-field names (epssOnly, withheldCves, nextBatchOffset) without defining them in prose, which slightly raises reading cost for a first-time caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paged, policy-driven scoring tool with a full output schema, the description covers what the output schema cannot: threshold conventions, unknown-severity/unknown-EPSS disposition, batch limits, and the exact resume procedure. An agent could call and correctly paginate this tool from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3; the description adds meaning beyond the schema by restating the default policy values in operational terms and by explaining the batchOffset resume contract (resubmit original cves, score date, and same thresholds). It does not elaborate on threshold syntax beyond what the schema already documents, so it stays short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: assign remediation tiers using EPSS data plus caller-supplied CVSS severity. It clearly separates this from siblings like epss_query_threshold or epss_get_scores by framing it as a policy/tiering operation rather than a raw lookup, and it scopes the input set (up to 500 unique entries from batchOffset).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete selection guidance: defaults are severity >= 7 and EPSS >= 0.10, and 'select percentile explicitly for population rank' tells the agent when to deviate. The resume protocol is spelled out precisely. It does not, however, name a sibling tool as the alternative for simpler queries, so routing between tools is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epss_query_thresholdEpss Query ThresholdARead-onlyIdempotentInspect
Discover CVEs using inclusive EPSS or percentile bounds, CVE year or dataset-addition recency; filters intersect and at least one is required. Examine one candidate page ordered by EPSS descending. Each serialized response surface fits 65536 UTF-8 bytes; budgetLimited and withheldCount disclose whole matches withheld, with nextOffset at the first withheld match. Year filtering can return an empty page with nextOffset; candidateTotal is a broad-query total, not an exact-year total. Continue with the same filters, limit, returned score date and nextOffset.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | UTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data. | |
| year | No | Exact CVE year from 1999 through the current UTC year; candidate pages may contain no matches. | |
| limit | No | Requested candidates per page; positive safe integers above 10000 are clamped to 10000 before exact-year filtering. | |
| offset | No | Candidate-space offset; use returned nextOffset for continuation. | |
| maxEpss | No | Inclusive maximum EPSS probability. | |
| minEpss | No | Inclusive minimum EPSS probability. | |
| maxPercentile | No | Inclusive maximum population percentile rank. | |
| minPercentile | No | Inclusive minimum population percentile rank. | |
| addedWithinDays | No | Dataset-addition recency relative to upstream present, independent of historical date. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Missing-data, deferred-work or model-metadata caveats. |
| scores | No | Retained records from this candidate page. |
| filters | No | Applied filters; combine with provenance scoreDates to pin continuation. |
| pagination | No | Candidate pagination accounting. |
| provenance | No | Snapshot source and model metadata, including dates from filtered-out candidates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the readOnly/idempotent/openWorld annotations: it discloses the 65536-byte response cap, the budgetLimited and withheldCount fields, nextOffset pointing at the first withheld match, empty pages under year filtering, and the broad-query nature of candidateTotal. That is exactly the operational context an agent cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and the filter-intersection rule, then moves to paging and caveats. Dense and every sentence carries information, though the phrasing is packed tightly enough to require a re-read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter filtered/paginated tool with an output schema, it covers the pieces the schema cannot: pagination continuation protocol, byte-budget truncation signals, and the year-filter empty-page trap. An agent can call and page it correctly from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 earns more by explaining cross-parameter behavior the schema cannot: filters intersect, at least one is required, limit clamping above 10000 happens before year filtering, and offset must come from nextOffset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Discover CVEs' with inclusive EPSS/percentile bounds, year, or recency filters. It is clearly a threshold-based discovery tool, distinguishable from get_scores/timeseries/prioritize siblings by implication, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real selection rule — filters intersect and at least one is required — plus continuation instructions. But it never says when to reach for this instead of epss_get_scores or epss_prioritize_cves, leaving the sibling choice to inference.
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.
5 tool updates
- First observed
epss_get_scores - First observed
epss_get_timeseries - First observed
epss_list_reference - First observed
epss_prioritize_cves - First observed
epss_query_threshold
Related MCP Connectors
Is a CVE exploited? CISA KEV, FIRST EPSS, CVSS and SSVC with a patch-first verdict. Free, no key.
Defensive vulnerability intelligence search across public CVE/NVD and GitHub advisory APIs with CVSS
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
x402 CVE triage MCP: EPSS + CISA KEV -> exploit priority, $0.01 per query.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to look up FIRST.org EPSS exploit-probability scores and percentiles for one or more CVEs, and to list the vulnerabilities most likely to be exploited in the wild within the next 30 days. This lets users prioritize patching by real-world exploit likelihood alongside CVSS severity.11 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides EPSS scores, percentiles, and time series for CVEs, along with vulnerability details from the NVD API, enabling risk assessment through natural language.-
- AlicenseAqualityBmaintenanceEnables prioritizing vulnerabilities by real-world exploitation evidence, combining CISA KEV, EPSS, CVSS, and SSVC to rank CVEs and package versions, and providing fix recommendations.42MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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
Glama MCP Gateway
Add one secure layer between your agents and this server.