vuln-priority
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vuln-priorityRank these CVEs by real-world exploit risk: CVE-2021-44228, CVE-2023-4863"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vuln Priority
Which vulnerability do I fix first? A scanner hands an agent dozens of CVEs, sorted by CVSS, and CVSS says how bad an exploit would be, not whether anyone is exploiting it. Vuln Priority ranks vulnerabilities by the evidence that predicts harm:
Tier | Rule |
| Exploited in the wild: in CISA's Known Exploited Vulnerabilities catalog, or CISA's SSVC rates exploitation "active" |
| EPSS of 0.1 or more (a 10% or greater chance of exploitation in the next 30 days), or a public exploit that SSVC rates automatable |
| EPSS of 0.01 or more, a public proof of concept, or CVSS 7 or higher |
| None of the above |
Every row says why it landed in its tier, with the KEV dates (and whether ransomware groups use it), the EPSS score and percentile, the CVSS score and CISA's SSVC decision points. Give it CVE ids, GitHub, PyPI, Go or RustSec advisory ids, or package versions straight from a lockfile: for each package it returns the worst vulnerability, and the one upgrade that fixes all of them, checked against every advisory's affected ranges (a later branch can be affected again).
No account or key needed. Built and maintained by Arhan Canli.
Install
Needs Node.js 20 or newer. No account or key.
Claude Code
claude mcp add vuln-priority -- npx -y vuln-priority-mcpClaude Desktop: download vuln-priority-mcp-<version>.mcpb from the latest release and open it. The bundle is signed; verify it with gh attestation verify <file> --repo arhancanli/vuln-priority-mcp.
Any other client (Windsurf, Zed, Cline, Continue and others), in its MCP config file:
{
"mcpServers": {
"vuln-priority": {
"command": "npx",
"args": [
"-y",
"vuln-priority-mcp"
]
}
}
}Docker
docker build -t vuln-priority-mcp https://github.com/arhancanli/vuln-priority-mcp.git && docker run -i --rm vuln-priority-mcpHosted (Streamable HTTP): node src/server.mjs --http serves stateless MCP at POST /mcp (port from PORT, default 3000).
Related MCP server: CVE Intelligence MCP Server
Example
An agent calls prioritize_vulns with:
{
"ids": [
"CVE-2021-44228",
"CVE-2023-4863",
"CVE-2024-3094",
"CVE-2020-8203",
"GHSA-jfh8-c2jp-5v3q",
"CVE-2019-10744",
"CVE-2099-99999",
"not an id"
]
}and gets back (recorded from the live server on 2026-09-26):
{
"counts": {
"act_now": 3,
"high": 1,
"medium": 2,
"unknown": 2
},
"results": [
{
"id": "CVE-2021-44228",
"tier": "act_now",
"why": "in CISA KEV since 2021-12-10, used by ransomware",
"kev_added": "2021-12-10",
"kev_due": "2021-12-24",
"ransomware": true,
"epss": 0.99999,
"epss_percentile": 1,
"cvss": 10,
"severity": "critical",
"ssvc": "active/yes/total",
"name": "Apache Log4j2 Remote Code Execution Vulnerability"
},
{
"id": "GHSA-jfh8-c2jp-5v3q",
"cve": "CVE-2021-44228",
"tier": "act_now",
"why": "in CISA KEV since 2021-12-10, used by ransomware",
"kev_added": "2021-12-10",
"kev_due": "2021-12-24",
"ransomware": true,
"epss": 0.99999,
"epss_percentile": 1,
"cvss": 10,
"severity": "critical",
"ssvc": "active/yes/total",
"name": "Apache Log4j2 Remote Code Execution Vulnerability"
},
{
"id": "CVE-2023-4863",
"tier": "act_now",
"why": "in CISA KEV since 2023-09-13",
"kev_added": "2023-09-13",
"kev_due": "2023-10-04",
"epss": 0.99979,
"epss_percentile": 0.9998,
"cvss": 8.8,
"severity": "high",
"ssvc": "active/no/total",
"name": "Google Chromium WebP Heap-Based Buffer Overflow Vulnerability"
},
{
"id": "CVE-2024-3094",
"tier": "high",
"why": "EPSS 0.85974: 86% chance of exploitation within 30 days; not in CISA KEV",
"epss": 0.85974,
"epss_percentile": 0.9972,
"cvss": 10,
"severity": "critical",
"ssvc": "none/yes/total",
"name": "Xz: malicious code in distributed source"
... (29 more lines)Tools
Tool | What it does |
| Checks up to 50 package versions (npm, PyPI, Go, Maven, crates.io, RubyGems, NuGet, Packagist, Pub, Hex) against OSV and ranks each package by its worst vulnerability (act_now, high, medium, low), with the smallest upgrade that fixes them all and each vulnerability's KEV, EPSS and CVSS. |
| Ranks up to 100 CVE or advisory ids (GHSA, PYSEC, GO, RUSTSEC) by risk of exploitation: act_now (in CISA KEV or exploited), high, medium, low. Each row gives why, KEV dates, ransomware use, EPSS, CVSS and CISA's SSVC decision. Fix first what comes first. |
| What CISA added to its Known Exploited Vulnerabilities catalog in the last N days, newest first, optionally only for a vendor or product (fortinet, chrome, exchange) or only ransomware-linked. Each row: CVE, vendor, product, name, date added, federal due date, EPSS. |
| Everything about one CVE or advisory id: priority tier and why, description, CWE, CVSS vector, CISA SSVC, KEV entry (required action, due date, ransomware), EPSS, affected products and versions, affected packages with fixed versions, and the key references (patches first). |
How it behaves
Read-only: no tool changes anything outside this process. Package names and versions go to OSV, CVE ids to FIRST and the CVE Program; nothing about your project is sent anywhere else.
Network: HTTPS only, to the hosts listed in
package.jsonunderfactory.allowHosts, with a deadline, a size cap and bounded retries. Nothing else is contacted, and nothing is logged except unexpected failures (to stderr, without your inputs).The KEV catalog is kept for three hours, other answers for 30 minutes. CVE records come from the CVE Program's GitHub copy (about 0.2 s each), and from its API for records too new for the copy.
When OSV lists one CVE under several databases (a GHSA and a PYSEC advisory for the same Django flaw), it is one row, the GitHub advisory first, with the other ids under
also.Results are compact JSON with a matching output schema, worst first. Lists say how many items were left out.
Data sources
CISA Known Exploited Vulnerabilities (public domain), with its GitHub mirror as a fallback.
FIRST EPSS, the Exploit Prediction Scoring System, updated daily.
CVE records from the CVE Program, including CISA's Vulnrichment container (CVSS where the reporting organisation gave none, and SSVC decision points).
OSV, the open source vulnerability database (GitHub Advisories, PyPA, Go, RustSec and more), for package versions and fixes.
Tiers are a starting point for your own policy: CISA's SSVC guidance and FIRST's EPSS guidance describe how to set thresholds for your environment.
Benchmark
Measured 2026-09-26 with gpt-5.4-mini, 12 fixed tasks graded by fixed checks (bench/tasks.json, raw results in bench/results/).
Server | Correct | Input tokens | Output tokens | Tool calls | Median time |
This server | 12/12 | 25253 | 530 | 12 | 3.0 s |
mukul975/cve-mcp-server, the most-starred vulnerability server (28 tools) | 7/12 | 130333 | 1174 | 34 | 3.4 s |
The same tasks against cve-mcp (41 tools), in a separate run: 10/12 correct with 222,717 input tokens, against 12/12 and 25,253 for this server (bench/results/2026-09-26-gpt-5.4-mini-cve-mcp.json).
mukul975/cve-mcp-server ran from its repository at commit d666bac with the MCP Python SDK pinned
below 2: its default install fails on SDK 2, where FastMCP was renamed.
Performance
Measured 2026-09-26 from Dubai, home connection against the live upstream, Node 24.19.0 (bench/perf.json, scripts/perf.mjs in the factory).
Call | First call | Repeat | Result size |
prioritize_vulns: 8 ids (KEV, EPSS-only, advisory alias, unknown, not an id) | 2684 ms | 0.5 ms | 1,933 chars |
package_vulns: 4 packages (npm, Maven, PyPI, one clean) | 2863 ms | 3 ms | 6,102 chars |
vuln_details: CVE-2023-4863 (libwebp) | 2213 ms | 0.5 ms | 2,829 chars |
vuln_details: CVE-2024-3094 (xz, not in KEV) | 2081 ms | 0.4 ms | 1,876 chars |
vuln_details: a GHSA advisory | 1386 ms | 0.4 ms | 3,429 chars |
recent_exploited: last 30 days | 635 ms | 0.3 ms | 5,196 chars |
recent_exploited: Fortinet, ransomware only, 10 years | 647 ms | 0.5 ms | 795 chars |
recent_exploited: log4j, 10 years | 587 ms | 1.3 ms | 475 chars |
First call: a fresh server process, including the TLS connection and the upstream's own time. Repeat: the same call again, answered from the in-process cache, so it shows this server's own overhead.
Tool definitions the model reads on every turn (name, description, input schema): 2,298 characters, against 12,864 for mukul975/cve-mcp-server, the most-starred vulnerability server (28 tools). The full tool list, with the output schemas and annotations clients use to validate results, is 4,019 characters (16,964 for the alternative).
More MCP servers by Arhan Canli
Citation Check: Verifies citations: finds fabricated or mismatched references and retractions, returns clean BibTeX.
Domain Health: Email and domain checks: SPF lookup limits, DKIM keys, DMARC, DNS records, registration expiry.
Drug Label: FDA drug label answers with section citations, RxNorm name resolution, recalls and shortages.
End of Life: Is this version still supported? EOL dates, latest patch and upgrade target for 470+ products.
Internet Standards: RFC sections, status, obsoleted-by chains, errata and IANA registries for coding agents.
Package Truth: Checks packages exist before install: version, deprecation, vulnerabilities, licence. 7 ecosystems.
Recall Check: One recall check across CPSC, FDA and NHTSA: match by name, model number, UPC or VIN.
Satellite Imagery: Find the clearest Sentinel-2, Landsat, Sentinel-1 or NAIP scene for any place, with band links.
The whole collection, 1 more
License
MIT, Copyright (c) 2026 Arhan Canli.
Available Tools
4 toolspackage_vulnsRank a project's package vulnerabilitiesARead-onlyIdempotent
Checks up to 50 package versions (npm, PyPI, Go, Maven, crates.io, RubyGems, NuGet, Packagist, Pub, Hex) against OSV and ranks each package by its worst vulnerability (act_now, high, medium, low), with the smallest upgrade that fixes them all and each vulnerability's KEV, EPSS and CVSS.
| Name | Required | Description | Default |
|---|---|---|---|
| packages | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| counts | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, open-world, non-destructive behavior, so the description adds meaningful operational context: it queries OSV, supports up to 50 versions, uses specific severity labels, and includes upgrade and metric data. This goes beyond what annotations alone tell the agent.
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?
One dense sentence with no filler: it front-loads the core action, then packs in the limit, ecosystems, data source, ranking output, upgrade recommendation, and supporting metrics. Every clause contributes useful information.
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?
The tool has one parameter, a rich output schema, and strong annotations. The description supplies the remaining operational context: input limits, supported ecosystems, severity taxonomy, upgrade behavior, and metric fields. No critical detail needed to call it correctly 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 0%, so the description must compensate, and it does: it explains that the packages input should contain up to 50 package versions, lists possible ecosystems, and states what will be produced for each. It does not restate required fields like name, version, and ecosystem, but those are already clear in the schema.
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 names a specific action and resource: it 'Checks up to 50 package versions' against OSV and 'ranks each package by its worst vulnerability' with severity categories. It also names the supported ecosystems, which clearly separates it from sibling tools like recent_exploited or vuln_details.
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?
The description clearly implies when to use the tool: when the user supplies package versions and wants vulnerability severity, upgrade paths, and KEV/EPSS/CVSS details. It does not explicitly state when not to use it or name alternative sibling tools, 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.
prioritize_vulnsRank vulnerabilities by real-world riskARead-onlyIdempotent
Ranks up to 100 CVE or advisory ids (GHSA, PYSEC, GO, RUSTSEC) by risk of exploitation: act_now (in CISA KEV or exploited), high, medium, low. Each row gives why, KEV dates, ransomware use, EPSS, CVSS and CISA's SSVC decision. Fix first what comes first.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | CVE or advisory ids |
Output Schema
| Name | Required | Description |
|---|---|---|
| counts | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior; the description adds useful context without contradicting them. It discloses the maximum input size, the risk classification logic, and the specific data returned per row (KEV dates, ransomware use, EPSS, CVSS, SSVC).
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?
Three compact sentences lead with the core action, then detail output categories and fields, and end with a clear takeaway. No wasted words; every sentence contributes to selecting and invoking the tool correctly.
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?
Given a single input parameter, rich annotations, and an existing output schema, the description fully covers what an agent needs: the input format, size limits, risk ranking behavior, and the kind of information included. Nothing essential 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?
The schema already documents the single 'ids' parameter with 100% coverage万万, so the baseline is 3. The description adds beyond the schema by specifying the accepted ID formats (GHSA, PYSEC, GO, RUSTSEC) and clarifying the output categories, which helps an agent know what inputs are valid.
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 uses a specific verb ('Ranks') and a clearly defined resource: up to 100 CVE or advisory IDs. It explicitly names the output risk categories (act_now, high, medium, low) and the decision factors, making it easy to distinguish from the sibling tools.
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?
The description clearly implies when to use this tool: when you have a list of vulnerability IDs and need them prioritized by exploitation risk. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select it for ranking and prioritization tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_exploitedNewly exploited vulnerabilitiesARead-onlyIdempotent
What CISA added to its Known Exploited Vulnerabilities catalog in the last N days, newest first, optionally only for a vendor or product (fortinet, chrome, exchange) or only ransomware-linked. Each row: CVE, vendor, product, name, date added, federal due date, EPSS.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| ransomware_only | No | ||
| vendor_or_product | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so safety is covered. The description adds behavioral details beyond annotations: newest-first ordering, optional filters, and the specific row fields returned (CVE, vendor, product, name, date added, federal due date, EPSS). This gives the agent a clear expectation of output shape and ordering without contradicting 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?
Two sentences with zero waste. The first sentence front-loads the core purpose and filters; the second lists output fields. Every word contributes to the agent's understanding. This is appropriately concise.
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?
Given the moderate complexity (4 optional parameters), existing output schema, and comprehensive annotations, the description covers the essential functional aspects: time window, filters, ordering, and output columns. No critical gaps for calling the tool correctly. Slight omissions like pagination or limit semantics are minor and covered by defaults.
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 0%, so the description must compensate. It does: 'last N days' explains the days parameter, 'optionally only for a vendor or product' explains vendor_or_product with examples, and 'only ransomware-linked' explains ransomware_only. The limit parameter is not explicitly mentioned, but the default of 25 and the context of returning rows implies it. The examples (fortinet, chrome, exchange) add practical value.
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 action (retrieve CISA KEV additions) with a clear resource (the Known Exploited Vulnerabilities catalog) and time window (last N days). It distinguishes itself from siblings like package_vulns (package-specific) and vuln_details (details) by focusing on recent additions. The mention of filters and output fields further clarifies scope.
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?
The description clearly implies usage for recent CISA KEV entries with optional filtering. It doesn't explicitly exclude alternatives or name sibling tools, but the context makes it obvious this is for time-based catalog queries, not package or prioritization tasks. This is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_detailsOne vulnerability in depthARead-onlyIdempotent
Everything about one CVE or advisory id: priority tier and why, description, CWE, CVSS vector, CISA SSVC, KEV entry (required action, due date, ransomware), EPSS, affected products and versions, affected packages with fixed versions, and the key references (patches first).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | CVE or advisory id |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| why | Yes | |
| tier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds a notable behavioral detail: references are ordered 'patches first,' which is not inferable from annotations. It also specifies the KEV entry includes required action, due date, and ransomware status, providing output-shaping context. No contradiction with annotations, and the description adds value beyond them.
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 description is a single, information-dense sentence that front-loads the core purpose ('Everything about one CVE or advisory id') before listing specific data categories. Every clause adds substantive information, and there is no fluff or redundancy. It is efficient and well-structured for an agent to parse quickly.
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?
Given the tool's complexity (many data fields), the output schema exists (as indicated), and annotations cover safety, the description is remarkably complete. It enumerates all major data types returned, including priority tier reasoning, CWE, CVSS, CISA SSVC, KEV details, EPSS, affected products/packages, and references. Nothing an agent needs to decide whether to call this tool 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?
The schema already fully documents the single 'id' parameter with 'CVE or advisory id' and length constraints (coverage 100%). The description does not elaborate on the parameter format, validation, or examples beyond what the schema provides. Baseline of 3 is appropriate since no additional semantic value is added.
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 clearly states the tool provides 'everything about one CVE or advisory id' and enumerates specific data categories (priority tier, CWE, CVSS, EPSS, affected products, etc.). This is a precise verb+resource definition that distinguishes it from siblings like package_vulns (focused on packages) and prioritize_vulns (ranking), making the purpose unmistakable.
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?
The description implies usage: you call this when you have a specific CVE or advisory ID and need comprehensive details. It doesn't explicitly contrast with alternatives, but the title 'One vulnerability in depth' and the single 'id' parameter make the context clear. No explicit when-not or alternative routing is given, so it falls 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
package_vulns - First observed
prioritize_vulns - First observed
recent_exploited - First observed
vuln_details
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: package_vulns checks package versions, prioritize_vulns ranks CVE IDs, recent_exploited shows newly added KEV entries, and vuln_details provides deep dive on a single CVE. No two tools overlap in their primary function.
Tool names mix conventions: 'prioritize_vulns' follows verb_noun, but 'package_vulns' and 'vuln_details' are noun phrases, and 'recent_exploited' is adjective+past participle. The naming is readable and consistent in style (lowercase underscores) but lacks a uniform verb_noun pattern.
With 4 tools, the server is tightly scoped to its purpose of vulnerability prioritization. Each tool covers a distinct workflow step, and none feel redundant or unnecessary.
The surface covers the core workflows: checking packages, ranking CVEs, viewing recent exploited vulnerabilities, and retrieving detailed information. Minor gaps exist (e.g., no direct way to list all vulnerabilities for a package beyond the top 50), but agents can still accomplish the intended tasks without dead ends.
Maintenance
Related MCP Connectors
CVE triage in one call: NVD, CVSS, CISA KEV, EPSS, public exploits and an explained risk score.
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
CVE intelligence: exploitation (KEV/EPSS), detection coverage, fixed versions. All tools keyless.
x402 CVE triage MCP: EPSS + CISA KEV -> exploit priority, $0.01 per query.
Related MCP Servers
- 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
- AlicenseNot gradedqualityDmaintenanceProvides multi-source vulnerability intelligence for AI-powered security operations, combining NVD CVSS, CISA KEV, and EPSS scores without requiring an API key.1MIT
- AlicenseNot gradedqualityFmaintenanceProvides CVE search enriched with EPSS exploit likelihood and CISA KEV status, plus live IP/domain reputation and a real-time threat feed for AI agents.MIT
- FlicenseAqualityDmaintenanceEnables searching and analyzing CVEs and vulnerabilities from multiple sources, optimized for PR review scenarios to help developers identify the latest security issues.82-