mcpField
C
Critical Infrastructure Interdependency MCP Server

Critical Infrastructure Interdependency MCP Server

リモート
ryanclinton--critical-infrastructure-interdependency-mcp.apify.actorクラウド・インフラ032 週間前に更新

Critical Infrastructure Interdependency MCP Server について

Critical Infrastructure Interdependency MCP Serverは、エネルギー、通信、水道、サイバー、交通、金融の各ネットワークにおける障害の波及を分析します。インフラと災害データを組み合わせ、レジリエンス評価や復旧計画を支援します。

主な機能

  1. 01分野横断インフラネットワークの構築
  2. 02障害の連鎖シミュレーション
  3. 03重要インフラノードの特定
  4. 04サイバー・フィジカル攻撃経路の評価
  5. 05地理的な災害リスクの分析
  6. 06復旧タイムラインの推定

活用シーン

  1. 01災害によるインフラ影響のモデル化
  2. 02優先的に保護する施設の選定
  3. 03サイバー脆弱性から物理リスクへの経路追跡
  4. 04障害後の復旧作業の計画

MCP 対応

リモートMCPエンドポイントを通じて8種類の専用ツールを提供し、MCP対応AIエージェントによるインフラ分析や連鎖分析を可能にします。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://ryanclinton--critical-infrastructure-interdependency-mcp.apify.actor/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

重要インフラ相互依存関係 MCP サーバー

ApifyForge で表示 | Apify Store で利用


クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf)に追加します。

{
  "mcpServers": {
    "critical-infrastructure-interdependency-mcp": {
      "url": "https://ryanclinton--critical-infrastructure-interdependency-mcp.apify.actor/mcp"
    }
  }
}

AI エージェント向けの重要インフラ連鎖分析を提供します。この MCP サーバーは、エネルギー、通信、水道、サイバー、輸送、金融の各ネットワークにまたがる相互依存関係をマッピングし、障害がどのように伝播するかをシミュレーションします。MCP 対応の AI エージェントを接続すると、14 のライブソースから取得した実データに対し、6 種類の数学的アルゴリズムを実行する8つの専用ツールを利用できます。

このサーバーは、OpenStreetMap のインフラデータ、DNS レコード、脆弱性データベース、地震・気象・災害フィードから6層の多重ハイパーグラフを構築し、BTW 砂山連鎖シミュレーション、ボロノイ地理的併設リスク、クリティカルパスメソッドによる復旧時間の推定、超ラプラシアン代数的連結性指標を適用して、実用的なレジリエンス情報を生成します。API トークン以外のセットアップは不要です。Model Context Protocol の /mcp エンドポイント経由で接続してください。

どのようなデータにアクセスできますか?

データ項目ソース対象範囲
📍 物理インフラノードOSM POI Search世界各地の OpenStreetMap(空港、変電所、浄水場、データセンター)
🌐 DNS レコードと IP トポロジーDNS Record Lookup任意のドメイン — A、MX、NS、CNAME レコード
🛰️ インターネットホストの露出状況Censys Searchオープンポートとバナーを含む IPv4 全域のスキャンデータ
🔒 SSL 証明書チェーンcrt.sh Search任意のドメインの Certificate Transparency ログ
💻 Web サイトの技術スタック識別情報Website Tech Stack Detector任意の URL の CMS、フレームワーク、CDN、ホスティング
🌍 IP ジオロケーションIP Geolocation Lookupネットワークトポロジー向けの、世界中の IP アドレスから座標への変換
⚠️ CVE 脆弱性NVD CVE SearchCVSS スコアを含む NVD 全データベース
🚨 現在悪用されている脆弱性CISA KEV Catalog修復期限付きの、悪用が確認された脆弱性
🌋 地震イベントUSGS Earthquake Searchマグニチュードと座標を含む世界の地震カタログ
🌩️ 気象警報NOAA Weather Alerts米国国立気象局が発令中の警報
🏚️ 米国の災害宣言FEMA Disaster Search州別の大統領災害宣言
🌊 洪水警報UK Flood Monitoringイングランドおよびウェールズ環境庁の洪水データ
🌏 世界の災害警報GDACS国連関連機関によるリアルタイムの世界災害通知
📌 ジオコーディングNominatimOpenStreetMap のジオコーダー — 任意の市、州、国

Critical Infrastructure Interdependency MCP Server を使用する理由

これまで、インフラのレジリエンス分析には、専用の GIS ソフトウェア、独自の脆弱性データベース、構築に数週間かかるカスタムシミュレーションコードが必要でした。コンサルティング会社は、地域インフラの評価1件につき 50,000~200,000 ドルを請求しています。緊急事態管理機関が実施する机上演習では、定量的な連鎖的影響の動態がまったく把握できません。

この MCP サーバーは、インフラの探索から連鎖的影響のシミュレーション、復旧期間の推定まで、パイプライン全体を1回の AI エージェントとの会話で自動化します。アナリストは、ツールを1回呼び出すだけで、カテゴリー4のハリケーンがテキサス州の電力網に与える影響をモデル化し、金融サービスに連鎖的な影響を及ぼす3つの変電所を特定して、クリティカルパス法で復旧時間を推定できます。AI アシスタントから離れる必要はありません。

  • スケジューリング — 毎週レジリエンスのスナップショットを実行して、インフラの変化が代数的連結度に与える影響を経時的に追跡します
  • API アクセス — Apify と連携する Python、JavaScript、または任意の HTTP クライアントから、プログラムで評価を実行します
  • プロキシローテーション — 基盤となるデータ収集アクターは、Apify の組み込みプロキシインフラストラクチャを利用して、大規模な探索を安定して実行します
  • 監視 — インフラの変化後にレジリエンス指数がしきい値を下回った場合、Slack またはメールでアラートを受け取ります
  • 連携 — 結果を Zapier、Make、Google Sheets に接続するか、Webhook 経由で構造化された調査結果を GRC プラットフォームに直接送信します

