mcpField
T
threatcheck

threatcheck

ローカル
github.com/CloudCorpRecordsセキュリティ02 日前に更新

threatcheck について

threatcheck は、コンテンツやリンクを扱う前に安全性を確認したいエージェント向けに、isMalicious 脅威インテリジェンスサービスへ接続するローカルブリッジです。プロンプトインジェクションのスキャン、指標の評判照会、CVE 検索、脆弱性監視を転送します。

主な機能

  1. 01コンテンツ内のプロンプトインジェクションとリンクをスキャン
  2. 02URL、ドメイン、IP などの評判を確認
  3. 03最近公開・悪用された CVE を取得
  4. 04Web サイトと依存ファイルの脆弱性を監視
  5. 05組織内の検出結果のステータスを更新
  6. 06CLI と stdio MCP サーバーを提供

活用シーン

  1. 01ページ取得やメール処理の前にリスクを確認
  2. 02リンクを開く前に評判を照会
  3. 03CVE の深刻度と悪用状況を確認
  4. 04Web サイトやプロジェクト依存関係の新たな脆弱性を監視

MCP 対応

MCP クライアントに脅威スキャン、指標・CVE の照会、脆弱性監視、検出結果のステータス更新ツールを公開し、呼び出しを上流サービスへ転送します。一部の呼び出しはアカウントの利用枠や監視ソース枠を消費します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-threatcheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/threatcheck"
]
}
}
}
起動コマンドnpx -y @reneturcios/threatcheck

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/threatcheck0.1.0
ocighcr.io/cloudcorprecords/threatcheck:0.1.0

ツール

12

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
contentstringはいスキャンする信頼できないコンテンツ。
source_urlstringいいえ任意:コンテンツの取得元 URL。

詳細

threatcheck

threatcheck は、エージェントがこれから操作しようとしている対象の前に、脅威インテリジェンスのゲートを設けます。取得したページ、メール、チケット、ツールの結果に基づいて処理を行う前に、プロンプトインジェクションや、その中に含まれる URL、ドメイン、IP をスキャンできます。リンクを開く前には、アドレス、ハッシュ、メールアドレス、電話番号などの単一のインジケーターを照会し、リスクスコアと、それを引用するブロックリストを含む評価結果を取得できます。CVE の詳細を確認したり、公開されたばかりのものを一覧表示したり、実際に悪用されたことが確認されているものを一覧表示したりすることもできます。また、運用しているサイトやプロジェクトの依存関係ファイルを毎日監視対象に設定すると、新たな検出結果が見つかり次第届きます。

このパッケージはローカルでは何も判断しません。ライブエンドポイントから取得した内容そのままのツールリストを返し、各ツール呼び出しを上流に中継して、返された内容を一切変更せずに返します。以下のツールの説明に記載されているとおり、複数の呼び出しはお客様ご自身の月間クォータに計上され、監視ツールはお客様ご自身のプランの監視対象枠を消費します。ここには購入、プランの追加チャージ、チェックアウト、キーの発行を行うツールはありません。このインターフェースで消費されるのは、お客様がすでに保有しているアカウントの枠だけです。また、検出結果ツールが変更できるのは、お客様ご自身の組織内にある検出結果のステータスだけです。

