mcpField
A
Attestd - Deterministic CVE & Supply Chain Data

Attestd - Deterministic CVE & Supply Chain Data

本地服务
github.com/attestd-io安全03 周前更新

关于 Attestd - Deterministic CVE & Supply Chain Data

@attestd/mcp 是用于检查基础设施以及 PyPI、npm 包版本是否存在可利用 CVE 或供应链风险信号的 MCP 服务。它为 AI Agent 和安全工作流返回结构化风险数据,支持批量检查和 CVE 详情查询。

主要功能

  1. 01检查产品版本的 CVE 风险
  2. 02每批审计最多 100 个包
  3. 03查询 CVE 详情和利用信号
  4. 04列出覆盖的产品与包
  5. 05查询 API 密钥用量额度

适用场景

  1. 01审计锁文件或清单中的依赖
  2. 02评估基础设施版本的已知漏洞
  3. 03查看 CVE 的 CVSS、EPSS 和利用状态

MCP 相关

它向兼容 MCP 的客户端提供漏洞、供应链、产品覆盖范围、CVE 详情和用量工具。大多数实时检查需要 API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"attestd-io-attestd": {
"command": "npx",
"args": [
"-y",
"@attestd/mcp"
],
"env": {
"ATTESTD_API_KEY": "<ATTESTD_API_KEY>",
"ATTESTD_BASE_URL": "<ATTESTD_BASE_URL>"
}
}
}
}
启动命令npx -y @attestd/mcp
需要配置的环境变量
ATTESTD_API_KEY密钥Attestd API key (atst_...). Required for check_package_vulnerability, check_batch_vulnerabilities, get_cve_details, and live list_covered_products. Get one at https://api.attestd.io/portal
ATTESTD_BASE_URLOptional API base URL override. Defaults to https://api.attestd.io

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@attestd/mcp0.3.1

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
productstring是软件包或产品的 slug,例如 "nginx"、"runc"、"@bitwarden/cli"、"litellm"
versionstring是准确的版本字符串,例如 "1.20.0"

详细介绍

@attestd/mcp

npm version smithery badge

Attestd 会检查某个依赖版本是否存在可利用的 CVE,或是否已确认遭到供应链攻击。一次 API 调用即可返回结构化风险响应。

面向 Attestd 的官方 Model Context Protocol (MCP) 服务。它将 CVE 风险和供应链检查作为工具提供给 Claude Code、Claude Desktop 和任何兼容 MCP 的客户端。

获取免费 API 密钥 · 完整文档

  • stdio 传输:通过 npx -y @attestd/mcp 运行,无需全局安装。
  • check_package_vulnerability:使用 @attestd/sdk 封装 GET /v1/check。
  • check_batch_vulnerabilities:一次调用最多检查 100 个包。适用于 lockfile 和清单审计。
  • list_covered_products:返回 Attestd 覆盖的产品。提供 API 密钥时,返回来自 GET /v1/products 的实时数据;未提供密钥时,返回静态捆绑的基础设施列表。
  • get_cve_details:返回单个 CVE ID 的 CVSS、EPSS、KEV 状态和受影响产品。
  • get_usage:返回已认证密钥的剩余配额(GET /v1/usage)。

前置条件

  • Node.js 18+
  • 从门户获取的 Attestd API 密钥。调用 check_package_vulnerability、check_batch_vulnerabilities、get_cve_details、get_usage 和实时 list_covered_products 时需要此密钥。

Claude Code / MCP 配置

添加到 ~/.claude/mcp.json 或项目的 .mcp.json:

{
  "mcpServers": {
    "attestd": {
      "command": "npx",
      "args": ["-y", "@attestd/mcp"],
      "env": {
        "ATTESTD_API_KEY": "your-api-key-here"
      }
    }
  }
}

可选:覆盖 API 基础 URL(例如开发环境):

"env": {
  "ATTESTD_API_KEY": "your-api-key-here",
  "ATTESTD_BASE_URL": "https://dev.api.attestd.io"
}

工具

check_package_vulnerability
参数类型说明
productstring产品标识(nginx、postgresql、litellm 等)
versionstring精确版本(1.20.0)

返回包含以下内容的 JSON:

字段含义
outsideCoverage如果产品不在覆盖范围内则为 true。风险未知,不代表安全。
riskStatecritical | high | elevated | low | none | 超出覆盖范围时为 null
riskFactors驱动 riskState 的风险因素词汇
maxEpss匹配的 CVE 中最高的 EPSS 概率
activelyExploitedCISA KEV 信号
remoteExploitable如果任何匹配的 CVE 可远程利用则为 true
authenticationRequired仅当所有匹配的 CVE 都需要身份验证时才为 true
patchAvailable / fixedVersion补丁建议
confidence综合评估置信度,范围为 0.0–1.0
cveIds对风险评估有贡献的 CVE ID
typosquat包名完整性:detected、resembles、confidence、ecosystem(SDK 0.5 运行时;省略额外字段)
message当 outsideCoverage 为 true 时提供说明
supplyChainCompromised / supplyChainDescriptionPyPI/npm 供应链信号

API 密钥无效或缺失,或触发速率限制时,返回 isError: true,并附带 JSON error 字符串。

check_batch_vulnerabilities
参数类型说明
itemsarray{ product, version } 对象数组。每次调用最多 100 项。每项会消耗一次 API 调用。

配额会预先检查。如果批量请求会超出月度配额,则会在任何调用计费前返回 429。

返回包含 count 和 results 的 JSON。受支持的项目包含与 check_package_vulnerability 相同的字段,但不含 typosquat。超出覆盖范围的项目仅返回 product、version、outsideCoverage: true 和 riskState: null。

list_covered_products

不接受参数。提供 API 密钥时,返回 GET /v1/products 的实时 JSON:

字段含义
source从 API 获取时为 "live"
totalCVE 产品和供应链软件包的合计数
cveProductsCVE 基础设施 slug 及其显示名称
supplyChainPackages受监控的 PyPI/npm 软件包

未提供 API 密钥时,返回静态内置列表:

字段含义
source"static"
count内置基础设施产品的数量
products{ slug, display } 条目组成的数组
get_cve_details
参数类型描述
cve_idstringCVE 标识符,例如 CVE-2021-44228

返回包含以下字段的 JSON:

字段含义
foundCVE 存在于 Attestd 数据库中时为 true;返回 404 时为 false(不算错误)
cveIdCVE 标识符
descriptionNVD 描述文本
cvssScore / cvssVectorCVSS 基本评分和向量
activelyExploitedCISA KEV 信号
remoteExploitable可远程利用
authenticationRequired利用时是否需要身份验证
affectedProducts受此 CVE 影响的 Attestd 产品 slug
epssScore / epssPercentileEPSS 概率和百分位数
sourcePublishedAt / lastCheckedAtISO 时间戳

未找到 CVE 时,返回 { "found": false, "cveId": "..." },且不包含 isError。API 密钥无效或缺失,或达到速率限制时,返回 isError: true,并附带 JSON error 字符串。

get_usage

不接受参数。需要 API 密钥。返回 GET /v1/usage 的 JSON:

字段含义
tier账户套餐等级
keyCallsThisMonth当前周期内计入此密钥的调用次数
accountCallsThisMonth当前周期内计入账户所有密钥的调用次数
includedCalls每月包含的调用次数上限
billingPeriodStart / billingPeriodEndISO 时间戳
overageCalls / estimatedOverageUsd超出包含调用次数上限的调用次数及预估超额费用(美元)

API 密钥无效或缺失,或达到速率限制时,返回 isError: true,并附带 JSON error 字符串。

在本地验证

npm run build
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。