关于 vdb
vdb 是使用 VDB 漏洞数据检查软件依赖的 MCP 服务和 CLI。它帮助编码 Agent 与开发者识别 CVE、仿冒包风险、CISA KEV 状态及社区 MCP 服务的信任信息,并通过本地工具分析依赖调用路径。
主要功能
- 01检查软件包的 CVE 和仿冒包风险
- 02扫描锁定文件与 SBOM
- 03查询安全公告和漏洞数据
- 04检查社区 MCP 服务信任信息
- 05本地分析并验证依赖调用路径
- 06排列依赖修复方案优先级
适用场景
- 01安装软件包前进行风险筛查
- 02检查项目锁定文件中的依赖风险
- 03查看 MCP 服务的信任信息
- 04追踪易受攻击的依赖路径并安排修复
MCP 相关
向 MCP 客户端提供软件包、安全公告、漏洞搜索及 MCP 服务信任检查工具。本地 stdio 服务还提供依赖文件分析与修复工具;托管端点不提供这些本地工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://vdb.ai.kr/mcpclaude mcp add --transport http kr-ai-vdb-vdb https://vdb.ai.kr/mcp{"mcpServers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}在 Cursor 中打开{"servers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}在 VS Code 中打开{"mcpServers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}{"mcpServers":{"kr-ai-vdb-vdb":{"serverUrl":"https://vdb.ai.kr/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
7| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| purl | string | 是 | Package URL,例如 'pkg:npm/lodash' 或 'pkg:pypi/requests' |
| version | string | 否 | 可选版本。若提供,则按版本范围进行匹配。 |
详细介绍
vdb-mcp
mcp-name: kr.ai.vdb/vdb
面向 VDB(具备 AI 感知能力的漏洞数据库)的 MCP(Model Context Protocol)服务。Claude Desktop、Claude Code、Cursor、Cline、Continue 及任何 MCP 客户端都可以在生成代码时检查软件包:已知 CVE、虚假依赖包名(LLM 幻觉生成的包名,攻击者可能已经注册)、CISA KEV 状态、MCP 服务信任配置等。
快速开始
适用场景: 在代码所在的位置运行:让你机器上能访问项目文件夹的 Agent 来使用(Claude Code、Cursor、Cline、Codex CLI)。仅支持聊天的 Web AI 无法使用它——它的沙盒无法连接外部网络,也看不到你的文件。
uvx vdb-mcp # or: pipx run vdb-mcp
Claude Desktop(claude_desktop_config.json)/ Cursor(.cursor/mcp.json):
{
"mcpServers": {
"vdb": { "command": "uvx", "args": ["vdb-mcp"] }
}
}
完全无需安装——让任意支持可流式 HTTP 的 MCP 客户端连接托管端点:
{
"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"。
托管端点会从该请求头读取密钥(0.2.3+;Smithery 设置的 vdbApiToken 查询参数仍然有效,且优先级更高)。
就是这样——默认情况下,服务会连接到托管实例 https://vdb.ai.kr。软件包检查工具(vdb_check_package、vdb_check_packages、vdb_list_slopsquatting)和加固工具(vdb_harden、vdb_harden_remediate、vdb_harden_verify、vdb_vex)无需密钥即可使用,按 IP 地址限额(0.2.8+;每小时 100 个软件包、每小时 3 次分析、每天 10 次分析,项目最多包含 200 个依赖项,不存储任何内容)。其他工具需要免费的 API 密钥(可前往 https://vdb.ai.kr/signup 获取,也可以由 Agent 自行通过电子邮件申请:没有密钥时,这些工具会返回 agent_action: REFUSE 和 request_key_url)。目前,除滥用防护外,密钥不受使用量限制:
{
"mcpServers": {
"vdb": {
"command": "uvx",
"args": ["vdb-mcp"],
"env": { "VDB_API_TOKEN": "vdb_..." }
}
}
}
工具
| 工具 | 功能 |
|---|---|
vdb_check_package | 检查单个软件包(purl + 可选版本)是否存在漏洞、虚假依赖包风险及 KEV |
vdb_check_packages | 批量检查软件包列表中的虚假依赖包和风险 |
vdb_scan_lockfile | 汇总整个 lockfile / SBOM 的检查结果(包括传递依赖) |
vdb_lookup | 按 ID 获取一条安全公告(CVE-…、GHSA-…、VDB-SLOP-…) |
vdb_search | 在漏洞语料库中进行自由文本搜索 |
vdb_check_mcp_server | 检查社区 MCP 服务的信任等级和权限范围 |
vdb_list_slopsquatting | 按生态系统列出当前虚假依赖包候选项 |
vdb_harden (仅本地) | 调用点加固:攻击者数据是否能通过依赖项到达危险的接收端?源代码不会离开本机 |
vdb_harden_verify (仅本地) | 修复后重新分析,并获取路径已关闭的签名证据(无需密钥:传入 original_path,即修复前的文件;返回的判定未签名) |
vdb_harden_remediate (仅本地) | 对修复优先级进行排序:按每项成本可消除的项目风险,列出升级 / 加固 / 移除 / 策略候选方案,并给出达到目标所需的方案组合(0.2.7+) |
vdb_vex (仅本地) | OpenVEX 文档:哪些安全公告无法触达 |
四个仅限本地的工具需要访问你的文件,因此托管端点不提供这些工具——远程服务提供七个工具,使用 uvx vdb-mcp 则提供十一个工具。
vdb harden 命令
安装同一软件包后,即可使用本地工具背后的 CLI,无需 MCP 客户端(0.2.2 或更高版本):
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock # analyze a call site
uvx --from vdb-mcp vdb harden --doctor # which of network / key / service is at fault
uvx --from vdb-mcp vdb harden ./src --manifest uv.lock --vex
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock --remediate --target 0.2 # what to fix first
uvx --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
无需密钥即可使用(0.2.8+):每个 IP 地址每小时 3 次分析、每天 10 次分析,不存储任何内容,升级成本为估算值。设置 VDB_API_KEY 后,会保留项目;当路径上的软件包发生变更时会重新评分,并对证据进行签名。
如果无法访问 PyPI,https://vdb.ai.kr/v1/harden/client.pyz 提供相同的 CLI,是一个仅依赖标准库的单文件程序(哈希值位于 /v1/harden/client.sha256):python3 client.pyz --doctor。无需安装任何内容。
环境
| 变量 | 默认值 | 含义 |
|---|---|---|
VDB_API_URL | https://vdb.ai.kr | 要查询的 VDB 实例(自托管时设置) |
VDB_API_TOKEN | (空) | vdb_… API 密钥——解除无密钥使用限制;查找、搜索和 SBOM 扫描均需要此密钥 |
VDB_PROXY_TOKEN | (空) | 仅限托管端点(0.2.9+):与 API 共享的密钥,使其相信此服务转发的访客地址,并将无密钥访客分别计为其本人。除此之外不授予任何权限;本地使用时请勿设置 |
VDB_API_ADDR | 144.202.127.83 | 此机器的 DNS 无法解析时 VDB 所在的位置——见下文 |
MCP_MODE | stdio | stdio 或 sse(长时间运行的 HTTP 服务) |
MCP_PORT | 7700 | SSE 端口 |
无出站 DNS?
沙箱通常允许出站连接,但不允许名称解析。仅当且只有当解析
vdb.ai.kr 失败时,服务才会重试连接 VDB_API_ADDR。这只会绕过 DNS,
不会绕过其他验证:TLS 握手仍会使用真实主机名,并验证其证书,因此固定
连接的身份验证与解析后的连接完全相同。HTTP 错误、连接被拒绝和
超时都不会触发重试——名称已成功解析,因此地址指向的仍是
同一台机器。
原因
大模型会幻觉出包名;攻击者会注册这些包名(slopsquatting)。
大模型也很乐意推荐存在已知 RCE 漏洞的包。VDB 为你的 Agent
提供一道防护:在执行 npm install / pip install 前调用一次工具。请访问
https://vdb.ai.kr/connect,了解无需 MCP 的单行提示词版本。
许可证
Elastic License 2.0 — 可免费使用,包括在商业组织内部和 CI 中使用。唯一限制:不得将此软件作为托管 或管理服务提供给第三方,也不得将其作为产品转售。除此之外的商业许可事宜,请联系: [email protected]。无论以何种方式调用,API 使用均受 VDB 服务条款约束。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。