Vdb

kr.ai.vdbPublished by vdb.ai.krOfficial publisherv0.2.8Updated Oct 30, 2026

Check packages for CVEs, slopsquatting, and CISA KEV before your AI agent installs them.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

VDB lets an assistant check packages, lockfiles and MCP servers for CVEs, slopsquatting and CISA KEV status before installing or recommending them.

What you can do
  • Check one or many packages for vulnerabilities, slopsquatting risk and KEV status, with a per-result action of refuse, confirm or proceed
  • Scan a whole lockfile or SBOM, including transitive dependencies, for a merge verdict
  • Look up a single advisory by CVE, GHSA or VDB-SLOP ID, and search the vulnerability corpus by free text
  • Assess a community MCP server's trust tier and permission scopes
  • List packages currently flagged as slopsquatting candidates in an ecosystem
  • Local install only: analyze call sites for reachable dangerous sinks, rank fixes, re-verify with signed evidence, and emit OpenVEX documents
When to use it
Useful when an agent writes code and installs dependencies, or recommends third-party MCP servers, and you want a guardrail call before npm install, pip install or a merge. Best suited to a local agent that can see the project folder.
Requirements
Either the hosted streamable-HTTP endpoint or the local PyPI package vdb-mcp run via uvx or pipx (Python). Optional VDB_API_TOKEN for unmetered per-account access; anonymous use gets a per-IP trial and keyless limits. VDB_API_URL points at a self-hosted instance. Outbound network access to the VDB service is needed.
Before you install
Lookup, search and SBOM scanning need an API key; without one those tools return a refuse action. The local hardening tools read your source files, though the README says source never leaves the machine. The server sends package names, lockfile contents and MCP server identifiers to the hosted VDB service, so review that before scanning private dependency data.

Installation

In SourceWeft

  1. Open Vdb in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/kr.ai.vdb%2Fvdb/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "vdb": {
      "type": "http",
      "url": "https://vdb.ai.kr/mcp"
    }
  }
}

README

vdb-mcp

mcp-name: kr.ai.vdb/vdb

MCP (Model Context Protocol) server for VDB — the AI-aware vulnerability database. Lets Claude Desktop, Claude Code, Cursor, Cline, Continue, and any MCP client check packages while generating code: known CVEs, slopsquatting (LLM-hallucinated package names an attacker may have registered), CISA KEV status, MCP-server trust profiles, and more.

Quick start

Where this works: Runs where your code is: an agent on your machine with the project folder (Claude Code, Cursor, Cline, Codex CLI). A chat-only web AI cannot use it — its sandbox has no outbound network, and it cannot see your files.

bash
uvx vdb-mcp          # or: pipx run vdb-mcp

Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json):

json
{  "mcpServers": {    "vdb": { "command": "uvx", "args": ["vdb-mcp"] }  }}

No install at all — point any streamable-HTTP MCP client at the hosted endpoint:

json
{  "mcpServers": {    "vdb": {      "url": "https://vdb.ai.kr/mcp",      "headers": { "Authorization": "Bearer vdb_..." }    }  }}

Claude Code: claude mcp add --transport http vdb https://vdb.ai.kr/mcp --header "Authorization: Bearer $VDB_API_KEY". The hosted endpoint reads the key from that header (0.2.3+; the vdbApiToken query parameter Smithery sets still works and takes precedence).

That's it — the server talks to the hosted instance at https://vdb.ai.kr by default. The package gate (vdb_check_package, vdb_check_packages, vdb_list_slopsquatting) and the hardening tools (vdb_harden, vdb_harden_remediate, vdb_harden_verify, vdb_vex) answer without a key on a per-address allowance (0.2.8+; 100 packages an hour, 3 analyses an hour and 10 a day, projects up to 200 dependencies, nothing stored). The other tools need a free API key (https://vdb.ai.kr/signup, or the agent can request one by email itself: without a key those tools answer agent_action: REFUSE with a request_key_url). A key is currently unmetered beyond abuse protection:

json
{  "mcpServers": {    "vdb": {      "command": "uvx",      "args": ["vdb-mcp"],      "env": { "VDB_API_TOKEN": "vdb_..." }    }  }}

Tools

ToolWhat it does
vdb_check_packageCheck one package (purl + optional version) for vulnerabilities, slop risk, KEV
vdb_check_packagesBulk slopsquatting / risk check for a list of packages
vdb_scan_lockfileMerge verdict for a whole lockfile / SBOM (transitives included)
vdb_lookupFetch one advisory by ID (CVE-…, GHSA-…, VDB-SLOP-…)
vdb_searchFree-text search over the vulnerability corpus
vdb_check_mcp_serverTrust tier + permission scopes of a community MCP server
vdb_list_slopsquattingCurrent slopsquatting candidates per ecosystem
vdb_harden (local only)Call-site hardening: can attacker data reach a dangerous sink through your dependencies? Source never leaves the machine
vdb_harden_verify (local only)Re-analyze after a fix and get signed evidence the path is closed (without a key: pass original_path, the pre-fix file; the decision comes back unsigned)
vdb_harden_remediate (local only)Rank what to fix first: upgrade / harden / remove / policy candidates by project risk removed per cost, plus the combination that reaches a target (0.2.7+)
vdb_vex (local only)OpenVEX document: which advisories cannot be reached

