Skip to main content
Glama

first-epss-mcp-server

Epss Prioritize Cves

epss_prioritize_cves
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
cvesYesOne to 5000 CVEs with optional caller severity; process up to 500 unique identifiers from batchOffset.
dateNoUTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data.
likelihoodNoSelect one likelihood metric and threshold; omitted uses EPSS >= 0.10.
batchOffsetNoResume in first-occurrence normalized unique input order; resubmit the original cves, returned score date and original policy/severity inputs.
severityThresholdNoInclusive high severity threshold, default 7.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
tiersNoPolicy tiers, each sorted by EPSS, CVSS descending then CVE ascending.
noticeNoMissing-data, deferred-work or model-metadata caveats.
epssOnlyNoScored CVEs without caller severity; never classified as low severity.
provenanceNoSource and model attribution.
thresholdsNoApplied policy conventions, not FIRST recommendations.
batchOffsetNoStarting offset in the original normalized unique input.
deferredCvesNoNever-queried identifiers beyond this call workload cap; complete unless deferredCvesComplete is false. Resume using nextBatchOffset and the original submission.
unscoredCvesNoProcessed identifiers without EPSS, preserving supplied severity.
withheldCvesNoAlready processed identifiers withheld by the byte budget, in original input order; may be a preview.
budgetLimitedNoTrue when whole entries or accounting lists were shortened to fit the serialized response budget.
deferredCountNoIdentifiers beyond this call workload cap, not queried.
returnedCountNoProcessed identifiers whose complete score, history or unscored entry is included.
withheldCountNoProcessed identifiers withheld by the response byte budget; queried valid entries are included in processedCount.
duplicateCountNoDuplicate submitted entries removed.
processedCountNoUnique identifiers processed, including invalid formats.
requestedCountNoUnique normalized identifiers submitted.
nextBatchOffsetNoResume with this batchOffset and the original cves, returned date and original severity/policy inputs.
deferredCvesCompleteNoTrue when deferredCves includes every never-queried deferred identifier.
withheldCvesCompleteNoTrue when withheldCves includes every withheld identifier.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.