特徴

  • 6 層マルチプレックスハイパーグラフの構築 — 実際の OSM POI データ、DNS レコード、ジオコーディング済み座標をもとに、エネルギー、通信、水道、サイバー、輸送、金融の各セクターを横断する InfraNode/InfraEdge ネットワークを構築します
  • セクター間の依存度を固定値で設定 — レイヤー間のエッジで、実証的な結合強度を表現します。通信からエネルギーは 0.9、金融からサイバーは 0.9、サイバーから通信は 0.95、水道からエネルギーは 0.85 です
  • BTW 砂山崩しカスケードシミュレーション — Bak-Tang-Wiesenfeld の自己組織化臨界性モデルを実装します。各ノードは負荷 z_i がしきい値 z_c = 1.0 を超えると倒壊し、負荷を z_neighbor += z_i / degree(i) として隣接ノードに再分配します。雪崩の規模分布とべき乗則指数を追跡します
  • SOC 検出 — 臨界指数を測定し、小さな摂動が大規模な崩壊を引き起こす可能性のある自己組織化臨界挙動を示すシステムを特定します
  • グラフ積によるサイバー・物理結合 — サイバー攻撃グラフ(AG)と物理依存グラフ(PG)のテンソル積を構築し、CVE の脆弱性から物理インフラの損害へと連鎖する攻撃経路を特定します
  • ボロノイ図による地理的な近接リスク評価 — 地域をボロノイセルに分割し、地震、洪水、気象、災害のハザードデータを重ね合わせ、各セルのリスクを次の式で算出します:存在するセクター数 × ハザード発生確率 ×(1 − シャノン多様性エントロピー)
  • CPM による復旧タイムラインの推定 — セクターの復旧順序(エネルギー → 水道 → 通信 → 輸送 → サイバー → 金融)を考慮した依存関係 DAG に対して順方向/逆方向パスを実行し、デフォルトの復旧時間(エネルギー:72h、水道:48h、通信:24h)を適用して、クリティカルパスと余裕時間ゼロのボトルネックノードを特定します
  • スーパーラプラシアンの代数的連結性 — 6 層すべてにわたるスーパーラプラシアン行列の λ_2(フィードラー値)を計算します。フィードラー・ベクトルに基づき、レジリエンスを CRITICAL/LOW/MODERATE/HIGH/VERY_HIGH に分類します
  • 複数の指標による重要ノードの特定 — カスケード影響度 40%、ノード削除時の代数的連結性の低下 30%、次数中心性 30%を合算してノードをスコアリングします
  • ハバーサイン距離の計算 — 地理的近接エッジと影響範囲の特定(地域中心からの半径を km で指定)に、正確な球面幾何を使用します
  • 並列アクターのオーケストレーション — runActorsParallel を使用して最大 14 個の基盤アクターを同時実行し、ツール呼び出しあたりの総実行時間を 20 分以上から 3〜5 分に短縮します
  • 利用上限の適用 — 各ツール呼び出しは実行前に Actor.charge() のイベント上限を確認し、1 回の実行あたりの予算に達すると正常に停止します
  • キーワードに基づくセクター分類 — 6 つのドメインにわたる 60 以上のインフラ関連キーワード(「変電所」、「データセンター」、「導水路」、「手形交換所」など)を使用して、OSM POI ノードをセクターに分類します

重要インフラの相互依存関係分析のユースケース

緊急事態管理と災害への備え

州および連邦政府の緊急事態管理担当者は、model_natural_disaster_impact を使用して、地震、洪水、ハリケーンが発生前に地域のインフラをどのように機能停止させるかをシミュレーションします。このツールは、実際の USGS 地震データおよび NOAA 気象警報を OSM インフラネットワークと組み合わせ、直接被害を受けるノードから BTW カスケードシミュレーションを実行し、CPM で総復旧時間を推定します。これにより、ネットワークの影響を受ける割合を定量化し、復旧作業のボトルネックを特定した、体系的な概要を作成します。

重要インフラの保護と投資の優先順位付け

施設のセキュリティ担当者やインフラ投資アナリストは、identify_critical_nodes を使用して、地域内のすべてのノードを複合重要度スコアで順位付けします。すべてを同等に保護するのではなく、複数指標によるスコアリング(カスケード影響度、代数的連結性の低下、次数中心性)により、障害がセクター横断ネットワーク全体を最も不安定にする 5〜10 個のノードを特定し、重点的な強化投資を可能にします

ICS/OT セキュリティのためのサイバーフィジカル脅威モデリング

ICS セキュリティチームや APT レッドチームは、assess_cyber_physical_attack を使用して、SCADA システム、ICS ソフトウェア、またはインターネットに公開された制御システムの脆弱性が、物理インフラへの損害にどのようにつながるかをマッピングします。グラフベースの製品攻撃対象領域モデルは、NVD の CVE と CISA KEV のエントリーから、Censys によって検出された公開ホストを経て物理的な依存関係ノードに至る、最大重みのエクスプロイトチェーンを追跡し、最も悪用されやすいサイバー侵入点と、最も脆弱な物理資産を特定します。

インフラのレジリエンス監査と規制遵守

NERC CIP、TSA のパイプラインセキュリティ指令、または DORA の要件の対象となる公益事業、通信事業者、金融機関は、generate_resilience_assessment を使用して、定量的なレジリエンス評価レポートを生成します。この評価では、ハイパーグラフの構築、カスケードシミュレーション、サイバーフィジカル結合、地理的な近接リスク、CPM による復旧時間の推定、超ラプラシアンの代数的連結度という 6 つすべてのアルゴリズムを組み合わせ、調査結果、推奨事項、システムレジリエンス指数を含む、単一の構造化された出力を生成します。

保険の引受と大規模災害リスクのモデリング

保険会社や再保険会社の大規模災害リスクモデラーは、compute_geographic_correlation を使用して、複数のインフラセクターが同一のハザードゾーン内に集中している地域を特定します。ボロノイ分割とシャノンエントロピー多様性指数により、従来の不動産向け大規模災害モデルでは見落とされる近接リスクが明らかになります。FEMA の洪水区域内にある変電所の隣のデータセンターは、孤立した資産とは根本的に異なるリスクプロファイルを持ちます。

インシデント後の復旧計画

