Skip to main content
Glama

first-epss-mcp-server

Epss Get Timeseries

epss_get_timeseries
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
cvesYesOne to 5000 CVE identifiers; whitespace, comma or semicolon-delimited strings are also accepted.
dateNoUTC date YYYY-MM-DD from 2021-04-14 through today; omitted or blank selects latest available data.
batchOffsetNoResume in first-occurrence normalized unique input order; resubmit the original cves, returned score date and original policy/severity inputs.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
itemsNoDerived trajectories ordered by anchor EPSS descending then CVE.
noticeNoMissing-data, deferred-work or model-metadata caveats.
provenanceNoSource and model attribution.
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.
unscoredCvesNoRetained processed identifiers without scores, in request order.
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

A3.7/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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

The first sentence states a specific verb and resource: 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.

Usage Guidelines3/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.