The four local-only tools need your files, so the hosted endpoint does not offer them — seven tools remote, eleven with uvx vdb-mcp.

The vdb harden command

The same package installs the CLI behind the local tools, for use without an MCP client (0.2.2 or newer):

bash
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock   # analyze a call siteuvx --from vdb-mcp vdb harden --doctor                     # which of network / key / service is at faultuvx --from vdb-mcp vdb harden ./src --manifest uv.lock --vexuvx --from vdb-mcp vdb harden app.py --manifest uv.lock --remediate --target 0.2   # what to fix firstuvx --from vdb-mcp vdb harden ./src --manifest requirements.txt --exclude tests --exclude "*-fixtures"uvx --from vdb-mcp vdb harden app.py --manifest uv.lock --verify P-… --original /tmp/before/app.py  # keyless re-verification

It works without a key (0.2.8+): three analyses an hour and ten a day per address, nothing stored, upgrades estimated. VDB_API_KEY keeps the project, re-scores it when a package on a path changes, and signs the evidence.

Where PyPI is unreachable, https://vdb.ai.kr/v1/harden/client.pyz is the same CLI as one stdlib-only file (hash at /v1/harden/client.sha256): python3 client.pyz --doctor. Nothing to install.

Environment

VariableDefaultMeaning
VDB_API_URLhttps://vdb.ai.krVDB instance to query (set for self-hosted)
VDB_API_TOKEN(empty)vdb_… API key — lifts the keyless limits; required for lookup, search and SBOM scanning
VDB_PROXY_TOKEN(empty)Hosted endpoint only (0.2.9+): a secret shared with the API so it believes the visitor address this server forwards, and keyless visitors are counted each as themselves. Grants nothing else; leave unset locally
VDB_API_ADDR144.202.127.83Where VDB lives when this machine's DNS cannot say — see below
MCP_MODEstdiostdio or sse (long-running HTTP server)
MCP_PORT7700SSE port

No outbound DNS?

Sandboxes often allow egress but not name resolution. When — and only when — resolving vdb.ai.kr fails, the server retries against VDB_API_ADDR. That bypasses DNS and nothing else: the TLS handshake still presents the real hostname and validates its certificate, so a pinned connection is exactly as authenticated as a resolved one. HTTP errors, refused connections and timeouts are never retried — the name resolved, so the address would be the same box.

Why

LLMs hallucinate package names; attackers register them (slopsquatting). LLMs also happily recommend packages with known RCEs. VDB gives your agent a guardrail: one tool call before npm install / pip install. See https://vdb.ai.kr/connect for the one-line prompt variant that needs no MCP at all.

License

Elastic License 2.0 — free to use, including inside commercial organizations and CI. The only restrictions: you may not offer this software to third parties as a hosted or managed service, or resell it as a product. Commercial licensing beyond that: [email protected]. API usage is governed by the VDB service terms regardless of how you call it.

Source: README.md at commit c57b09f

Tools

7

vdb_check_package

BEFORE recommending or installing any package, check it here. The response carries `agent_action`: REFUSE (do not add it — relay the `because` text to the user), CONFIRM (ask the user first), or PROCEED. A failed or rate-limited call also answers REFUSE; never proceed unchecked. Also returns the underlying advisories, slop risk, and KEV status as supporting data.

Parameterspurlrequiredversion

vdb_check_packages

Bulk-check several packages in one call — always prefer this over repeated vdb_check_package. Each result carries its own `agent_action` (REFUSE / CONFIRM / PROCEED) plus a top-level `agent_action` for the batch. Follow them; relay `because` when refusing. Send names EXACTLY as written — do not correct a typo first, the call is the typo test.

Parameterspackagesrequired

vdb_scan_lockfile

BEFORE merging, scan the resolved lockfile. Checking the packages someone chose misses the transitive ones nobody did — which is usually where the risk is. Pass the file contents (package-lock.json, requirements.txt, uv.lock, go.sum, Cargo.lock, a CycloneDX SBOM, …). Returns `agent_action`: REFUSE means do not merge.

Parameterspathcontentfilenamerequired

vdb_lookup

Fetch a single vulnerability by ID or alias (e.g. CVE-2024-1234, GHSA-xxxx-yyyy-zzzz, VDB-SLOP-…).

Parametersidrequired

vdb_check_mcp_server

BEFORE recommending a community/unofficial MCP server, check it here. Scope risk is evaluated independently of advisory risk — an unvetted publisher asking for shell or filesystem access is refused even with a clean record. Follow the returned `agent_action`.

Parametersserver_idrequired

vdb_list_slopsquatting

List packages currently flagged as slopsquatting candidates in a given ecosystem.

Parameterslimitecosystem

Version history

4
  1. v0.2.8LatestOct 30, 2026
  2. v0.2.6Oct 2, 2026
  3. v0.2.5Oct 2, 2026
  4. v0.1.2Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.