インシデント指揮官やインフラ復旧チームは、障害発生後に estimate_recovery_timeline を使用して、完全復旧までのクリティカルパスを特定します。CPM の順方向・逆方向パス計算では、物理的な依存関係(電力と通信が復旧する前に金融システムを復旧することはできません)が考慮され、遅延した場合に復旧全体の所要時間を左右する、余裕時間がゼロのボトルネックノードが特定されます。

インフラ分析にこの MCP サーバーを使用する方法

  1. サーバーを AI エージェントに接続する — クライアント設定に MCP エンドポイント URL を追加します。Claude Desktop の場合は、以下の「接続方法」セクションにある JSON ブロックを claude_desktop_config.json に貼り付けます。設定に API キーは不要です。認証はサーバーが処理します。

  2. 地域から始める — エージェントとの会話で、「Houston, Texas」や「Netherlands」のような都市、州、または国名を指定して build_infrastructure_network を呼び出すよう依頼します。既知のインフラドメイン名を指定すると、サイバーレイヤーを任意で強化できます。

  3. 分析ツールを実行する — 同じ地域について、simulate_cascade_failure、compute_geographic_correlation、identify_critical_nodes、または model_natural_disaster_impact を呼び出すようエージェントに依頼します。各ツールはネットワークを新たに構築するか、以前の build_infrastructure_network 呼び出しの出力を受け取ります。

  4. 構造化された結果を確認する — 各ツールは、ネットワーク統計、順位付けされた調査結果、セクター別の内訳、地理座標を含む JSON レポートを返します。調査結果の要約、リスク概要の作成、または構造化データのエクスポートをエージェントに依頼できます。

この MCP サーバーへの接続方法

Claude Desktop
{
  "mcpServers": {
    "critical-infrastructure-interdependency": {
      "url": "https://critical-infrastructure-interdependency-mcp.apify.actor/mcp"
    }
  }
}
Cursor
{
  "mcpServers": {
    "critical-infrastructure-interdependency": {
      "url": "https://critical-infrastructure-interdependency-mcp.apify.actor/mcp"
    }
  }
}
Windsurf / Codeium
{
  "mcpServers": {
    "critical-infrastructure-interdependency": {
      "url": "https://critical-infrastructure-interdependency-mcp.apify.actor/mcp"
    }
  }
}

MCP ツールリファレンス

ツール説明一般的な費用
build_infrastructure_networkOSM の POI、DNS、技術スタック、ジオコーディング、IP ジオロケーションのデータから、6 層の多重ハイパーグラフを構築します。超隣接行列と層ごとの統計を返します。$150–200
simulate_cascade_failureトリガーノードまたはセクターを設定可能な BTW 砂山カスケードシミュレーションを実行します。雪崩サイズ分布、臨界指数、SOC フラグを返します。$150–250
assess_cyber_physical_attackCVE/KEV/Censys 攻撃グラフと物理依存関係グラフのグラフ積を用いて、サイバーから物理への攻撃対象領域をモデル化します。エクスプロイトチェーンと最も脆弱な資産を返します。$200–350
compute_geographic_correlation複合ハザード(地震、洪水、気象、災害)を重ね合わせたボロノイ分割を行います。相関リスクスコアに基づいて順位付けされた高リスクセルを返します。$150–300
estimate_recovery_timeline依存関係 DAG に対して CPM の順方向パスと逆方向パスを計算します。復旧所要時間、クリティカルパス上のノード、セクターの復旧順序、スラックがゼロのボトルネックを返します。$150–200
identify_critical_nodesカスケードへの影響(40%)+代数的連結性の低下(30%)+次数中心性(30%)による複合スコアでノードを順位付けします。説明付きの上位 N 件を返します。$150–250
model_natural_disaster_impact指定された災害の種類と影響範囲に対して、ハザードデータ+インフラネットワーク+カスケードシミュレーション+CPM による復旧分析の全パイプラインを実行します。$200–400
generate_resilience_assessment14 のすべてのデータソースを対象に、6 つのアルゴリズムをすべて実行して包括的な監査を行います。システムレジリエンス指数、調査結果、優先順位付けされた推奨事項を返します。$300–400
ツールの入力パラメーター
ツールパラメーター型必須デフォルト説明
すべてのツールregionstringはい—市、州、または国の名前(例:「Houston, Texas」)
build_infrastructure_networkdomainsstring[]いいえ—サイバー層のエンリッチメントに使用するインフラストラクチャのドメイン名
build_infrastructure_networksectorsstring[]いいえ6 つすべて対象セクター:エネルギー、通信、水道、サイバー、運輸、金融
build_infrastructure_networkradius_kmnumberいいえ100地域の中心からの検索半径(キロメートル)
simulate_cascade_failuretrigger_nodesstring[]いいえ—トリガーする特定のノード ID(build_infrastructure_network から取得)
simulate_cascade_failuretrigger_sectorstringいいえ—このセクター内で重要度が最も高い 3 つのノードをトリガーします
simulate_cascade_failuremax_cascade_stepsnumberいいえ50カスケード伝播の最大反復回数
assess_cyber_physical_attackdomainsstring[]はい—サイバー攻撃対象領域をスキャンする対象ドメインまたは IP
assess_cyber_physical_attackcve_keywordsstringいいえ"SCADA ICS critical infrastructure"脆弱性クエリ用の CVE 検索キーワード
compute_geographic_correlationinclude_earthquakesbooleanいいえtrueUSGS の地震オーバーレイを含めます
compute_geographic_correlationinclude_weatherbooleanいいえtrueNOAA の気象警報オーバーレイを含めます
compute_geographic_correlationinclude_floodsbooleanいいえtrueFEMA/UK Flood/GDACS のオーバーレイを含めます
compute_geographic_correlationdays_lookbacknumberいいえ30含める過去のハザードデータの日数
estimate_recovery_timelinefailed_node_idsstring[]いいえすべてのノードカスケード出力から指定する、障害が発生したノード ID
estimate_recovery_timelinefailed_sectorsstring[]いいえ—これらのセクター内のすべてのノードで障害が発生したと仮定します
estimate_recovery_timelinescenariostringいいえ—出力のコンテキストとして使用するシナリオの説明
identify_critical_nodestop_nnumberいいえ10返す重要度上位ノードの数
model_natural_disaster_impactdisaster_typestringいいえ"all"earthquake、flood、hurricane、wildfire、または "all"
model_natural_disaster_impactimpact_radius_kmnumberいいえ100災害の影響範囲の半径(km)
generate_resilience_assessmentdomainsstring[]いいえ—サイバー層用のインフラストラクチャドメイン
generate_resilience_assessmentcve_keywordsstringいいえ"SCADA ICS critical infrastructure"CVE 検索キーワード

