Vdb

kr.ai.vdb由 vdb.ai.kr 發布官方發布者v0.2.8更新於 Oct 30, 2026

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

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

VDB 讓助手在安裝或推薦之前,檢查套件、鎖定檔與 MCP 伺服器的 CVE、slopsquatting 與 CISA KEV 狀態。

可以做什麼
  • 檢查單一或多個套件的漏洞、slopsquatting 風險與 KEV 狀態,並給出拒絕、確認或放行的動作建議
  • 掃描整份鎖定檔或 SBOM(含間接相依套件),給出是否可合併的結論
  • 依 CVE、GHSA 或 VDB-SLOP 編號查詢單筆公告,並對漏洞資料庫做全文搜尋
  • 評估社群 MCP 伺服器的信任等級與權限範圍
  • 列出某個生態系中目前被標記為 slopsquatting 候選的套件
  • 僅本機安裝可用:分析呼叫點是否有可達的危險匯聚點、排序修復優先順序、重新驗證並提供簽章證據、產生 OpenVEX 文件
適用情境
適合助手撰寫程式並安裝相依套件、或推薦第三方 MCP 伺服器時,在 npm install、pip install 或合併之前多一道檢查。最適合能看到專案資料夾的本機助手。
執行需求
可使用託管的 streamable-HTTP 端點,或以 uvx、pipx 執行 PyPI 套件 vdb-mcp(需 Python)。可選用 VDB_API_TOKEN 取得依帳號的不限量存取;匿名使用依 IP 試用並受無金鑰額度限制。VDB_API_URL 可指向自架實例。需要能連線到 VDB 服務的對外網路。
安裝前請注意
查詢、搜尋與 SBOM 掃描需要 API 金鑰,沒有金鑰時這些工具會回傳拒絕動作。本機加固工具會讀取你的原始碼檔案,但 README 表示原始碼不會離開本機。伺服器會把套件名稱、鎖定檔內容與 MCP 伺服器識別資訊送到託管的 VDB 服務,掃描私有相依資料前請先評估。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vdb,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/kr.ai.vdb%2Fvdb/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "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.

來源:README.md,提交 c57b09f

工具

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.

輸入參數purl必填version

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.

輸入參數packages必填

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.

輸入參數pathcontentfilename必填

vdb_lookup

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

輸入參數id必填

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`.

輸入參數server_id必填

vdb_list_slopsquatting

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

輸入參數limitecosystem

版本歷史

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

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。