Build with cve.new.
Vulnerability context for your agent, your app, and your workflow. Pick an interface and start building.
Connect your coding agent
Add cve.new to an MCP-compatible client using this remote Streamable HTTP configuration:
{
"mcpServers": {
"cve-new": {
"url": "https://cve.new/mcp"
}
}
}get_vulnerabilityBring a CVE, GHSA, or OSV identifier into the conversation, with the original evidence.
list_feedGive your agent a focused feed using the same query filters as the HTTP catalog.
check_stackCheck up to 100 exact package versions, or a supported lockfile within that limit, directly from your agent. No report is stored.
HTTP API
Query the public catalog without an account. Responses are JSON, and list endpoints return entries, nextCursor, and revision.
GET https://cve.new/api/v1/entries?severity=critical&ecosystem=npm
GET https://cve.new/api/v1/entries/CVE-2021-44228
GET https://cve.new/api/v1/status
GET https://cve.new/api/v1/stats
GET https://cve.new/api/v1/packages?q=next
GET https://cve.new/api/v1/entries?ecosystem=npm&package=next Filters support q, severity, ecosystem, and knownExploited=true. Multiple values within a field are combined with OR; different fields are combined with AND. Use repeated parameters or comma-separated values.
Pass nextCursor as cursor without changing filters. Pagination continues during imports. Results are a live view, not a fixed snapshot: updated advisories can move in the ordering. Deduplicate by advisory ID and refresh the first page for the newest results. Page sizes are between 1 and 100.
Search also matches advisory aliases and affected package names. Use package with one ecosystem for an exact package filter. Additional filters: noCve=true, kind=vulnerability|malware, and sort=published|modified|severity. Malware reports are identified by MAL source identifiers; missing CVE identifiers do not imply a CVE is pending.
Package pages include npm registry metadata and up to 40 recent dated releases. Other ecosystems currently show advisory evidence and exact-version checks where supported. Registry metadata is publisher-declared; attestations are displayed as recorded, not independently verified. Registry history requests are bounded to 8 MB.
Exact package checks
POST /api/v1/packages/check accepts a JSON object with ecosystem, name, and an exact version. It sends that identity to OSV and stores no report. Results include matches, checkedAt, failures, and complete. Incomplete checks and missing registry entries must not be interpreted as safe. Rate limits apply.
{ "ecosystem": "npm", "name": "lodash", "version": "4.17.20" }Feeds
GET https://cve.new/feed
GET https://cve.new/feed?severity=critical&format=atom
GET https://cve.new/feed?ecosystem=packagist&format=jsonRSS is the default. Atom and JSON Feed are available through the format parameter. Public feeds support ETag validators. Private stack feeds never enter a shared cache.
Agent-ready from the first request
Agents can discover the public API through the API catalog, read its OpenAPI description, or connect using the MCP server card. Our skill index includes a SHA-256 digest so clients can verify the downloaded instructions.
Request the homepage, catalog, package pages, or an advisory with Accept: text/markdown for a concise Markdown view. Start with the agent guide for query examples and coverage guidance. Compatible browsers also expose read-only WebMCP tools for advisory searches, lookups, and source status. Browser support is still experimental.
Start without an account, OAuth, or payment. Public discovery and Markdown views exclude private reports. Discovery metadata tells your agent which capabilities are available; it does not establish complete source coverage or package safety.
Read access and authentication guidance for request limits and private report access. Our Poppy manifest declares ordinary website browsing under draft 0.3. It does not offer authenticated Poppy sessions; use the public API or MCP endpoint directly.
Dependency reports
Supported formats: package-lock.json (v1–3), npm-shrinkwrap.json, pnpm-lock.yaml (v5, v6, v9), Yarn Classic and modern yarn.lock, composer.lock, Cargo.lock, and poetry.lock. Non-registry and unsupported resolutions are listed as unchecked.
POST https://cve.new/api/v1/reports
Content-Type: text/plain
X-Lockfile-Name: composer.lock
<raw lockfile contents>The response returns a report token and a separate management key. Save the management key; it cannot be recovered. Files are limited to 2 MB and reports to 2,000 package versions. Uploads are rate limited.
Read the report at /api/v1/reports/:token. Delete it with DELETE and Authorization: Bearer <management key>. Reports expire after 30 days. A partial check is never an all-clear.
Errors
Errors include an HTTP status, a readable explanation, and a stable data.code when caused by a domain validation error. Retry upstream failures with backoff. Refresh expired cursors and correct invalid input before retrying.