出力例

以下は、主要な都市圏で model_natural_disaster_impact を実行した際の代表的な出力です。

{
  "region": "Houston, Texas",
  "disasterType": "earthquake",
  "impactZone": {
    "center": { "lat": 29.7604, "lon": -95.3698 },
    "radiusKm": 100,
    "directlyImpactedNodes": 34,
    "cascadeAdditionalNodes": 18,
    "totalAffectedNodes": 52,
    "totalNetworkNodes": 67,
    "percentageAffected": 78
  },
  "cascadeAnalysis": {
    "totalAvalanches": 12,
    "maxAvalancheSize": 19,
    "isSelfOrganizedCritical": true,
    "affectedSectors": ["energy", "water", "telecom", "transport", "financial"]
  },
  "recoveryEstimate": {
    "totalRecoveryHours": 218.4,
    "totalRecoveryDays": 9.1,
    "criticalPathLength": 8,
    "sectorRecoveryOrder": [
      { "sector": "energy",    "startHour": 0,   "endHour": 68.2 },
      { "sector": "water",     "startHour": 0,   "endHour": 51.7 },
      { "sector": "telecom",   "startHour": 68.2, "endHour": 89.5 },
      { "sector": "transport", "startHour": 68.2, "endHour": 97.1 },
      { "sector": "cyber",     "startHour": 89.5, "endHour": 101.8 },
      { "sector": "financial", "startHour": 101.8,"endHour": 110.3 }
    ],
    "bottleneckNodes": ["node-4", "node-11", "node-23"]
  },
  "geographicRisk": {
    "highRiskCells": 7,
    "maxCorrelationRisk": 3.84
  },
  "hazardData": {
    "earthquakes": 14,
    "weatherAlerts": 6,
    "femaDisasters": 9,
    "gdacsAlerts": 3,
    "floodWarnings": 5
  }
}

identify_critical_nodes の代表的な出力:

{
  "region": "Rotterdam, Netherlands",
  "networkSize": { "nodes": 71, "edges": 184 },
  "resilienceIndex": {
    "algebraicConnectivity": 0.12,
    "resilience": "LOW",
    "networkPartitionRisk": 0.73
  },
  "criticalNodes": [
    {
      "nodeId": "node-3",
      "nodeName": "Pernis Oil Refinery Power Substation",
      "sector": "energy",
      "criticalityScore": 0.891,
      "reasons": ["Triggers avalanche size 23 in BTW cascade", "Removal reduces lambda_2 by 0.047", "Degree centrality 0.31 across all layers"]
    },
    {
      "nodeId": "node-17",
      "nodeName": "Rotterdam Port Fiber Exchange",
      "sector": "telecom",
      "criticalityScore": 0.764,
      "reasons": ["Cascade impact to 4 sectors", "Inter-layer hub: telecom/cyber/financial", "Zero slack in CPM recovery path"]
    }
  ],
  "sectorBreakdown": [
    { "sector": "energy",    "criticalCount": 4, "avgCriticality": 0.781 },
    { "sector": "telecom",   "criticalCount": 3, "avgCriticality": 0.694 },
    { "sector": "water",     "criticalCount": 2, "avgCriticality": 0.612 },
    { "sector": "cyber",     "criticalCount": 1, "avgCriticality": 0.587 },
    { "sector": "transport", "criticalCount": 2, "avgCriticality": 0.541 },
    { "sector": "financial", "criticalCount": 1, "avgCriticality": 0.498 }
  ]
}

出力フィールド

フィールド型説明
regionstring入力された地域名
network.totalNodesnumber6 層すべてのインフラノードの合計数
network.totalEdgesnumber層内エッジと層間エッジの合計数
network.interLayerEdgesnumber超隣接行列におけるセクター間の依存関係エッジ数
network.layersobjectセクターごとのノード数、エッジ数、密度
nodes[].idstring一意のノード識別子(例:「node-14」)
nodes[].namestringOSM またはジオコーダーから取得したインフラ名
nodes[].sectorstringセクター:energy / telecom / water / cyber / transport / financial
nodes[].criticalitynumber複合スコアリングによるノードの重要度(0~1)
nodes[].latnumber緯度座標
nodes[].lonnumber経度座標
simulation.isSelfOrganizedCriticalboolean雪崩サイズがべき乗則に従う場合は true
simulation.criticalityExponentnumber雪崩サイズ分布のべき乗則指数
simulation.maxAvalancheSizenumberすべてのトリガーで観測された最大カスケードサイズ
avalanches[].affectedSectorsstring[]このカスケードイベントが到達したセクター
attackSurface.productGraphNodesnumberサイバー × 物理プロダクトグラフ内のノード数
attackSurface.attackSurfaceAreanumber集約された攻撃対象領域の指標
criticalPaths[].exploitChainstring[]攻撃経路を構成する、順序付けられた CVE/ホスト ID
criticalPaths[].physicalCascadestring[]下流で影響を受ける物理ノード ID
criticalPaths[].combinedRisknumberサイバーと物理の複合リスクスコア
geoCorrelation.highRiskCellsnumber相関リスクがしきい値 1.0 を超えるボロノイセルの数
geoCorrelation.maxCorrelationRisknumberすべてのセルにおける最大リスク値
recovery.totalRecoveryHoursnumberCPM で推定した復旧所要時間の合計
recovery.criticalPathstring[]復旧所要時間の合計を決定する、スラックがゼロのノード ID
recovery.bottleneckNodesstring[]遅延すると復旧所要時間の合計が延びるノード
recovery.sectorRecoveryOrderobject[]復旧順序におけるセクターごとの開始/終了時間
resilienceIndex.algebraicConnectivitynumber超ラプラシアンの Lambda_2 Fiedler 値
resilienceIndex.resiliencestringCRITICAL / LOW / MODERATE / HIGH / VERY_HIGH
resilienceIndex.networkPartitionRisknumberストレス下でネットワークが分断される確率に相当するスコア
findingsstring[]複合分析から自動生成された警告と推奨事項

