Skip to the content
Agent Tools

CVE Risk Check in ChatGPT

CVE and dependency triage. The MCP server is https://cve.openkrill.app/mcp. No key. The steps below are only for ChatGPT. A call to check_cve was checked against that server on 2026-10-17.

Connection
Streamable HTTP
API key
None needed
Rate limit
60 calls a minute
Protocol
MCP 2024-11-05

Questions it answers

Triage security vulnerabilities: by CVE id (how severe it is, whether it is being exploited, how likely exploitation is) or for a whole dependency list (which 3 packages to upgrade first, and to what version).

Ask "how bad is CVE-2021-44228?", "which of these CVEs should I patch first?", "what did CISA add to its exploited list this month?" or "which dependencies in this package-lock.json should I fix first?".

CVE Risk Check reads two free public sources. The National Vulnerability Database (NVD) gives the description, the CVSS score and severity, the publication date, a link to a patch or vendor advisory when one is tagged, and whether the CISA Known Exploited Vulnerabilities (KEV) catalog lists the CVE, with CISA's due date and required action. FIRST's EPSS gives the modelled probability that the CVE is exploited in the next 30 days.

Each CVE gets a priority: "exploited" when CISA lists it, "likely" when its EPSS score is 0.1 or more, otherwise "routine", or "unknown" when EPSS could not be read. A batch of up to 10 CVEs comes back sorted with the most urgent first.

Every answer names its sources and the date the NVD record and the EPSS score are from. NVD limits requests without a key, so records are cached for a few hours; a recent change to a CVE can take that long to appear, and when NVD asks this service to slow down the answer says so and when to retry.

For a dependency list, pass the text of a lockfile (package-lock.json, pnpm-lock.yaml, yarn.lock, poetry.lock, uv.lock, Cargo.lock, go.sum or go.mod), a package.json or a requirements.txt, or a list of packages with exact versions (npm, PyPI, Go, crates.io, Maven, RubyGems, NuGet or Packagist). Each package version is matched to its known advisories in OSV.dev, which collects the GitHub Advisory Database and other open databases. The advisories' CVE ids are then checked against the CISA exploited list and EPSS. The answer is the few packages to fix first, each with a priority (malicious, exploited, likely, routine or unknown), a one-line reason and the version to upgrade to, followed by a short list of the rest. A match is by exact name and version: it does not show that your code reaches the vulnerable code.

On CVE day, check_site_for_cve takes a site address and a new CVE and answers in one call: affected, likely affected, not affected or unknown, with a confidence score and the evidence, then copy-paste fix steps for the stack it detected (apt, dnf, Docker, cPanel, Plesk, managed WordPress, Laravel and more), a mitigation for an owner who cannot patch today and a one-line check that proves the fix is in. It loads the page once like a browser, at most 5 requests with redirects, and reads only version banners, cookies and asset paths: no payload, no probing. A distro build or a hidden version is never called affected from a header alone. Each advisory also has a page at cve.openkrill.app/day.

It also searches the oss-security mailing list, where open-source projects and Linux distributions announce their security fixes: give a package name or a CVE id and it lists the matching threads of the current and previous quarter, newest first, with links. A thread matches by its subject line, so an advisory whose subject names neither the package nor the CVE is not found.

It does not read your source code or tell you how to exploit anything, and the site check is a passive look at one public page, not a scan of your systems. The CVE ids, dependency lists and site addresses you send are not stored; the only lasting record is a daily count of calls per tool.

Short questions this server answers, each with a direct answer: CVE Exploit Status, EPSS and Patch Priority Lookup.

What it can do

  • Looks up a CVE's description, CVSS score and severity, and publication date from the NVD
  • Shows whether the CISA Known Exploited Vulnerabilities catalog lists a CVE, with its due date and required action
  • Adds the EPSS score: the modelled chance of exploitation in the next 30 days
  • Gives each CVE a priority: exploited, likely or routine
  • Ranks a batch of up to 10 CVEs with the most urgent first
  • Reads an npm, pnpm, yarn, Poetry, uv, Cargo or Go lockfile and names the 3 packages to upgrade first, with the fix
  • Matches package versions to OSV.dev advisories in 8 ecosystems, including npm, PyPI, Go, Maven and crates.io
  • Lists CVEs recently added to the CISA exploited list, optionally filtered by a product word
  • Links a patch or vendor advisory when NVD tags one, and names its sources and dates
  • Checks a site for a new CVE in one passive page load and gives the fastest fix for its stack first
  • Finds oss-security mailing list threads for a package name or a CVE id, newest first