ツール

  • scan_before_use — 信頼できないコンテンツをスキャンしてプロンプト インジェクションを検出し、実行前に含まれる URL、ドメイン、IP を確認します。必須: content。 任意:source_url。block、 warn、allow のいずれかの判定を返します。
  • check_url — 1 つの URL、 ドメイン、IP を対象とする低コストのフェッチ前ゲートです。必須:url。block、warn または allow を返します。
  • check_indicator — 1 つのインジケーターについて、レピュテーションの全体像を確認します。対象は IP、ドメイン、URL、ファイルハッシュ(MD5、 SHA-1 または SHA-256)、メールアドレス、電話番号で、難読化形式も受け付けます。必須:indicator。 任意:enrichment(fast、standard、basic) および国内形式の電話番号用の country。 ブロックリスト、証拠、初回/最終確認日時、コンテキストを引用し、判定、概要、 推奨アクション、0~100 のリスクスコアを返します。月間クォータを 1 リクエスト分消費します。
  • get_cve — 1 件の CVE の全情報を取得します。説明、深刻度、 CVSS、EPSS、CISA KEV のステータス、悪用の証拠、 影響を受けるパッケージ、ベンダーのアドバイザリーが含まれます。必須: id(例:CVE-2021-44228)。月間クォータを 1 リクエスト分消費します。
  • recent_cves — 最新公開の CVE を新しい順に、 最大 20 件取得します。任意:severity (CRITICAL、HIGH、MEDIUM、LOW)と limit (1~20、デフォルトは 10)。月間クォータを 1 リクエスト分消費します。
  • search_indicators — ブランド名やドメイン名に似た登録済みドメインを検索します。 タイポスクワッティング、ホモグリフ、他の TLD での同一名、フィッシング関連語を組み合わせたものが対象です。 必須:keywords。任意:limit(1~500、 デフォルトは 50)。月間クォータを 1 リクエスト分消費します。
  • check_indicators — 1 回の呼び出しで、種類を混在させて最大 100 件の インジケーターのレピュテーションを確認します。難読化形式も受け付けます。必須: indicators。任意: enrichment(basic、standard、full)と country。送信する一意のインジケーターごとに、月間クォータを 1 リクエスト分消費します。
  • scan_email — メールメッセージを配信または開封する前に、フィッシングと マルウェアをスキャンします。eml(RFC 5322 の生メッセージ)または message(すでに解析済みのフィールド)のいずれか 1 つだけを送信してください。任意: authservId、 trustAuthenticationResults、 trustedHops、connectingIp。判定、 推奨アクション、リスクスコア、理由、確認できなかった内容を返します。メッセージごとにスキャンメーターを 1 回分消費します。
  • exploited_cves — 最近の期間に、悪用が確認された CVE を取得します。任意: days(1~30、デフォルトは 7)と limit(1~50、デフォルトは 20)。キーがある場合は月間クォータを 1 リクエスト分消費します。キーがなくても動作しますが、IP によってレート制限されます。
  • watch_domain — 自身が運用する公開ウェブサイト 1 件の脆弱性監視を毎日開始します。必須: domain。任意:name。プランの監視対象ソースを 1 つ使用します。監視対象ドメインを再登録しても 費用はかかりません。
  • watch_dependencies — ロックファイルまたは SBOM のテキストから、プロジェクトの脆弱性監視を開始します (パスではなくコンテンツを渡してください)。 必須:content と name。任意:format と includeDev。プランの監視対象ソースを 1 つ使用します。
  • ack_finding — 自身の監視対象の検出項目 1 件のステータスを設定します。ACKNOWLEDGED、PATCHED、 NOT_AFFECTED、SNOOZED のいずれかを指定します(SNOOZED の場合は snoozedUntil を指定し、 最大 90 日先まで設定できます)。必須:findingId と status。

check_indicator または check_indicators で確認した メールアドレスや電話番号に対して返されるのは、そのインジケーターに関する脅威判定(悪意あり、疑わしい、 問題なし、不明)と情報源であり、個人に関する個人データではありません。また、何も情報がないという理由だけで問題なしと判定されることはありません。

設定

  • ISMALICIOUS_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトは https://api.ismalicious.com/mcp です。(この上書き用フックは、この再構築で独自に明示したものです。)
  • ISMALICIOUS_API_KEY(任意)— 設定すると、すべての上流リクエストに、独自の isMalicious API キーを格納した Authorization: Bearer <key> ヘッダーが付与されます。設定されていない場合、キー ヘッダーは送信されず、キーなしで呼び出しが実行されます。(環境変数名は元の記録にある npm パッケージの項目で、ヘッダー名はそのリモート宣言で確認されています。Bearer 形式と転送自体は再構築で明示したもので、元のインターフェースはキーなしで記録されていました。)
転送の仕組み

最初のツール呼び出しで、上流とのストリーミング可能な HTTP セッションが開かれます。まず JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、clientInfo 名 threatcheck)を送り、次に notifications/initialized 通知、続いて呼び出し元の引数を変更せずに tools/call リクエストを送ります。上流が initialize に Mcp-Session-Id ヘッダーを付けて応答した場合、その値は以降のすべてのリクエストに引き継がれ、プロセスの存続中はセッションが維持されます。応答は通常の JSON またはサーバー送信イベントとして届くことがあり、どちらも読み取られます。

上流で成功した結果は、上流が設定した isError フラグも含め、そのまま返されます。JSON-RPC エラー、2xx 以外のステータス、読み取り不能な応答、または完了できないリクエストなどの失敗は、テキストが threatcheck error: で始まる isError の結果として返されます(この形式は、この再構築で独自に明示したものです)。

CLI

各ツールは、JSON 引数文字列を受け取るサブコマンドとしても利用できます。

npx @reneturcios/threatcheck check_url '{"url":"https://example.com"}'
npx @reneturcios/threatcheck check_indicator '{"indicator":"203.0.113.7"}'
npx @reneturcios/threatcheck get_cve '{"id":"CVE-2021-44228"}'
npx @reneturcios/threatcheck --version

終了コード:成功時は 0、isError の結果の場合は 1、使用方法に誤りがある場合は 2 です。

MCP サーバー

npx -y @reneturcios/threatcheck mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "threatcheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/threatcheck", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/threatcheck
docker run --rm ghcr.io/cloudcorprecords/threatcheck --version

コンテナーのデフォルトコマンドは mcp であるため、最初の形式は stdio の MCP サーバーです。それ以外の引数は通常どおり CLI に渡されます。

開発

npm install
npm run build
npm test
npm run dev

テストスイートはすべてスタブ化された JSON-RPC 上流に対して実行され、実際のネットワーク呼び出しは行いません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。