重要インフラ分析の費用はいくらですか?

この MCP サーバーはイベントごとの従量課金制を採用しており、ツール呼び出しごとに料金が発生します。プラットフォームのコンピューティング費用も含まれています。

シナリオツール1 回あたりの費用月額の目安
地域の簡易スナップショットidentify_critical_nodes~$0.04$0.04
災害影響シミュレーションmodel_natural_disaster_impact~$0.04$0.04
レジリエンスの全面監査generate_resilience_assessment~$0.04$0.04
週次モニタリング(1 地域)任意の単一ツール × 4~$0.04$0.16
複数地域プログラム(10 地域)generate_resilience_assessment × 10~$0.04$0.40

ツール呼び出しごとに、プラットフォームイベントの料金が 1 回分発生します。データ収集時に、基盤となるアクター(OSM、USGS、NVD など)が Apify のコンピューティングクレジットを消費します。$0.04 のイベント料金は MCP サーバーのオーケストレーションレイヤーを対象とし、基盤となるアクターの実行にはお客様のプラットフォームクレジット残高が使用されます。

実行ごとに最大支出額を設定して費用を管理できます。設定した予算に達すると、サーバーは正常に停止します。Apify Free プランには月額 $5 分のプラットフォームクレジットが含まれているため、数十回の分析ツール呼び出しを無料で行えます。

API を使用した重要インフラ分析

Python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/critical-infrastructure-interdependency-mcp").call(run_input={})

print(f"MCP server running at: https://critical-infrastructure-interdependency-mcp.apify.actor/mcp")
print(f"Actor run ID: {run['id']}")
print(f"Status: {run['status']}")
JavaScript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/critical-infrastructure-interdependency-mcp").call({});

console.log(`MCP server running at: https://critical-infrastructure-interdependency-mcp.apify.actor/mcp`);
console.log(`Actor run ID: ${run.id}`);
console.log(`Status: ${run.status}`);
cURL
# Start the MCP server actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~critical-infrastructure-interdependency-mcp/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

# The MCP endpoint becomes available at:
# https://critical-infrastructure-interdependency-mcp.apify.actor/mcp
# Use this URL in your MCP client configuration
HTTP 経由での MCP ツールの直接呼び出し
curl -X POST "https://critical-infrastructure-interdependency-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "identify_critical_nodes",
      "arguments": {
        "region": "Houston, Texas",
        "top_n": 10
      }
    }
  }'

この MCP サーバーの仕組み

フェーズ 1:インフラの検出と多層ハイパーグラフの構築

buildMultiplexHypergraph 関数は、ツール呼び出しごとに最大 5 つのソース(OSM POI、Nominatim ジオコーダー、DNS ルックアップ、技術スタックのフィンガープリント、IP ジオロケーション)からデータを取り込み、60 語以上のキーワード辞書を使って各ノードを 6 つのセクターのいずれかに分類します(例:「substation」→エネルギー、「data center」→サイバー、「aqueduct」→水道)。同一レイヤー内のエッジは、ハーバーサイン距離が近接閾値を下回る場合に、同じセクター内のノードを接続します。レイヤー間のエッジは、インフラシステムに関する文献から導出した実証的な結合重みを用いて、ハードコードされた 12 個のセクター依存関係を表します(例:通信からエネルギーへの重みは 0.9、金融からサイバーへの重みは 0.9)。この結果として、下流のアルゴリズムへの入力に使う完全な上位隣接行列を備えた MultiplexHypergraph が生成されます。

フェーズ 2:BTW 砂山モデルによるカスケードシミュレーション

simulateCascadeFailure 関数は、Bak-Tang-Wiesenfeld の自己組織化臨界モデルを実装します。各 InfraNode は負荷値(0.3~0.8 で初期化)と転倒閾値 z_c = 1.0 を持ちます。トリガーノードまたはセクターが機能停止すると、負荷は隣接ノードに z_neighbor += z_i / degree(i) として再分配されます。これを max_cascade_steps の最大ステップ数まで反復します。この関数は雪崩イベントを追跡し、雪崩の規模の系列にべき乗分布を当てはめ、臨界指数が真の自己組織化臨界挙動を示すシステムにフラグを付けます。つまり、インフラが、大規模な崩壊が常に起こり得る状態へと自然に進化していることを意味します。

フェーズ 3:グラフ積によるサイバー・物理結合

computeCyberPhysicalCoupling 関数は、NVD CVE、CISA KEV エントリー、Censys が検出したホスト、SSL 証明書データからサイバー攻撃グラフ(AG)を構築し、OSM インフラノードから物理依存関係グラフ(PG)を構築します。これらのテンソル積 AG × PG を構成します。この積グラフの各ノード(a, p)は、脆弱性 a を悪用して物理資産 p を侵害することを表します。この積グラフ上の最大重み経路は、サイバー侵入から物理インフラの損害へとカスケードする確率が最も高いエクスプロイトチェーンを表します。出力では、mostExploitableCyber(CVE の侵入点)と mostVulnerablePhysical(サイバー攻撃対象領域から最も到達しやすい物理資産)を特定します。

フェーズ 4:ボロノイ分割による地理的な共在リスク

computeGeographicCorrelation 関数は、領域をボロノイセルに分割し、各地理的領域を、セルの中心となる最も近いインフラノードに割り当てます。各セルには、USGS(地震)、NOAA(気象)、FEMA/GDACS(災害)、UK Flood Monitoring のハザードデータを重ね合わせます。セルのリスクは、次のように計算されます:sectors_present × hazard_probability × (1 − diversity_index)。ここで diversity_index = Shannon_entropy(sector_counts) / log(n_sectors) です。同じハザードゾーン内でも、セクター多様性が低く、4 つのセクターが共在するセルは、十分に多様化されたクラスターより高いスコアになります。これにより、地理的な集中リスクとセクター間の冗長性の欠如の両方を捉えます。