Tools

  • check_cve, Check a CVE. Use this when the user asks how serious a CVE is, such as "how bad is CVE-2021-44228?", or about an advisory id that triage_dependencies names, such as GHSA-wrw7-89jp-8q8g or RUSTSEC-2024-0370. Pass the CVE id, or a GHSA, RUSTSEC, GO or PYSEC advisory id. A CVE that NVD has not published yet, and an advisory with no CVE, are answered from OSV.dev with an osv block. Returns a priority (exploited, likely, routine or unknown), the description, CVSS score and severity, whether the CISA Known Exploited Vulnerabilities catalog lists it, the EPSS exploitation probability, a patch or advisory link when tagged, and the as_of dates. A lookup by CVE id: it does not know which software the user runs or whether they are affected.
  • check_cves, Rank several CVEs. Use this when the user has a list of CVE ids and wants to know which to deal with first, such as "which of these CVEs should I patch first?". Pass up to 10 CVE ids. Returns each one's priority, CVSS score, CISA exploited-list status and EPSS score, most urgent first, with a count per priority. An id NVD could not be asked about in this call is marked deferred; ask for it again later. It does not know which software the user runs.
  • list_recent_kev, List recent exploited CVEs. Use this when the user asks what CISA recently added to its Known Exploited Vulnerabilities list, such as "what exploited CVEs were added this month?". Optionally pass how many days back (up to 90), a product word to filter by, and a limit. Returns each CVE with its CISA name, the date it was added, CISA's due date and its CVSS score, newest first. The catalog lists vulnerabilities with evidence of exploitation; it is not a list of every serious CVE.
  • triage_dependencies, Triage dependency vulnerabilities. Use this when the user wants to know which vulnerable dependencies to fix first, such as "which dependencies in this package-lock.json should I upgrade first?" or "triage my requirements.txt". Pass the text of a lockfile (package-lock.json, pnpm-lock.yaml, yarn.lock, poetry.lock, uv.lock, Cargo.lock, go.sum or go.mod), a package.json or a requirements.txt as manifest, or a packages list of ecosystem, name and exact version (npm, pypi, go, crates.io, maven, rubygems, nuget, packagist); only names and versions are read. Returns fix_first: by default the 3 packages to upgrade first, each with a priority (malicious, exploited, likely, routine or unknown), one line on why, the CVE ids and the version that fixes it, then a short list of the other vulnerable packages and a count per priority. It matches exact package versions to known advisories; it does not scan code or show that the vulnerable code is reached.
  • check_site_for_cve, Check a site for a CVE. Use this when someone asks whether their site is affected by a new CVE and how to fix it, such as "is example.com affected by CVE-2026-109618?". Pass url and cve (a CVE id or advisory slug; list_cve_day_advisories lists them). It loads the page once like a browser (a plain GET, at most 5 requests, no payload, no probing) and reads version banners, cookies and asset paths. Returns verdict (affected, likely_affected, not_affected or unknown) with confidence and evidence, fix_first (steps for the detected stack and a proof line), stay_online, and reduce_risk_now when a WAF vendor rule exists. A distro build or hidden version is never called affected from a header alone.
  • list_cve_day_advisories, List CVE day advisories. Use this to see which CVEs check_site_for_cve covers, or when someone asks which new CVEs have a site check and fix steps. Returns each advisory's slug, title, severity, publication time, CVE ids, products and page, newest first.
  • search_oss_security, Search oss-security advisories. Use this when the user asks whether a security issue was announced for an open-source package, such as "any recent security advisories for ffmpeg?", or what the oss-security list says about a CVE. Pass package (a name such as openssl, ffmpeg or tomcat) or cve, not both. Returns the matching oss-security mailing list threads of the current and previous quarter, newest first: subject, link and the CVE ids in the subject. A thread matches by its subject only, so no match does not mean no advisory. The list is refreshed once a week.

Add CVE Risk Check in ChatGPT

ChatGPT does not read a local config file. A custom MCP server is added in the product, and only after developer mode is on. These steps were checked against OpenAI's plugin connect guide and the ChatGPT MCP guide on 2026-10-01. Developer mode can be hidden by a workspace policy, so a Team or Enterprise admin may have to allow it first.

  1. Open ChatGPT settings, then Security and login, and turn on Developer mode.
  2. Open ChatGPT plugins and select the plus button.
  3. Enter a name such as "CVE Risk Check" and a one-line description of what you want it to answer.
  4. Under Connection, choose the public endpoint and paste this URL. Include the /mcp path. Do not add a tunnel id: this server is already public.
    https://cve.openkrill.app/mcp
  5. Create the connection and review the tools ChatGPT lists. You should see check_cve, check_cves, list_recent_kev, triage_dependencies, check_site_for_cve, list_cve_day_advisories, search_oss_security. The feedback tools on the same server are optional and not required for the lookup.
  6. Start a new conversation, add the connection from the tools menu, and ask: How bad is CVE-2021-44228?

