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.
Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json):
No install at all — point any streamable-HTTP MCP client at the hosted
endpoint:
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:
Tools
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):
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
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.