フェーズ 5:CPM による復旧タイムラインと上位ラプラシアンによるレジリエンス指標

estimateRecoveryTimeline は、セクターの復旧がエネルギー → 水道 → 通信 → 輸送 → サイバー → 金融の順に進む必要がある、依存関係に従った DAG を構築します。標準的な CPM の順方向パス(ES(j) = max(ES(i) + duration(i)))と逆方向パス(LF(i) = min(LF(j) − duration(j)))を実行し、クリティカルパスを形成するスラックがゼロのノードを特定します。別途、computeResilienceIndex は多層ネットワーク全体の上位ラプラシアン行列を計算し、lambda_2(代数的連結性/ファイドラー値)を近似します。lambda_2 がゼロに近い場合、ネットワークは分断寸前であることを示します。また、この関数は単一ノードの除去に対する感度分析も実行し、そのノードを除去したときに連結性が最も急激に低下するノードを特定します。

最適な結果を得るためのヒント

  1. ほかのツールを使う前に、build_infrastructure_networkを実行してください。 ネットワーク構築のステップは個別のツールと同じコストで、地理情報とセクター分類をキャッシュするため、その後の呼び出しがより高速かつ一貫したものになります。

  2. コンプライアンスレポートにはgenerate_resilience_assessmentを使用してください。 このツールを1回呼び出すだけで、6つすべてのアルゴリズムと14のすべてのデータソースを実行し、規制当局への提出に適した調査結果と推奨事項を作成できます。コストは個別のツールを2~3回呼び出す場合とほぼ同じです。

  3. サイバーフィジカルリスクを評価する際は、インフラドメインを指定してください。 ドメインを指定しない場合、assess_cyber_physical_attackとbuild_infrastructure_networkでは、DNS、技術スタック、Censys、SSL証明書の各レイヤーが対象外になります。既知のドメイン名を2~3個指定するだけでも(公共事業のSCADAポータル、ISPのNOCサイト、金融取引所のドメインなど)、サイバーレイヤーの情報量が大幅に増加します。

  4. シナリオ計画では、trigger_nodesではなくtrigger_sectorを使用してください。 trigger_sector: "energy"を指定すると、故障トリガーとして重要度が最も高いエネルギー分野のノードが自動的に3つ選択されます。任意のノードIDを指定するより現実的で、事前にbuild_infrastructure_networkを呼び出す必要もありません。

  5. 保険に関する用途では、compute_geographic_correlationとestimate_recovery_timelineを組み合わせてください。 地理的な近接性から相関する損失シナリオを特定し、CPMによる復旧推定で、事業中断の期間を算出できます。これらを組み合わせることで、保険会社がパラメトリック補償を設計するために必要な2つの情報を提供できます。

  6. 広い地域では、radius_kmを50に減らしてください。 デフォルトの半径100 kmではインフラノードが50個以上返される場合があり、連鎖シミュレーションやプロダクトグラフの計算時間が長くなります。半径を狭めると、都市分析に適した、より密度の高い有意義なネットワークを生成できます。

  7. 早期警戒シグナルとして、isSelfOrganizedCritical: trueを監視してください。 BTWシミュレーションでSOC挙動を示すネットワークは、いずれも脆弱な状態にあります。この調査結果をすぐに通知し、identify_critical_nodesを使って、どのノードを優先して強化すべきかを特定してください。

ほかのApifyアクターと組み合わせる

アクター組み合わせ方
Website Tech Stack Detectorサイバーフィジカル攻撃の評価を実行する前に、既知のインフラドメインから取得した技術フィンガープリントで、build_infrastructure_networkのサイバーレイヤーを強化します
WHOIS Domain Lookupインフラドメインの登録者組織を特定し、企業の所有構造を金融セクターレイヤーにマッピングします
Company Deep Researchidentify_critical_nodesの実行後、上位にランク付けされた重要ノードの所有組織について詳細な調査を実施し、企業のレジリエンスと所有の集中度を評価します
Cyber Attack Surface Reportassess_cyber_physical_attackで特定したサイバー侵入ポイントを対象に、専用の攻撃対象領域評価を実施し、詳細な修正ガイダンスを取得します
B2B Lead QualifierレジリエンスがCRITICALまたはLOWと評価された地域で、インフラコンサルティングおよびセキュリティベンダーを特定し、ターゲットを絞ったアプローチに活用します
Website Change Monitorインフラ運用事業者のウェブサイトとSCADAベンダーのページの変更を追跡し、サイバーレイヤーに影響する新たなCVEやシステム更新を示す可能性のある情報を検出します
Multi-Review Analyzer高リスク地域の公益事業者に関する顧客レビューを分析し、インフラの脆弱性と相関するサービス品質のシグナルを明らかにします