No API key and no OAuth client id are required. The server answers without a login. Calls are limited per network and per day, and a limit comes back as a tool error rather than a partial answer. If the tool list is stale after a server change, open the connection and select Refresh, then start a new conversation.

The ChatGPT desktop app, Codex CLI and IDE extension share a different config. In the desktop app, open Settings, then MCP servers, choose Add server, select Streamable HTTP, and paste the same URL. In ~/.codex/config.toml the equivalent is a table named mcp_servers.cve with url = "https://cve.openkrill.app/mcp". ChatGPT on the web does not read that file. A published directory listing is also a different path: this page is the developer-mode connection, not a claim that CVE Risk Check is already in the ChatGPT directory.

Treat the server as untrusted until you have read a few answers. A remote MCP server sees the arguments the model sends. CVE Risk Check is read-only and documents what it sends onward on the privacy page.

If it does not work

The tool does not show up

Check that the endpoint ends in /mcp. Open the connection, select Refresh, then start a new conversation and add the connection from the tools menu. A conversation started before the connection was added does not see its tools.

429 or rate_limited

Each server takes 60 calls a minute from one network, and some tools take fewer. Past that the call comes back as a tool error that starts with rate_limited: wait a minute and ask again. daily_limit means the server reached its shared daily cap, which resets at 00:00 UTC. A limit is not an answer, so do not read it as no results. For higher limits, ask support@openkrill.app for a key.

Developer mode is missing in ChatGPT

Developer mode is in ChatGPT settings, then Security and login, on the web. In a Team or Enterprise workspace an admin can hide it, so ask the admin to allow custom connections first. Without developer mode ChatGPT cannot add a custom MCP server.

A call checked on 2026-10-17

CVE-2021-44228 is Log4Shell, listed by CISA, so priority, CVSS and KEV can be checked against the public record. The request below was posted to https://cve.openkrill.app/mcp as tools/call. HTTP 200. Source: the CVE Risk Check server, read 2026-10-17.

{
  "method": "tools/call",
  "params": {
    "name": "check_cve",
    "arguments": {
      "cve": "CVE-2021-44228"
    }
  }
}
  • status. ok
  • priority. exploited
  • cve. CVE-2021-44228
  • source. NVD (nvd.nist.gov, includes the CISA Known Exploited Vulnerabilities flag) and FIRST EPSS (first.org)
  • notice. Priority is a triage hint, not a risk rating: exploited means CISA lists it as exploited in the wild, likely means an EPSS score of 0.1 or more, routine is anything lower. To check whether a package version is affected,
  • kev name. Apache Log4j2 Remote Code Execution Vulnerability

Repeat the call yourself if you need a newer reading. Cached answers expire. A rate limit is not a result: wait and try again. Nothing in the call is a ranking, a filing, or advice.

Using it in production

Nothing to install and nothing to run: no package, no Python or Node.js version and no environment variable. CVE Risk Check runs on our servers, and your client only needs the URL https://cve.openkrill.app/mcp.

Rate limit60 tool calls a minute from one network. initialize and tools/list do not count.
Daily cap25000 tool calls a day per server, shared by every caller. It resets at 00:00 UTC.
At a limitThe call comes back as a tool error that starts with rate_limited (wait a minute) or daily_limit (try after 00:00 UTC), never as a partial answer.
KeyNone. Do not add an Authorization header or a key field.
Higher limitsEmail support@openkrill.app with the server name, the calls a day you expect and what they are for. We answer within 1 business day.
FreshnessSome answers come from a short cache. Each guide shows the date of its checked call; repeat a call when you need a newer reading.
UptimeScheduled test calls check the servers through the same endpoint. There is no SLA yet.
DataWhat each server receives and keeps is on the privacy page.

Use it in other apps

Roles that use CVE Risk Check

Frequently asked questions

How do I install the CVE Risk Check MCP server in ChatGPT?

Turn on Developer mode in ChatGPT settings, then Security and login. In ChatGPT plugins, select the plus button and paste https://cve.openkrill.app/mcp as the public endpoint. Start a new conversation and add the connection from the tools menu.

Do I need an API key to run CVE Risk Check in ChatGPT?

No. This server takes no API key. For higher limits, email support@openkrill.app with the server name (CVE Risk Check), the calls a day you expect and what they are for. We answer within 1 business day.

What should I do if CVE Risk Check does not connect in ChatGPT?

Check that the endpoint ends in /mcp. Open the connection, select Refresh, and start a new conversation. If Developer mode is missing, a workspace admin has to allow it first.

Words on this page

Source: plugin listing for cve in this repository, and a live tools/call on 2026-10-17. As of 2026-10-17.