kr.ai.vdb/vdb
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Check packages for CVEs, slopsquatting, and CISA KEV before your AI agent installs them.
| Author | kr.ai.vdb |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 792 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"vdb": {
"url": "https://vdb.ai.kr/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (7)
vdb_check_packageBEFORE 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.
Parameters:
purl(required) — string — Package URL, e.g. 'pkg:npm/lodash' or 'pkg:pypi/requests'version— string — Optional version. If supplied, range matching is applied.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_check_packagesBulk-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.
Parameters:
packages(required) — array — List of PURLs or 'ecosystem/name' shorthand.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_scan_lockfileBEFORE 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.
Parameters:
filename(required) — string — e.g. 'package-lock.json' — the format is detected from itpath— string — Local runs only (uvx vdb-mcp): read the file here instead of passing content.content— string — The file's text.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_lookupFetch a single vulnerability by ID or alias (e.g. CVE-2024-1234, GHSA-xxxx-yyyy-zzzz, VDB-SLOP-…).
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_searchFree-text search over the VDB vulnerability corpus.
Parameters:
query(required) — stringlimit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_check_mcp_serverBEFORE 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`.
Parameters:
server_id(required) — string — e.g. 'mcp:community/shell-runner'
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
vdb_list_slopsquattingList packages currently flagged as slopsquatting candidates in a given ecosystem.
Parameters:
limit— integerecosystem— string — npm | PyPI | crates.io | Go | Maven
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.