制限事項

  • OSM のインフラカバレッジは地域によって大きく異なります。 先進地域(西ヨーロッパ、北米)では OSM のインフラタグが密に付与されていますが、発展途上地域ではネットワークがまばらにしか返されず、実際の物理的な複雑さを十分に反映しない場合があります。
  • BTW の砂山負荷はランダムに初期化されます(0.3~0.8)。 実際のインフラ負荷分布を把握するには SCADA テレメトリが必要です。このモデルはトポロジー上の連鎖ダイナミクスを正確に捉えますが、正確な潮流物理までは再現しません。
  • セクター分類は名称ベースのキーワードマッチングに依存します。 「Crown Castle Tower」は正しく通信に分類されますが、名前のない OSM ノード(「node-47」)はデフォルトでサイバーに分類されます。適切な名前が付いていないノードは誤分類される可能性があります。
  • サイバーレイヤーには明示的なドメイン入力が必要です。 ドメインが指定されていない場合、サイバーレイヤーには DNS で観測可能なインフラのみが登録されます。エアギャップ環境の制御システムや未登録の制御システムは表示されません。
  • 地理的ハザードのオーバーレイには、現在および直近の過去のデータを使用します。 USGS、NOAA、FEMA の API が返すのは、現在発生中のイベントと最近の災害宣言であり、工学用途の確率論的ハザードマップ(PSHA、FEMA P-58)ではありません。
  • 復旧時間はセクターごとの統計的な既定値です(エネルギー:72 時間、水道:48 時間、通信:24 時間)。実際の復旧時間は、このモデルでは考慮されない被害の深刻度、作業員の確保状況、サプライチェーンの要因によって異なります。
  • 大規模ネットワークにおける Supra-Laplacian の固有値計算は近似値です。 実装では完全な固有値分解ではなくべき乗法を使用します。lambda_2 は正確に収束しますが、対称性の高いグラフでは厳密なソルバーの結果と異なる場合があります。
  • MCP 接続を受け付けるには、サーバーをスタンバイモードにする必要があります。 サーバーがアイドル状態だった場合、コールドスタートの遅延は約 30~60 秒です。同じセッション内での以降のツール呼び出しは即時に実行されます。

インテグレーション

  • Zapier — 新しい USGS 地震アラートの発生時に model_natural_disaster_impact の実行を自動的にトリガーし、構造化された復旧見積もりを緊急対応用の Slack チャンネルに送信します
  • Make — 監視対象地域について generate_resilience_assessment を毎週実行するようスケジュールし、傾向を追跡するために結果を Airtable に書き込みます
  • Google Sheets — identify_critical_nodes の出力を共有スプレッドシートにエクスポートし、インフラ保護投資委員会でのレビューに使用します
  • Apify API — Model Context Protocol に対応する AI エージェントフレームワーク(LangChain、LlamaIndex、AutoGen)に、MCP サーバー URL を統合します
  • Webhooks — 監視対象地域の resilienceIndex.resilience が CRITICAL または LOW に低下した際に、GRC プラットフォームへ Webhook を送信します
  • LangChain / LlamaIndex — マルチエージェントパイプライン内のツールとしてこのサーバーを使用します。一方のエージェントがインフラ分析を担当し、もう一方が規制コンプライアンスレポートや経営陣向け概要を作成します

トラブルシューティング

地域のネットワークが空、または最小限しか返されません。 通常、この場合は対象地域のOpenStreetMapのカバー範囲が限られています。小さな町や地方の地域ではなく、より大きく知名度の高い都市や州を指定してみてください。domains パラメーターに明示的なドメイン名を追加すると、OSMデータが少ない場合でもネットワークが充実します。

assess_cyber_physical_attackがプロダクトグラフのノードを0件返します。 このツールを使うには、domains パラメーターに少なくとも1つのドメインが必要です。ドメインがないとサイバー攻撃グラフにノードがなく、グラフ積は空になります。有意義な結果を得るには、関連するインフラストラクチャドメインを少なくとも2~3件指定してください(電力事業者のサイト、取引所のインフラストラクチャ、ISPのNOCポータルなど)。

ツール呼び出しが120秒後にタイムアウトします。 個々の基盤となるアクターには120秒のタイムアウトが設定されており、時間を超えると空の配列を返します。最もよくある原因は、非常に広い地域でosmPoiがタイムアウトすることです。radius_kmを50に減らすか、より範囲を絞った都市レベルの地域を指定して、OSMへのクエリ範囲を狭めてください。

generate_resilience_assessmentの検出結果リストが空です。 6つのアルゴリズムがすべて、警告しきい値に達することなく完了した場合(レジリエンスがMODERATE以上で、SOCの動作がなく、クリティカルパスのボトルネックもない場合)、検出結果の配列は空になります。これは、ネットワークが比較的レジリエントであることを示す有意義な結果です。

小規模なネットワークで代数的連結性が0.0と報告されます。 ノード数が3未満のネットワークでは、ラプラシアンが退化します。これは、OSMが対象地域のPOIデータを返さない場合に発生します。対象地域のOSMカバー状況を確認するか、より広い地理的範囲を指定してください。

責任ある使用

  • このサーバーは、OpenStreetMap、USGS、NOAA、FEMA、GDACS、NVD、CISA、その他のオープンな政府機関の情報源から、公開されているインフラストラクチャデータのみを取得します。
  • DNSルックアップ、Censysクエリ、技術スタックの検出は受動的かつ非侵襲的です。標準的なDNS解決を除き、対象インフラストラクチャにパケットを送信することはありません。
  • 重要システムへの攻撃計画に、インフラストラクチャのマッピング結果を使用しないでください。このツールは、防御的なレジリエンス分析、災害への備え、規制遵守を目的として設計されています。
  • 詳細なインフラストラクチャマップや脆弱性評価は、お住まいの地域のCISAまたは業界固有の規制の枠組みに基づき、情報共有の制限を受ける場合がありますのでご注意ください。
  • インフラストラクチャデータの責任ある使用に関するガイダンスについては、Apifyのガイドをご覧ください。

よくある質問

このMCPサーバーでは、重要インフラストラクチャの相互依存関係をどのように分析しますか? サーバーは、実際のインフラストラクチャデータ(OpenStreetMapのPOI、DNSレコード、IPジオロケーション)から6層の多重ハイパーグラフを構築し、6つの数学的アルゴリズムを適用します。アルゴリズムは、BTW砂山カスケードシミュレーション、グラフ積によるサイバー・物理連成、ボロノイ図による地理的な共在リスク、CPM復旧推定、超ラプラシアン代数的連結性、多指標による重要ノードの特定です。各ツール呼び出しでは、アルゴリズムの実行前に5~14個の基盤となるApifyアクターを並列に実行し、最新のライブデータを収集します。

モデル化されるインフラストラクチャ部門は何ですか? エネルギー、通信、水道、サイバー、輸送、金融の6部門です。層間の依存関係を示すエッジには、実測に基づく連成重みが設定されています。たとえば、通信は連成重み0.9でエネルギーに依存し、金融は重み0.9でサイバーに依存します。これらの重みは、超隣接行列とカスケード伝播の計算の両方で使用されます。

