Attestd - Deterministic CVE & Supply Chain Data について
@attestd/mcpは、インフラやPyPI・npmパッケージのバージョンに悪用可能なCVEやサプライチェーン侵害の兆候があるか調べるMCPサーバーです。AIエージェントやセキュリティワークフロー向けに、バッチ検査やCVE詳細を含む構造化リスクデータを返します。
主な機能
- 01製品バージョンのCVEリスク確認
- 02最大100パッケージの一括監査
- 03CVE詳細と悪用シグナルの取得
- 04対象製品とパッケージの一覧
- 05APIキーの利用枠確認
活用シーン
- 01ロックファイルやマニフェスト内の依存関係監査
- 02インフラのバージョンにある既知の脆弱性評価
- 03CVEのCVSS、EPSS、悪用状況の確認
MCP 対応
脆弱性、サプライチェーン、対象製品、CVE詳細、利用状況のツールをMCP互換クライアントに公開します。多くのライブ検査にはAPIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @attestd/mcpATTESTD_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/portalATTESTD_BASE_URLOptional API base URL override. Defaults to https://api.attestd.ioローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| product | string | はい | パッケージまたは製品のスラッグ。例:"nginx"、"runc"、"@bitwarden/cli"、"litellm" |
| version | string | はい | 正確なバージョン文字列。例:"1.20.0" |
詳細
@attestd/mcp
Attestd は、依存関係のバージョンに悪用可能な CVE、または確認済みのサプライチェーン侵害があるかをチェックします。1 回の API 呼び出しで、構造化されたリスク応答を返します。
Attestd の公式 Model Context Protocol (MCP) サーバーです。CVE リスクとサプライチェーンのチェックを、Claude Code、Claude Desktop、および MCP 対応クライアント向けのツールとして提供します。
- stdio トランスポート:グローバルインストールなしで
npx -y @attestd/mcpを実行できます。 check_package_vulnerability:@attestd/sdkを使用してGET /v1/checkを呼び出します。check_batch_vulnerabilities:1 回の呼び出しで最大 100 個のパッケージをチェックします。ロックファイルやマニフェストの監査に使用します。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
| 引数 | 型 | 説明 |
|---|---|---|
product | string | 製品のスラッグ(nginx、postgresql、litellm、…) |
version | string | 正確なバージョン(1.20.0) |
次の JSON を返します。
| フィールド | 意味 |
|---|---|
outsideCoverage | 製品がカバー対象外の場合は true。安全という意味ではなく、リスクは不明です。 |
riskState | カバー対象外の場合は critical | high | elevated | low | none | null |
riskFactors | riskState の判定に使われるリスク要因の語彙 |
maxEpss | 該当する CVE 全体で最も高い EPSS 確率 |
activelyExploited | CISA 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 / supplyChainDescription | PyPI/npm のサプライチェーンシグナル |
API キーが無効または未指定の場合、あるいはレート制限に達した場合は、JSON の error 文字列を含む isError: true を返します。
check_batch_vulnerabilities
| 引数 | 型 | 説明 |
|---|---|---|
items | array | { product, version } オブジェクトの配列。1 回の呼び出しにつき最大 100 個です。各項目で API 呼び出しを 1 回消費します。 |
クォータは事前に確認されます。バッチ処理によって月間クォータを超過する場合、課金対象の呼び出しが行われる前に 429 が返されます。
count と results を含む JSON を返します。サポート対象の項目には、typosquat を除き、check_package_vulnerability と同じフィールドが含まれます。カバー対象外の項目は、product、version、outsideCoverage: true、および riskState: null のみを返します。
list_covered_products
引数はありません。API キーがある場合、GET /v1/products から取得した最新の JSON を返します。
| フィールド | 意味 |
|---|---|
source | API から取得した場合は "live" |
total | CVE 製品とサプライチェーンパッケージの合計数 |
cveProducts | 表示名が付いた CVE インフラストラクチャのスラッグ |
supplyChainPackages | 監視対象の PyPI/npm パッケージ |
API キーがない場合、バンドルされている静的リストを返します。
| フィールド | 意味 |
|---|---|
source | "static" |
count | バンドルされているインフラストラクチャ製品の数 |
products | { slug, display } エントリーの配列 |
get_cve_details
| 引数 | 型 | 説明 |
|---|---|---|
cve_id | string | CVE 識別子。例:CVE-2021-44228 |
次の項目を含む JSON を返します。
| フィールド | 意味 |
|---|---|
found | CVE が Attestd のデータベースにある場合は true、404 の場合は false(エラーではありません) |
cveId | CVE 識別子 |
description | NVD の説明文 |
cvssScore / cvssVector | CVSS 基本スコアとベクトル |
activelyExploited | CISA KEV シグナル |
remoteExploitable | リモートから悪用可能かどうか |
authenticationRequired | 悪用に認証が必要かどうか |
affectedProducts | この CVE の影響を受ける Attestd 製品のスラッグ |
epssScore / epssPercentile | EPSS の確率とパーセンタイル |
sourcePublishedAt / lastCheckedAt | ISO タイムスタンプ |
CVE が見つからない場合、isError を付けずに { "found": false, "cveId": "..." } を返します。API キーが無効または未指定の場合、あるいはレート制限に達した場合は、JSON の error 文字列とともに isError: true を返します。
get_usage
引数はありません。API キーが必要です。GET /v1/usage から取得した JSON を返します。
| フィールド | 意味 |
|---|---|
tier | アカウントのプランのティア |
keyCallsThisMonth | 今回の請求期間にこのキーで請求された呼び出し数 |
accountCallsThisMonth | アカウント上のすべてのキーで請求された呼び出し数 |
includedCalls | 月間の呼び出し上限 |
billingPeriodStart / billingPeriodEnd | ISO タイムスタンプ |
overageCalls / estimatedOverageUsd | 上限を超過した呼び出し数と超過料金の推定額 |
API キーが無効または未指定の場合、あるいはレート制限に達した場合は、JSON の error 文字列とともに isError: true を返します。
ローカルで検証する
npm run build
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js
ライセンス
MIT。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。