Pandemic Supply Chain Cascade について
公衆衛生機関、製薬企業、研究者向けの医薬品サプライチェーンリスク分析 MCP サーバーです。公開データと定量手法を組み合わせ、供給不足、脆弱性、備えの状況を評価します。
主な機能
- 01医薬品サプライチェーンのハイパーグラフを構築
- 02医薬品の供給不足確率を予測
- 03地理的集中リスクを分析
- 04臨床研究パイプラインの重要度を評価
- 05根拠と推奨事項を含む備えのレポートを生成
活用シーン
- 01健康危機における医薬品不足リスクの特定
- 02単一供給元と地域集中リスクの把握
- 03臨床試験中断による下流への影響評価
- 04医薬品不足防止のリスクレポート作成
MCP 対応
Streamable HTTP を使い、/mcp エンドポイントで8種類の分析ツールを MCP 対応エージェントや LLM クライアントに公開します。クライアント設定には Apify API token が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcpclaude mcp add --transport http pandemic-supply-chain-cascade https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp{"mcpServers":{"pandemic-supply-chain-cascade":{"type":"http","url":"https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp"}}}Cursor で開く{"servers":{"pandemic-supply-chain-cascade":{"type":"http","url":"https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp"}}}VS Code で開く{"mcpServers":{"pandemic-supply-chain-cascade":{"type":"http","url":"https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp"}}}{"mcpServers":{"pandemic-supply-chain-cascade":{"serverUrl":"https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
パンデミック・サプライチェーン・カスケード MCP
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf)に追加します。
{
"mcpServers": {
"pandemic-supply-chain-cascade-mcp": {
"url": "https://ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor/mcp"
}
}
}
Pandemic Supply Chain Cascade MCP は、健康危機における医薬品サプライチェーンの混乱をモデル化するための Model Context Protocol サーバーです。6 つの定量アルゴリズム(Buldyrev の相互依存ネットワークのパーコレーション、SEIR と供給を結合した ODE、ボンドパーコレーションによる不足予測、研究パイプライン DAG のクリティカリティ、Granger 因果性による早期警告、HHI による地理的集中リスク)に基づく 8 つの分析ツールを AI エージェントに提供します。これらのツールは、15 の公開データアクターから得たライブデータを基盤としています。その結果、どの医薬品が供給不足のリスクにさらされているか、供給と需要の交差がいつ発生するか、どの備えの不足が最も重大かを、計算可能な根拠に基づいて把握できます。
MCP 対応の AI エージェントまたは LLM クライアントを /mcp エンドポイントに接続すると、8 つのツールすべてを利用できます。サーバーは Apify のインフラストラクチャ上でスタンバイモードで実行されており、常時利用可能で、コールドスタートの待ち時間はありません。
この MCP サーバーはどのようなデータを分析しますか?
| データの種類 | 📌 ソースアクター | 使用例 |
|---|---|---|
| 📋 臨床試験記録 | Clinical Trial Tracker | フェーズ、登録者数、疾患の適応、試験状況 |
| 📄 生物医学文献 | PubMed Research Search | 医薬品と疾患の研究上の関連性、出版頻度の傾向 |
| 🏥 世界の保健指標 | WHO GHO Search | 疾患負荷、国別の WHO 通知イベント |
| 💊 医薬品の有害事象報告 | openFDA Drug Events | 医薬品名、重篤度、有害事象報告の傾向 |
| 🇪🇺 欧州の医薬品登録情報 | EMA Medicines Search | 承認状況、ATC コード、製造業者の詳細 |
| 🏭 FDA の食品リコール | FDA Food Recall Monitor | リコール実施企業、施設、リコール分類 |
| 🔬 FDA の医療機器リコール | FDA Device Recalls | リコール実施企業、機器の種類、リコールイベント ID |
| 🌪️ 世界の災害警報 | GDACS Disaster Alerts | 国、警報レベル(緑/オレンジ/赤)、イベントの深刻度 |
| 🌩️ 気象警報 | NOAA Weather Alerts | 州レベルの気象イベントの深刻度と対象地域 |
| 🌏 地震活動 | USGS Earthquake Search | マグニチュード、場所(M≥4.0 のイベントはハザードスコアリングの対象) |
| 💨 大気質の異常 | OpenAQ Air Quality | AQI 値。150 を超える測定値はハザードイベントとしてフラグ付け |
| 🚢 国際貿易フロー | UN COMTRADE | 報告国/相手国、貿易額、商品コード |
| 📈 マクロ経済指標 | IMF Economic Data | GDP、経済的脆弱性の代理指標 |
| 🌍 開発指標 | World Bank Indicators | 国別の開発およびガバナンスデータ |
| 🏢 企業登録情報 | OpenCorporates Search | 製造業者名、管轄区域、設立日 |
Pandemic Supply Chain Cascade MCP を使用する理由
医薬品サプライチェーンのリスクを手作業で評価するには、生物統計学者、ネットワーク科学者、貿易データアナリストが必要で、データ収集にも数週間かかります。Resilinc や Interos などの商用プラットフォームは、エンタープライズ利用で年間 50,000~200,000 ドルかかります。学術向けツールを使うには、MATLAB または Python の専門知識に加え、一般公開されていない独自データセットが必要です。
この MCP サーバーは、分析パイプライン全体を自動化します。AI エージェントが 1 つのツールを呼び出すと、サーバーは最大 15 のアクターから並列にデータを取得し、型付きのサプライチェーン・ハイパーグラフを構築して、関連するアルゴリズムを実行し、構造化された JSON を返します。すべて 1 回の MCP ツール呼び出しで完了します。
プラットフォームのメリット:
- 常時稼働のスタンバイモード — リクエストの合間もサーバーはウォーム状態を維持するため、ツール呼び出し間のコールドスタートによる遅延がありません
- 並列データ取得 — 該当するすべてのアクターが
Promise.allで同時に実行されるため、実時間を最小限に抑えられます - ツール呼び出しごとの従量課金 — サブスクリプションや最低利用期間は不要です。実際の利用量に応じて、ツール呼び出し 1 回あたり 0.040~0.050 ドルが課金されます
- 予算管理 — Apify Console で実行ごとの利用上限を設定できます。上限に達すると、サーバーは適切なエラーを返します
- MCP プロトコルとの互換性 — Claude Desktop、Cursor、Cline、LibreChat、Continue、および MCP 2024-11-05 仕様を実装するあらゆるフレームワークで動作します
機能
- 医薬品サプライチェーンのハイパーグラフ構築 — 医薬品、製造業者、原薬サプライヤー、添加剤サプライヤー、包装業者、流通業者、国、施設、規制当局、臨床試験を表す型付きノード、9 種類のエッジ関係(製造、供給、輸入、流通、治療、研究、包装、原薬供給元、規制)、医薬品ごとにサプライチェーン参加者全員をグループ化するハイパーエッジ
- エンティティごとの代替可能性スコア — 生産能力の重複(共通の隣接ノード)、±90 日の期間におけるリードタイムの類似性、規制上の同等性(同一管轄区域では 0.9、異なる管轄区域では 0.5)を加重して算出します。代替候補がないエンティティには、単一供給元依存のフラグを付けます
- 医薬品ごとの集中リスク — 1 / 代替製造経路の数として算出します。スコアが高いほど、単一供給元への依存度が高いことを示します。ランク付けされた
concentrationRiskPerDrug配列を返します - Buldyrev 相互依存ネットワークのパーコレーション — 2 つの連結層(物理的供給:製造業者、施設、国/規制承認:医薬品、臨床試験、規制当局)を使用します。幅優先探索による巨大連結成分の追跡、災害の影響を受けたノードまたは次数が最大のノードを起点とする反復的な相互パーコレーション、最大 20 回の反復による収束検出を行います
- SEIR と供給を連動させた ODE — 120 日間を対象にオイラー法で前進積分します。β=0.3、σ=0.2、γ=0.1、dt=0.5 日です。dSupply/dt = 生産量×(1−労働者の罹患率) − 需要×(1+panic_factor×I/N)(panic_factor=2.0)です。備蓄量が現在の需要の 50% を下回った時点で
supplyDemandCrossoverDayを検出します - ボンドパーコレーションによる不足予測 — 医薬品ごとのパーコレーション閾値 p_c = 1/⟨k⟩。⟨k⟩ はサプライチェーンサブグラフの平均次数です。ノードの故障確率はハザードへの曝露、災害フラグ(+0.35)、設定済みの基本率(5~20%)から算出します。不足確率 = 平均故障確率 / p_critical(上限は 1.0)。深刻度は、critical ≥ 0.75、high ≥ 0.50、medium ≥ 0.25 です
- 研究パイプライン DAG の重要度 — Phase 1 → Phase 2 → Phase 3 → 承認を結ぶ有向非巡回グラフです。ノードごとの影響度 = 下流の臨床試験数 × 患者集団 × 進行確率です。過去のフェーズ進行率は、Phase 1 = 63%、Phase 2 = 31%、Phase 3 = 58% です。トポロジカルソートによる最長重み付き経路をクリティカルパスとします
- Granger 因果関係による早期警告ネットワーク — 6 つの時系列(PubMed の論文公開頻度、WHO の通知、OpenAQ の異常、GDACS の災害イベント、FDA の有害事象、COMTRADE の貿易量)に対する VAR(2) モデルです。p < 0.05 で F 検定を行います。先行指標の出次数による順位付けを備えた有向因果グラフを構築し、有意なリンクが 5 以上の場合、警告レベルを critical とします
- HHI による地理的集中リスク — 国別の医薬品製造能力について、ハーフィンダール・ハーシュマン指数(HHI = Σ 市場シェア²)を算出します。複合リスク = HHI × 最大ハザード曝露です。ハザードマップでは、GDACS 警報の深刻度(赤=3、オレンジ=2、緑=1)× 0.3、NOAA イベントごとに +0.2、USGS のマグニチュード × 0.1(M≥4.0)、OpenAQ の AQI > 150 で +0.15 を累積します。CRITICAL の閾値は HHI > 0.25 です
- Jaccard 係数による疾患治療の代替スコア — 代替可能性 = 0.30 × Jaccard(治療対象疾患) + 0.30 × 生産能力の重複 + 0.20 × リードタイムの類似性 + 0.20 × 規制上の同等性です。
switchTimeDaysは代替品と元の医薬品のリードタイム差から推定します - 包括的な備え状況レポート — 6 つのアルゴリズムを 1 回の呼び出しですべて実行します。深刻度評価、根拠となる文字列、推奨事項を含むカテゴリ別の
findings、0~100 のoverallScore、riskGrade(CRITICAL/HIGH/ELEVATED/MODERATE/LOW)、criticalGapsの件数、algorithmResultsの概要オブジェクトを生成します
パンデミック時のサプライチェーン分析のユースケース
政府および公衆衛生の緊急事態への備え
公衆衛生機関や国家備蓄の管理者は、次のパンデミックがピークに達する前に、どの必須医薬品が最も深刻な不足リスクに直面しているかを把握する必要があります。predict_drug_shortage ツールは、医薬品クラスのサプライチェーンのハイパーグラフをマッピングし、ボンド・パーコレーションを適用して各医薬品の不足確率を算出します。また、不足までの推定期間と要因の一覧を含む、順位付けされたリストを返します。これにより、数か月かかる手動分析を単一のツール呼び出しに置き換えられます。
製薬会社のサプライチェーンのレジリエンス
製薬メーカーのサプライチェーン部門やオペレーション部門は、監査人や規制当局から尋ねられる前に、単一供給元のAPIサプライヤーや地域集中リスクを特定する必要があります。map_drug_supply_chain ツールと compute_geographic_concentration_risk ツールは、HHI スコア、エンティティごとの代替可能性の重み、医薬品ごとの集中リスクを用いて、これらのリスクを定量化します。得られる結果は、サプライヤーの多様化に関する意思決定に直接活用できます。
ヘルスケア投資とパイプラインのリスク分析
製薬会社やバイオテクノロジー関連のポートフォリオを評価する投資アナリストは、健康危機の際に研究開発パイプラインが受ける脆弱性を把握する必要があります。assess_research_pipeline_risk ツールは、臨床試験の DAG を構築し、過去のフェーズ進行率を用いてクリティカルパスの重みを算出します。また、どの試験の中断が最も多くの下流プログラムに波及するかを特定し、リスク調整後の評価に直接役立つ情報を提供します。
規制およびコンプライアンス報告
医薬品不足の予防要件に関する申請を準備する薬事担当チームには、構造化された定量的なリスク評価が必要です。generate_preparedness_report ツールは、規制報告の枠組みに直接対応する形式で、証拠文字列、深刻度評価、実行可能な推奨事項を含む、カテゴリ別の調査結果を生成します。
AI エージェントによるサプライチェーン監視ワークフロー
LLM を活用した監視パイプラインを構築するチームは、この MCP サーバーを Claude などのエージェントに接続して、サプライチェーンの評価を定期的に実行し、warningLevel と riskGrade の値の経時変化を比較し、状況の悪化時にアラートを発することができます。構造化された JSON 出力により、後続処理での差分追跡やアラートの実装も容易です。
パンデミックへの備えに関する学術・政策研究
パンデミックへの備えのシナリオをモデル化する研究者は、SEIR サプライ ODE とパーコレーション・カスケードのツールを使って、初期故障率、サプライチェーンのトポロジー、パンデミックのパラメーターを変えた混乱シナリオを調査できます。これらの分析は、合成ネットワークではなく、実際の臨床試験データや貿易データに基づいています。
Pandemic Supply Chain Cascade MCP を AI エージェントに接続する方法
- MCP エンドポイント URL を取得します — Apify Console のアクターの API タブで、アクターの Standby URL を確認します。URL は
https://[actor-standby-host]/mcpの形式です。 - Apify API トークンを追加します — MCP クライアントの設定で、
Authorization: Bearer YOUR_API_TOKENヘッダーとして渡します。 - MCP クライアントを設定します — Claude Desktop、Cursor、または Cline で、MCP の設定にサーバーを追加します。このサーバーは
POST /mcpで Streamable HTTP トランスポートを使用します。 - ツールを呼び出します — AI エージェントに「アモキシシリンの医薬品不足リスクを予測して」または「インスリンのサプライチェーンに関する備えのレポートを生成して」と依頼します。エージェントが適切なツールを選択し、
queryを渡して、構造化された JSON の結果を返します。
Claude Desktop 設定例
{
"mcpServers": {
"pandemic-supply-chain-cascade": {
"url": "https://YOUR-ACTOR-STANDBY-HOST/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
ツールのリファレンス
ツール 1:map_drug_supply_chain
クエリに対する医薬品サプライチェーンのハイパーグラフを構築します。各エンティティの代替可能性の重み(供給能力の重複度 × リードタイムの類似度 × 規制上の同等性)を計算し、重要度スコア(次数 / 最大次数)、代替先の数、単一供給元フラグ、医薬品ごとの集中リスク(1 / 製造元経路数)を返します。ハイパーエッジは各医薬品を、関与するすべての製造元および調達国に接続します。
デフォルトのソース: clinical、health、pharma、trade、corporate(アクター数は最大 9)
料金: 1 回の呼び出しにつき $0.045
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 医薬品名、疾患、製造元、またはサプライチェーンのエンティティ |
sources | string[] | いいえ | ["clinical","health","pharma","trade","corporate"] | クエリ対象のデータソースグループ |
ツール 2:simulate_disruption_cascade
連成する 2 つのモデルを実行します:(1)Buldyrev 相互依存ネットワークのパーコレーション — 物理的な供給レイヤー A(製造元、施設、国)と規制承認レイヤー B(医薬品、臨床試験、規制当局)を対象に、BFS による巨大連結成分の追跡を行いながら、最大 20 回の反復で相互パーコレーションを実施します。(2)SEIR 供給 ODE — オイラー法による前進計算、β=0.3、σ=0.2、γ=0.1、120 日間の予測期間、パニックによる需要増幅(係数=2.0)を用います。在庫が需要の 50% 未満になった時点の supplyDemandCrossoverDay を検出します。
デフォルトのソース: 7 つすべてのソースグループ(アクター数は最大 15)
料金: 1 回の呼び出しにつき $0.050
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | シミュレーション対象の医薬品、疾患、またはサプライチェーンのエンティティ |
sources | string[] | いいえ | 7 つすべてのグループ | データソースグループ |
ツール 3:predict_drug_shortage
医薬品ごとにボンドパーコレーションによる供給不足を予測します。p_c = 1/⟨k⟩。ノードの故障確率は、ハザードへの曝露に災害フラグ(0.35)と設定された基本発生率(5–20%)を加味して算出します。供給不足確率 = 平均故障確率 / p_critical。要因として、single_source_dependency、high_supplier_failure_risk、disaster_exposed_supplier、low_supply_redundancy、long_lead_time、low_percolation_threshold を列挙します。深刻度:critical ≥ 0.75、high ≥ 0.50、medium ≥ 0.25。
デフォルトのソース: clinical、health、pharma、trade、environment(アクター数は最大 11)
料金: 1 回の呼び出しにつき $0.045
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 医薬品名、治療領域、または製造元 |
sources | string[] | いいえ | 5 つのソースグループ | データソースグループ |
ツール 4:assess_research_pipeline_risk
臨床試験フェーズ(Phase 1 → Phase 2 → Phase 3 → 承認)の有向非巡回グラフを構築します。ノードごとの影響度 = 下流の臨床試験数 × 患者集団 × 次段階への移行確率。過去の移行率:Phase 1 = 63%、Phase 2 = 31%、Phase 3 = 58%。クリティカルパスは、重み付き経路のうち最長のものです。criticalPath(臨床試験 ID のリスト)、criticalPathWeight、および臨床試験ごとの impact スコアを返します。
デフォルトのソース: clinical、health、pharma、corporate(アクター数は最大 7)
料金: 1 回の呼び出しにつき $0.045
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 疾患領域、医薬品の標的、または治療カテゴリー |
sources | string[] | いいえ | 4 つのソースグループ | データソースグループ |
ツール 5:detect_early_warning_signals
6 つの時系列(PubMed の論文発表頻度、WHO の通知、OpenAQ の大気質異常、GDACS の災害イベント、FDA の有害事象、COMTRADE の貿易量)にわたるグレンジャー因果ネットワークです。各ペアに VAR(2) モデルを適用し、因果関係の有意なリンクを p < 0.05 の F 検定で判定します。因果的出次数に基づき、先行指標となる時系列を上位からランク付けします。有意なリンクが 5 以上の場合、警告レベルは「重大」です。
デフォルトのソース: health、pharma、environment、trade(最大 7 アクター)
料金: 1 回あたり $0.045
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 監視する医薬品、疾患、またはサプライチェーンの事業体 |
sources | string[] | いいえ | ソースグループ 4 つ | データソースグループ |
ツール 6:compute_geographic_concentration_risk
国ごとの医薬品製造能力に関する HHI = Σ(市場シェア²) です。複合リスク = HHI × max(拠点ごとのハザード曝露度)。ハザードマップ:GDACS の深刻度(赤 = 3×0.3)、NOAA のイベント(1 件につき +0.2)、USGS の M≥4.0 のマグニチュード(×0.1)、OpenAQ の AQI > 150(+0.15)。リスクのしきい値:HHI > 0.25 = 重大、> 0.15 = 高、> 0.10 = 上昇。
デフォルトのソース: trade、corporate、pharma、environment(最大 8 アクター)
料金: 1 回あたり $0.045
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 医薬品、API 成分、または製造カテゴリ |
sources | string[] | いいえ | ソースグループ 4 つ | データソースグループ |
ツール 7:identify_substitution_pathways
治療上の代替薬のスコアリング:overallSubstitutability = 0.30 × Jaccard(治療対象疾患) + 0.30 × 生産能力の重複度 + 0.20 × リードタイムの類似度 + 0.20 × 規制上の同等性。switchTimeDays はリードタイムの差から推定されます。実用的な代替薬がない医薬品(スコア < 0.1)は、重大な脆弱性としてフラグ付けされます。ランク付けされた pathways 配列と viableCount を返します。
デフォルトのソース: clinical、health、pharma(最大 7 アクター)
料金: 1 回あたり $0.040
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 医薬品名、治療領域、または疾患 |
sources | string[] | いいえ | ソースグループ 3 つ | データソースグループ |
ツール 8:generate_preparedness_report
6 つのアルゴリズムをすべて順に実行し、結果を統合します。カテゴリ、深刻度、根拠、推奨事項を含む findings[]、0~100 の overallScore、riskGrade(CRITICAL/HIGH/ELEVATED/MODERATE/LOW)、criticalGaps の件数、recommendations[] のリスト、および 6 つのサブ分析すべての要約統計を含む algorithmResults オブジェクトを返します。
デフォルトのソース: 7 つのソースグループすべて(最大 15 アクター)
料金: 1 回あたり $0.050
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 医薬品、疾患、治療領域、または緊急事態のシナリオ |
sources | string[] | いいえ | 7 グループすべて | データソースグループ |
出力例
predict_drug_shortage — 応答
{
"query": "amoxicillin",
"result": {
"predictions": [
{
"drug": "Amoxicillin Trihydrate",
"probabilityOfShortage": 0.6821,
"percolationThreshold": 0.3125,
"timeToShortageWeeks": 6,
"driverFactors": [
"single_source_dependency",
"disaster_exposed_supplier",
"long_lead_time"
],
"severity": "high"
},
{
"drug": "Amoxicillin/Clavulanate",
"probabilityOfShortage": 0.3140,
"percolationThreshold": 0.4167,
"timeToShortageWeeks": 11,
"driverFactors": ["low_supply_redundancy"],
"severity": "medium"
}
],
"totalDrugsAnalyzed": 14,
"highRiskCount": 3,
"avgProbability": 0.2943
},
"summary": {
"totalDrugsAnalyzed": 14,
"highRiskCount": 3,
"avgProbability": 0.2943,
"topRisk": {
"drug": "Amoxicillin Trihydrate",
"probabilityOfShortage": 0.6821,
"severity": "high"
},
"riskIndicator": "HIGH"
}
}
simulate_disruption_cascade — 応答(一部抜粋)
{
"query": "insulin supply chain pandemic",
"result": {
"percolationSteps": [
{
"iteration": 1,
"layerA_removed": ["Wuhan API Ingredients Co", "Sichuan Distribution Hub"],
"layerB_removed": [],
"giantComponentFractionA": 0.7143,
"giantComponentFractionB": 0.9500
},
{
"iteration": 2,
"layerA_removed": ["Hebei Formulation Plant"],
"layerB_removed": ["Insulin Biosimilar Phase 3"],
"giantComponentFractionA": 0.5714,
"giantComponentFractionB": 0.8000
}
],
"criticalThreshold": 0.1429,
"giantComponentCollapsed": false,
"totalNodesRemoved": 7,
"supplyDemandCrossoverDay": 43,
"systemicImpact": 0.2187,
"seirTimeSeries": [
{ "day": 0, "S": 0.9999, "E": 0.000005, "I": 0.000005, "R": 0.0000, "supply": 500.00, "demand": 80.00 },
{ "day": 10, "S": 0.9978, "E": 0.0008, "I": 0.0014, "R": 0.0003, "supply": 467.32, "demand": 80.22 },
{ "day": 30, "S": 0.9621, "E": 0.0089, "I": 0.0249, "R": 0.0041, "supply": 361.18, "demand": 84.99 },
{ "day": 43, "S": 0.9301, "E": 0.0142, "I": 0.0488, "R": 0.0069, "supply": 172.10, "demand": 175.81 }
]
},
"summary": {
"giantComponentCollapsed": false,
"criticalThreshold": 0.1429,
"totalNodesRemoved": 7,
"supplyDemandCrossoverDay": 43,
"systemicImpact": 0.2187,
"riskIndicator": "MODERATE"
}
}
generate_preparedness_report — 応答(一部抜粋)
{
"query": "antibiotic supply chain pandemic preparedness",
"report": {
"findings": [
{
"category": "Geographic Concentration",
"finding": "86% of amoxicillin API production concentrated in 2 countries",
"severity": "critical",
"evidence": "UN COMTRADE: CN accounts for 0.64 market share, IN 0.22. HHI = 0.459.",
"recommendation": "Establish minimum 3-country API sourcing policy; maintain 180-day strategic reserves"
},
{
"category": "Supply Chain Resilience",
"finding": "4 drugs identified with zero viable therapeutic substitutes",
"severity": "high",
"evidence": "Jaccard substitutability scoring: 4 drugs with overallSubstitutability < 0.1",
"recommendation": "Prioritise biosimilar development for zero-substitute drugs"
},
{
"category": "Early Warning",
"finding": "PubMed publication frequency Granger-causes FDA adverse events at lag 2",
"severity": "medium",
"evidence": "F-statistic: 4.82, p-value: 0.031, lag order: 2",
"recommendation": "Monitor PubMed publication surge as 2-week leading indicator"
}
],
"overallScore": 38,
"criticalGaps": 2,
"riskGrade": "HIGH",
"recommendations": [
"Diversify API sourcing across minimum 3 jurisdictions for all critical medicines",
"Establish 90-day strategic reserves for high-shortage-probability drugs",
"Deploy Granger causality dashboard monitoring GDACS and WHO feeds"
]
},
"algorithmResults": {
"supplyChainSummary": { "totalEntities": 47, "singleSourceCount": 6 },
"cascadeSummary": { "collapsed": false, "criticalThreshold": 0.1429, "crossoverDay": 43 },
"shortageSummary": { "highRiskCount": 3, "avgProbability": 0.2943 },
"pipelineSummary": { "totalTrials": 12, "criticalPathWeight": 4840 },
"earlyWarningSummary": { "warningLevel": "elevated", "significantLinks": 3 },
"concentrationSummary": { "globalHHI": 0.459, "highRiskCountries": 1 },
"substitutionSummary": { "viableCount": 18, "avgScore": 0.3812 }
}
}
出力フィールド
| 項目 | 型 | 説明 |
|---|---|---|
query | string | 入力クエリ文字列 |
result / report | object | アルゴリズムの主な出力(ツール固有) |
summary | object | すばやく解釈するための主要指標 |
dataSources | object | ソースアクターごとのレコード数(例:{"emaMedicines": 18, "comtrade": 12, ...}) |
result.layers[] | array | 重要度の降順で並べたサプライチェーンエンティティの一覧(ツール 1) |
result.layers[].entity | string | エンティティ名(最大 50 文字) |
result.layers[].role | string | ノードの種類:医薬品、メーカー、施設、国など |
result.layers[].country | string | 管轄区域または国 |
result.layers[].criticality | number | 全ノードにおける degree / max_degree、0~1 |
result.layers[].alternativeCount | number | 次数が 0 以外の同種ノードの数 |
result.layers[].substitutabilityWeight | number | 重み付き代替可能性スコア、0~1 |
result.concentrationRiskPerDrug[] | array | { drug, risk }。risk = 1 / メーカー数 |
result.percolationSteps[] | array | 最大 20 回の反復カスケードステップ(ツール 2) |
result.percolationSteps[].giantComponentFractionA | number | 生き残った物理サプライレイヤーの割合 |
result.percolationSteps[].giantComponentFractionB | number | 生き残った規制レイヤーの割合 |
result.criticalThreshold | number | カスケードを引き起こした初期障害率 |
result.giantComponentCollapsed | boolean | 物理レイヤーが初期サイズの 30%を下回った場合に True |
result.supplyDemandCrossoverDay | number | null | 備蓄量が現在の需要の 50%を下回る日。交差しない場合は null |
result.systemicImpact | number | (除去されたノードの合計)/(ネットワーク内のノード総数)、0~1 |
result.seirTimeSeries[] | array | SEIR の各コンパートメントの割合と供給・需要水準の日次時系列 |
result.predictions[].probabilityOfShortage | number | ボンド・パーコレーションによる不足確率、0~1 |
result.predictions[].percolationThreshold | number | p_c = 1/⟨k⟩(医薬品のサプライチェーンサブグラフ) |
result.predictions[].timeToShortageWeeks | number | 不足発生までの推定週数 |
result.predictions[].driverFactors | string[] | 列挙された不足要因 |
result.predictions[].severity | string | 低/中/高/重大 |
result.dagNodes[].advancementProbability | number | 過去のフェーズ移行率 |
result.dagNodes[].impact | number | downstream_trials × patient_population × advancement_probability |
result.criticalPath | string[] | 最長の重み付き DAG パス上にある試験 ID の順序付き一覧 |
result.criticalPathWeight | number | クリティカルパス上の影響スコアの合計 |
result.grangerLinks[].fStatistic | number | VAR(2) モデルの F 統計量 |
result.grangerLinks[].pValue | number | p 値。< 0.05 の場合は有意 |
result.grangerLinks[].lagOrder | number | VAR モデルのラグ次数(2 に固定) |
result.topCausalDrivers[] | array | { series, outDegree } — 因果リンクの出次数が最も大きい時系列 |
result.warningLevel | string | 低/やや高/高/重大 |
result.risks[].herfindahlIndex | number | 国レベルの HHI 寄与度 |
result.risks[].compositeRisk | number | この国の HHI × ハザード曝露度 |
result.globalHHI | number | すべての製造国を対象とした HHI の集計値 |
result.pathways[].overallSubstitutability | number | 重み付き代替可能性スコア、0~1 |
result.pathways[].switchTimeDays | number | 代替先への移行にかかる推定日数 |
report.findings[].severity | string | 低/中/高/重大 |
report.overallScore | number | 備えのスコア 0~100(高いほど備えが整っている) |
report.riskGrade | string | CRITICAL / HIGH / ELEVATED / MODERATE / LOW |
report.criticalGaps | number | 重大度が「重大」の調査結果の数 |
algorithmResults | object | 6 つすべてのサブアルゴリズムの要約統計(ツール 8 のみ) |
パンデミック時のサプライチェーン分析の実行費用はいくらですか?
各ツール呼び出しには、以下の料金でイベントごとの従量課金が適用されます。プラットフォームのコンピューティング費用も含まれています。
| ツール | 1 回あたりの料金 |
|---|---|
map_drug_supply_chain | $0.045 |
simulate_disruption_cascade | $0.050 |
predict_drug_shortage | $0.045 |
assess_research_pipeline_risk | $0.045 |
detect_early_warning_signals | $0.045 |
compute_geographic_concentration_risk | $0.045 |
identify_substitution_pathways | $0.040 |
generate_preparedness_report | $0.050 |
使用料金のシナリオ
| シナリオ | 呼び出すツール | 合計料金 |
|---|---|---|
| 簡易的な供給不足チェック(医薬品 1 種) | predict_drug_shortage × 1 | $0.045 |
| 医薬品 1 種の代替オプション | identify_substitution_pathways × 1 | $0.040 |
| 完全な供給途絶分析(連鎖 + 供給不足) | ツール 2 種 × 1 | $0.095 |
| 包括的な備えレポート | generate_preparedness_report × 1 | $0.050 |
| ポートフォリオ監査(医薬品カテゴリー 10 種) | predict_drug_shortage × 10 | $0.45 |
| アナリスト向けの完全なワークフロー(8 種のツールを各 1 回) | 8 種のツール × 1 | $0.370 |
| 毎週のモニタリング(7 日間 × 警告チェック 1 回) | detect_early_warning_signals × 7 | $0.315 |
費用を管理するため、Apify Console で実行ごとの最大支出上限を設定できます。上限に達すると、サーバーは適切な { "error": true, "message": "Spending limit reached..." } JSON レスポンスを返します。部分的な請求や、通知のない失敗はありません。
新規の Apify アカウントには、毎月 $5 分の無料クレジットが付与されます。これは、分析パイプライン全体を試すための個別ツール呼び出し約 100 回分に相当します。
注:上記の料金は MCP のツール呼び出し料金のみです。基盤となるデータアクターはお使いの Apify アカウント上で実行されるため、結果の量に応じて追加のコンピューティングクレジットを消費する場合があります。通常、各アクターの実行には 256 MB のメモリと 120~180 秒のタイムアウトが割り当てられます。
API 経由で接続する
Python
import requests
import json
# MCP endpoint — get the standby URL from the Apify Console
mcp_url = "https://YOUR-ACTOR-STANDBY-HOST/mcp"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
# Predict shortage risk for a drug
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "predict_drug_shortage",
"arguments": {
"query": "amoxicillin antibiotic",
"sources": ["clinical", "health", "pharma", "trade", "environment"]
}
}
}
response = requests.post(mcp_url, json=payload, headers=headers)
result = response.json()
data = json.loads(result["result"]["content"][0]["text"])
for pred in data["result"]["predictions"][:5]:
print(f"{pred['drug']}: {pred['probabilityOfShortage']:.1%} shortage risk "
f"({pred['severity']}) — {pred['timeToShortageWeeks']} weeks")
JavaScript
const mcpUrl = "https://YOUR-ACTOR-STANDBY-HOST/mcp";
const payload = {
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: "compute_geographic_concentration_risk",
arguments: {
query: "insulin API manufacturing",
sources: ["trade", "corporate", "pharma", "environment"]
}
}
};
const response = await fetch(mcpUrl, {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
});
const result = await response.json();
const data = JSON.parse(result.result.content[0].text);
console.log(`Global HHI: ${data.result.globalHHI}`);
console.log(`Risk indicator: ${data.summary.riskIndicator}`);
for (const risk of data.result.risks.slice(0, 5)) {
console.log(`${risk.country}: HHI=${risk.herfindahlIndex.toFixed(3)}, `
+ `composite=${risk.compositeRisk.toFixed(3)}, level=${risk.riskLevel}`);
}
cURL
# Predict drug shortage risk
curl -X POST "https://YOUR-ACTOR-STANDBY-HOST/mcp" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "predict_drug_shortage",
"arguments": {
"query": "amoxicillin shortage risk",
"sources": ["clinical", "health", "pharma", "trade", "environment"]
}
}
}'
# List all 8 available tools
curl -X POST "https://YOUR-ACTOR-STANDBY-HOST/mcp" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Pandemic Supply Chain Cascade MCP の仕組み
フェーズ 1:並列データ収集
ツールが呼び出されると、fetchAllData が必要な 7 つのソースグループを判定します。該当するすべてのアクターは、個々の runActor 呼び出しに対する Promise.all をラップした runActorsParallel によって、同時にディスパッチされます。各アクターには 256 MB のメモリと 120~180 秒のタイムアウトが割り当てられます。デフォルトのソースを指定した predict_drug_shortage は 11 個のアクターを起動し、simulate_disruption_cascade と generate_preparedness_report は 15 個すべてを起動します。すべてのアクターの完了後、呼び出し順のインデックスに基づいて結果が名前付き配列に割り当てられます。
フェーズ 2:ハイパーグラフの構築
buildSupplyNetwork は、アクターの生の結果を 1 回の処理で型付きの SupplyNetwork にまとめます。ノードの重複は、simpleHash に基づく ID(エンティティ名または ID 文字列から生成される決定論的ハッシュ)を使用して除去されます。9 種類のエッジ関係タイプは、追加前にソースとターゲットの存在が検証されます。ハザードマップも同じ処理で構築され、GDACS、NOAA、USGS、OpenAQ の情報を場所ごとの曝露スコアに集約し、ハイパーエッジの組み立て前に国ノードへ直接注記として追加されます。ハイパーエッジは、物理的なサプライレイヤーから、各医薬品とそれに関連するすべての製造業者および調達国をグループ化します。
フェーズ 3:アルゴリズムの実行
各ツールは、scoring.ts からエクスポートされた8つのスコアリング関数のうち、1つ以上を呼び出します。カスケードシミュレーションでは、metadata.disaster === true または metadata.hazardExposure > 0.5 のノードを初期障害として設定します。災害のシードがない場合は、物理レイヤーで最も次数の高いノードをシードとして削除します。反復相互パーコレーションは、ノードがそれ以上削除されなくなるか、20回の反復上限に達するまで実行されます。SEIR ODEは同じ関数内でパーコレーションの直後に実行され、120日間にわたって0.5日刻みのオイラー法で日ごとの状態を記録します。不足予測と代替スコアリングでは、ハイパーエッジで接続された供給サブグラフを対象に、医薬品ごとに反復処理を行います。ツール8は6つすべてのアルゴリズムを順番に実行し、すべての出力を generatePreparednessReport に渡します。
フェーズ 4:出力の組み立て
結果は json() を使ってシリアライズされ、型付きアルゴリズム出力のすべての数値が小数点以下4桁に丸められます。概要オブジェクトには、アルゴリズム出力のしきい値比較から算出される主要な指標である riskIndicator、warningLevel、riskGrade が抽出されます(例:riskIndicator = giantComponentCollapsed ? "CRITICAL" : systemicImpact > 0.3 ? "HIGH" : "MODERATE")。dataSources オブジェクトには、監査可能性を確保するため、各ソースアクターから取得したレコード数が記録されます。
最良の結果を得るためのヒント
-
トリアージには
predict_drug_shortageから始めましょう。 5つのソースグループを使用し($0.045)、不足確率に基づいて医薬品をすぐに順位付けし、要因を列挙します。より負荷の高いカスケード分析や備えの分析に費用をかける前に、どの医薬品を詳しく分析する必要があるかを特定できます。 -
経営層向けの成果物には
generate_preparedness_reportを使いましょう。 6つすべてのアルゴリズムを1回の$0.050の呼び出しで実行します。各ツールを個別に呼び出す場合の合計$0.370より安価で、説明資料や規制当局への提出にすぐ使える、分類済みの所見を含む統合リスクグレードを生成します。 -
対象を絞ったクエリでは
sourcesを絞り込み、レイテンシを減らしましょう。compute_geographic_concentration_riskに必要なのはtrade、corporate、pharma、environmentだけです。この4つのグループのみを指定すると、アクター数を15から8に減らし、通常の実行時間を30~50%短縮できます。 -
supplyDemandCrossoverDayは相対的なリスク指標として解釈しましょう。 SEIR供給ODEは固定パラメーター(β=0.3、σ=0.2、γ=0.1、初期備蓄500単位)を使用します。医薬品Aが43日目、医薬品Bが78日目という結果は有意義な相対比較ですが、特定の病原体やサプライチェーンに合わせて調整された正確な予測ではありません。 -
giantComponentCollapsed: trueは、最も深刻なパーコレーションの兆候です。 これは、連鎖的な相互依存障害によって物理供給レイヤーのノードの70%超が削除されたことを意味します。システミックリスクの兆候として扱い、複数のアルゴリズムによる全体像を確認するため、直ちにgenerate_preparedness_reportを実行してください。 -
detect_early_warning_signalsは、定期モニタリングのトリガーとして使いましょう。 重要な医薬品カテゴリーについて、毎週実行してください。warningLevelがelevatedからhighまたはcriticalに変わったら、全体分析のためにgenerate_preparedness_reportを実行します。グレンジャー因果ネットワークは、その特定のクエリにおいて、どの時系列(PubMed、GDACS、WHOなど)が最も予測力の高い先行指標かを特定します。 -
データを幅広く取得するにはINN名を使いましょう。 アクターは
query文字列を検索語として公開APIを照会します。国際一般名(例:「Amoxil」ではなく「amoxicillin」)を使うと、EMA、FDA、PubMedから同時により多くのレコードが見つかり、より充実したサプライチェーングラフが生成されます。 -
driverFactorsを社内の調達データと照合しましょう。single_source_dependencyとlong_lead_timeのフラグは、公開データネットワークから導出されます。モデル化された各リスクを確認または否定するため、仕入先の記録と照合してください。このアルゴリズムが提供するのはスクリーニング用のリストであり、最終判断ではありません。
他の Apify アクターとの組み合わせ
| アクター | 組み合わせ方 |
|---|---|
| 臨床試験トラッカー | この MCP の直接的なデータソースです。特定の NCT ID または疾患領域を指定して単独で実行し、対象疾患を指定したクエリで assess_research_pipeline_risk を使用する前に、完全な試験メタデータを取得します。 |
| openFDA 医薬品有害事象 | 医薬品名を事前スクリーニングし、predict_drug_shortage を呼び出す前に FDA の有害事象データの有無を確認するため、単独で実行します。ある医薬品の FDA データが少ない場合は、その医薬品の公開サプライチェーン情報が限られていることを示します。 |
| GDACS 災害アラート | 該当地域の製造業者について simulate_disruption_cascade を呼び出す前に、地域クエリを指定して単独で実行し、最新の災害状況を取得します。これにより、パーコレーションモデルの災害の起点が現在の事象を反映しているか確認できます。 |
| UN COMTRADE 検索 | compute_geographic_concentration_risk を使用する前に、特定の HS 商品コードを指定して単独で実行し、詳細な貿易フローデータを取得します。一般的な医薬品クエリよりも正確な HHI 入力値を得られます。 |
| EMA 医薬品検索 | map_drug_supply_chain を各医薬品に対して呼び出す監視ループを構築する前に、治療カテゴリー内の承認済み医薬品をすべて列挙するため、単独で使用します。 |
| 企業詳細調査 | map_drug_supply_chain が返す重要度の高い製造業者エンティティを対象に実行すると、サプライヤーの多様化を判断する前に、財務状況、所有構造、規制履歴など、企業の詳細な情報を取得できます。 |
| Web サイト技術スタック検出器 | サプライチェーンのマッピングで特定された製造業者および販売業者の Web サイトに使用し、物理的なサプライチェーンの脆弱性と併せて、デジタルインフラのリスクを評価します。 |
制限事項
- SEIR パラメーターは固定のベースラインです。 β=0.3、σ=0.2、γ=0.1 および人口 1,000,000 人は、特定の病原体や地域に合わせて調整されたものではありません。
supplyDemandCrossoverDayは、絶対的な予測ではなく、クエリ間の相対的な指標として使用してください。 - ネットワークトポロジーは公開レジストリデータから導出されています。 EMA、FDA、COMTRADE、OpenCorporates、ClinicalTrials.gov が使用されています。民間の受託製造契約、二次 API 調達の取り決め、非公開の販売代理店との関係は反映されていません。実際のサプライチェーンは、モデル化されたネットワークよりも一般に複雑で、相互につながっています。
- グレンジャー因果性ではイベント数の代理指標を使用します。 VAR(2) モデルでは、公開論文数、災害警報数、有害事象報告数を時系列の代理指標として使用します。これらは根底にある傾向を粗く近似したものです。統計的有意性の値は、因果関係を裏付ける確証ではなく、方向性を示すものとして解釈してください。
- HHI の市場シェアは貿易量から推定されています。 UN COMTRADE の貿易額を、製造能力の市場シェアの代理指標として使用します。必要な国別・製品別の粒度での実際の生産能力データは公開されていません。
- パーコレーション閾値は一様なランダム故障を前提としています。 Buldyrev モデルでは、災害の影響を受けたノードから故障を発生させます。これは完全なランダム故障より現実的ですが、媒介中心性の高いノードへの標的型攻撃や、連携したサプライチェーンの混乱はモデル化されていません。
- データの鮮度はソースによって異なります。 WHO GHO は四半期ごと、GDACS はほぼリアルタイム、EMA は週次で更新されます。UN COMTRADE では、一部の商品コードで報告に 3~12 か月の遅れがあります。結果には、各ソースで入手可能な最新データが反映されます。
- サーバーはステートレスです。 ツールを呼び出すたびに、すべてのデータを最初から再取得します。呼び出し間のキャッシュはありません。重複したデータ取得コストを避けるため、8 つすべてのツールを短時間に続けて呼び出すのではなく、包括的な分析には
generate_preparedness_reportを使用してください。 - ノードの重複排除には名前ハッシュ ID を使用します。 「Amoxicillin」、「AMOXICILLIN TRIHYDRATE」、「amoxicillin sodium」は別々の医薬品ノードとして作成されます。ソース間で名称に一貫性がない医薬品では、代替品の数が少なく見積もられる場合があります。クエリには、最も具体的な標準名称を使用してください。
統合
- Claude Desktop — スタンバイ
/mcpエンドポイントをclaude_desktop_config.jsonに追加して、8 つすべてのサプライチェーン分析ツールを Claude に直接公開します - Cursor —
.cursor/mcp.jsonで MCP サーバーとして設定し、IDE 内でサプライチェーンのリスクをクエリします - Apify API — JSON-RPC 2.0 MCP プロトコルを使用し、
POST /mcp経由で任意の HTTP クライアントからプログラムでツールを呼び出します - Zapier —
detect_early_warning_signalsをスケジュールに従って実行し、警告レベルが変化した際に結果を Slack、メール、またはチケット管理システムに送信します - Make —
predict_drug_shortageを毎週呼び出し、重大度がクリティカルな結果を調達チームの通知チャネルに送るワークフローを構築します - Webhooks — MCP アクターのスタンバイコンテナの起動時または停止時に Webhook を発火し、後続システムの更新をトリガーします
- LangChain / LlamaIndex —
/mcpエンドポイントを LangChain ツールとしてラップし、サプライチェーン分析と社内文書の検索または CRM データを組み合わせる複数ステップのエージェントワークフローを構築します
トラブルシューティング
よく知られている医薬品なのに、ツールの結果が最小限、または予測が空になります。 データアクターは、公開 API に対する検索語として query 文字列を使用します。略称、ブランド名、塩形はデータベースのエントリと一致しないことがあります。INN(国際一般名)を使用してください。たとえば、「Amoxil」や「amoxicillin trihydrate」ではなく、「amoxicillin」を指定します。希少な医薬品の場合は、データ範囲を広げるため、疾患領域を試してください。たとえば、「respiratory tract infection antibiotic」と指定します。
カスケード結果で supplyDemandCrossoverDay が null になります。 120 日間のシミュレーション期間中、供給が需要の 50%を下回ることはありませんでした。これは、ベースラインの SEIR パラメーターのもとでは、短期的な供給途絶リスクが低いことを示しています。ネットワークトポロジーを確認するには、systemicImpact と giantComponentCollapsed を確認してください。クロスオーバー指標が測定するのは在庫枯渇のタイミングのみであり、サプライチェーンの構造的な脆弱性ではありません。
どのクエリでも warningLevel が "low" を返します。 グレンジャー因果性の結果は、health、pharma、environment、trade の各アクターが取得するイベント数に左右されます。ニッチな医薬品や小規模な治療カテゴリーでは、統計的に有意な因果関係を検出するにはレコード数が少なすぎる場合があります。疾患領域を指定してクエリの範囲を広げる(たとえば、特定の医薬品ではなく「beta-lactam antibiotics」と指定する)か、clinical と macro のソースグループを追加してデータ密度を高めてください。
実行が完了しないまま 3 分を超えます。 7 つすべてのソースグループを使用するツールでは、最大 15 個のアクターが並行して実行されます。実際の所要時間は、上流 API の応答のうち最も遅いものに左右されます。臨床試験アクターのタイムアウトは 180 秒です。タイムアウトが頻繁に発生する場合は、クエリに最も関連性の高い 4~5 個のグループに sources を絞り込み、最も遅いデータソースを除外してください。
riskGrade が HIGH ですが、overallScore は 50 を超えています。 リスクグレードは、単一の所見カテゴリーのうち最も深刻なものを反映します。一方、overallScore はすべてのカテゴリーを集計した値です。地理的な集中度に関する重大なギャップが 1 つあると、ほかのスコアが中程度でも HIGH グレードになります。findings 配列を確認し、severity: "critical" のエントリに注目して、具体的な要因を特定してください。
責任ある利用
- このサーバーがクエリするのは、FDA、EMA、WHO、GDACS、NOAA、USGS、UN COMTRADE、OpenCorporates、ClinicalTrials.gov、PubMed、OpenAQ、IMF、World Bank など、政府間機関および公開の健康データベースが提供する一般公開データのみです。
- 結果は公開データから導き出された分析モデルの出力であり、公式な規制当局の評価ではありません。有資格の医薬品サプライチェーン専門家による分析の代わりとして提示しないでください。
- 不必要な買いだめやパニック買いを引き起こす可能性があるため、特定の医薬品の入手可能性について公に発言する際に、供給不足の確率の出力を使用しないでください。
- 各基盤データソースの利用規約と利用ポリシーを遵守してください。
- 公衆衛生データの責任ある利用に関するガイダンスについては、WHO data governance principles を参照してください。
- ウェブスクレイピングの合法性に関するガイダンスについては、Apify's legal guide を参照してください。
FAQ
パンデミック時のサプライチェーン・カスケードモデリングとは何ですか。また、なぜ重要なのですか? 医薬品サプライチェーンは相互依存するネットワークです。ある国で工場が閉鎖すると、API のサプライヤー、最終製剤メーカー、流通業者へと影響が連鎖し、数か月後に供給不足が発生する可能性があります。カスケードモデリングでは、ネットワーク理論、特に Buldyrev の相互依存ネットワーク・パーコレーションを用いて、どの障害が波及してシステム全体の崩壊につながるのか、またどの障害が冗長な経路によって吸収されるのかを判定します。 Buldyrevの相互依存ネットワークパーコレーションはどのように機能しますか? 物理的な供給ネットワーク(製造業者、施設、国)と規制承認ネットワーク(医薬品、治験、規制当局)という2つの結合したネットワーク層を同時にモデル化します。層Aでノードが停止すると、層Bで依存するノードも停止し、さらにその停止が層Aの追加の停止を引き起こします。この相互パーコレーションを反復すると、安定した停止状態に収束します。最大連結成分に残っているノードの割合は、ネットワークのどの程度が引き続き機能しているかを示します。
SEIRと供給を連成させたODEモデルはどのように機能しますか?
このモデルでは、標準的なSEIR疫学シミュレーションを実行し、労働者の罹患割合(E+I)/労働力人口を供給の微分方程式に直接反映します:dSupply/dt = production×(1−worker_illness_fraction) − demand×(1+panic_factor×I/N)。感染症の拡大に伴い、生産量が減少し、パニック買い(係数=2.0)によって需要が増加します。supplyDemandCrossoverDayは、備蓄が1日あたりの需要の50%を下回る日です。
predict_drug_shortageによる医薬品不足確率はどの程度正確ですか?
ボンドパーコレーションモデルは、理論的な根拠に基づく比較用のリスクスコアを提供します。データの完全性に大きく左右されるため、EMA、FDA、COMTRADEの記録が少ない医薬品では、モデル化された供給グラフが単純になり、確率推定の信頼性が低くなる可能性があります。このスコアは、医薬品ポートフォリオ全体の比較に基づく優先順位付けやスクリーニングに使用し、絶対的な確率予測としては使用しないでください。
ResilincやInterosなどの商用プラットフォームとはどのように異なりますか? 商用プラットフォームは、独自のサプライヤーデータベース、直接のEDI統合フィード、過去の供給中断記録、専門家が精査したサプライチェーンマップを使用しますが、これらは一般公開されていません。このMCP サーバーは公開データのみを使用します。トレードオフは、1回の分析につき$0.04~$0.05で、年間$50,000~$200,000のエンタープライズサブスクリプションと比べて低コストであること、MCP互換のあらゆるAI エージェントと組み合わせられること、そして特定の非公開サプライヤー関係に関する情報はより限定的であることです。
医薬品ポートフォリオを定期的に監視するために、このMCP サーバーを実行できますか?
はい。医薬品または治療カテゴリーごとに、該当するツールを1回ずつ呼び出してください。定期監視には、Apify Schedulesを使用してcron式でツールを実行するか、Zapier/Makeのワークフローに接続します。detect_early_warning_signalsを使用して20種類の医薬品ポートフォリオを毎週監視する場合、年間費用は$0.045 × 20 × 52 = $46.80です。
giantComponentCollapsed: trueは実際には何を意味しますか?
連鎖的な相互依存の障害によって、物理的な供給層のノードの70%超が取り除かれたことを意味します。サプライチェーンの観点では、モデル化されたネットワーク内の製造業者、施設、国の大半が、最初に発生した中断の波及効果によって機能しなくなったことを示します。これはモデルが出力する構造的リスクシグナルの中で最も深刻なものであり、供給ネットワークがほぼ完全に分断されるシナリオに相当します。
医薬品サプライチェーンの分析にこのデータを使用することは合法ですか? 15件すべてのデータソースは、FDA、EMA、WHO、UN、USGS、NOAAなどが公開用および研究用に提供する政府機関および政府間機関の公開データベースです。サプライチェーンのリスク分析に使用することは全面的に適切です。Apifyのガイドを参照し、管轄区域ごとの義務については法律専門家に相談してください。
assess_research_pipeline_riskのcriticalPathはどのように解釈すればよいですか?
クリティカルパスとは、パイプラインDAG内の臨床試験を順番に並べたもので、下流の治験数 × 患者集団 × 過去の進行確率で重み付けした影響の合計が最大になる経路です。クリティカルパス上の治験が中断されると、その疾患領域の医薬品開発パイプライン全体に最も大きな影響が及びます。どの治験に代替の供給体制が必要かを優先順位付けする際に活用してください。
15 個すべてのアクターが空の結果を返した場合、どうなりますか?
サーバーは、空の配列と低〜中程度のリスク指標を含む、有効ながら最小限の出力を返します。エラーにはなりません。通常、クエリ文字列が基盤となる公開データベースのレコードと一致しない場合に発生します。より幅広く、一般的な検索語をお試しください。たとえば、医薬品のINN、対象疾患領域、または一般的な治療カテゴリーなどです。
通常、generate_preparedness_report の呼び出しにはどのくらい時間がかかりますか?
上流APIの応答時間によって異なりますが、90秒から4分です。15 個すべてのアクターが並列で実行されるため、実際にかかる時間は合計ではなく、最も応答の遅いアクターとほぼ同じです。臨床試験アクターの呼び出しは通常、最も時間がかかり、最大180秒かかることがあります。
MCP 互換の AI エージェントフレームワークならどれでも使えますか?
はい。このサーバーは POST /mcp で Streamable HTTP MCP トランスポートを実装しており、MCP 2024-11-05 仕様に準拠しています。Claude Desktop、Cursor、Cline、Continue、LibreChat、LangChain の MCP アダプター、および現行の MCP 仕様を実装するすべてのフレームワークと互換性があります。
改善にご協力ください
問題が発生した場合は、実行結果の共有を有効にすると、問題のデバッグを迅速に進めることができます。
- アカウント設定 > プライバシーに移動します
- 実行結果を公開アクターの作成者と共有するを有効にします
これにより、問題が発生した際に実行の詳細を確認できるようになります。データを閲覧できるのはアクターの開発者のみで、一般公開されることはありません。
サポート
バグを見つけた場合や機能のリクエストがある場合は、このアクターのページにあるIssues タブで Issue を作成してください。カスタムの医薬品サプライチェーンモデル、追加データソース、またはエンタープライズ向けの統合については、Apify プラットフォームを通じてお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。