サーバーはデータソースをいくつ使用しますか? ライブデータソースは14個です。OSM POI検索、Nominatimジオコーダー、DNSレコードルックアップ、Censys検索、crt.sh SSL証明書、ウェブサイト技術スタック検出、IPジオロケーション、NVD CVE検索、CISA KEVカタログ、USGS地震検索、NOAA気象警報、FEMA災害検索、英国洪水監視、GDACS世界災害警報です。すべてのツール呼び出しで、すべてのデータソースが照会されるわけではありません。負荷の軽いツールでは、コストを抑えるために一部のデータソースのみを使用します。 自己組織化臨界性とは何ですか?また、インフラにとってなぜ重要ですか? BTW(Bak-Tang-Wiesenfeld)砂山モデルは、複雑なシステムが、あらゆる規模の雪崩が発生する臨界状態へと自然に進化することを示しています。isSelfOrganizedCritical が true の場合、インフラネットワークの連鎖規模の分布はべき乗則に従います。つまり、大規模な停電はまれな例外ではなく、統計的に避けられないものです。これは単なるシナリオの結果ではなく、構造的な警告です。

復旧タイムラインの推定精度はどの程度ですか? CPM の復旧推定では、セクターごとのデフォルト復旧期間(エネルギー:72h、水道:48h、通信:24h、交通:36h、サイバー:12h、金融:8h)を基準値として使用し、ノード単位のランダムな変動を加味します。これらの値は、工学分野固有の損害モデルではなく、公表されている FEMA および NERC の復旧統計に合わせて調整されています。出力は、正確な工学的予測ではなく、計画立案のための桁レベルの推定値として扱ってください。

この MCP サーバーはインフラを積極的にスキャンまたはプローブしますか? いいえ。すべてのデータ収集は受動的に行われます。OSM と Nominatim は公開地理データベースを使用します。DNS ルックアップでは標準的な名前解決を使用し、ゾーン転送や能動的なプローブは行いません。Censys のデータは、同社の公開インターネットスキャンデータベースから取得されます。技術スタックの検出には標準的な HTTP GET リクエストを使用します。対象システムに対して、独自のパケット送信、ポートスキャン、認証の試行は行いません。

Dragos や Claroty などの商用インフラリスクプラットフォームとは何が違いますか? Dragos と Claroty は OT/ICS セキュリティプラットフォームであり、リアルタイム監視や資産検出を行うには、運用技術ネットワーク内へのセンサーの導入が必要です。この MCP サーバーは、外部ソース(OSM、NVD、USGS など)だけを利用する、一般公開されているデータインテリジェンスレイヤーです。ネットワークアクセスやエージェントの導入を必要とせず、地域規模のマクロな連鎖およびレジリエンス分析を提供し、OT セキュリティツールを補完します。

NERC CIP や DORA のコンプライアンス文書に利用できますか? generate_resilience_assessment ツールは、規制関連文書に組み込める調査結果と推奨事項を含む、構造化された JSON 出力を生成します。ただし、ツールの出力は公開データと近似モデルに基づいているため、規制コンプライアンスの証拠として提出する前に、資格を持つエンジニアが確認する必要があります。主なコンプライアンス証明としてではなく、分析の説明を構成し、ギャップを特定するために使用するのが最適です。

一般的なツール呼び出しにはどのくらい時間がかかりますか? 軽量なツール(identify_critical_nodes、simulate_cascade_failure)は、通常 3~5 分で完了します。より包括的なツール(generate_resilience_assessment、複数ドメインを対象とする assess_cyber_physical_attack)は、より多くの基盤アクターを並列実行するため、8~15 分かかる場合があります。サーバーでは、基盤となるアクターの呼び出しごとに 120 秒のタイムアウトが設定されています。

この MCP サーバーをスケジュールして、毎週レジリエンスのスナップショットを取得できますか? はい。Apify プラットフォームに組み込まれたスケジューラー、または cron で実行する API 呼び出しを使って、アクターの実行をスケジュールできます。監視対象地域で identify_critical_nodes または generate_resilience_assessment を毎週実行すると、新しい OSM データ、新しい CVE、季節的なハザードパターンなどのインフラの変化が、時間の経過とともにレジリエンス指数にどう影響するかを追跡できます。

このようにインフラデータを分析することは合法ですか? はい。使用するデータソースはすべて公開されており、OpenStreetMap、USGS、NOAA、FEMA、GDACS、NVD は、一般利用を明示的に想定した政府機関のデータサービスまたはオープンデータサービスです。Censys と crt.sh は、セキュリティ研究目的でデータを提供しています。非公開または機密扱いのインフラデータにはアクセスしません。データ収集慣行の全般については、ウェブスクレイピングの合法性に関する Apify のガイドをご覧ください。 OpenStreetMap のインフラデータが非常に少ない地域では、どうなりますか? サーバーは引き続き動作しますが、より小規模なネットワークを構築します。アルゴリズムは規模に応じて適切に縮小されます。5 ノードのネットワークでもカスケードシミュレーションの結果、地理的相関セル、復旧タイムラインが生成されますが、統計的な有意性は低くなります。入力に domains を指定すると、OSM のデータがまばらな地域でもネットワークを充実させられます。

改善にご協力ください

問題が発生した場合は、Apify アカウントで実行共有を有効にすると、デバッグを迅速に進めるうえで役立ちます。

  1. アカウント設定 > プライバシーに移動します
  2. 実行を一般公開の Actor 作成者と共有するを有効にします

これにより、問題が発生した際に実行の詳細を確認できるため、より迅速に修正できます。データを閲覧できるのは Actor の開発者のみで、一般公開されることはありません。

サポート

バグを見つけた場合や機能のリクエストがある場合は、この Actor のページにあるイシュータブからイシューを作成してください。独自のソリューションやエンタープライズ向けの統合(独自のインフラデータソース、カスタムのセクター定義、SCADA テレメトリーフィードとの統合など)については、Apify プラットフォームを通じてお問い合わせください。

コメント

MCP は初めてですか?

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

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