mcpField
P
Pandemic Supply Chain Cascade

Pandemic Supply Chain Cascade

远程服务
ryanclinton--pandemic-supply-chain-cascade-mcp.apify.actor健康医疗032 周前更新

关于 Pandemic Supply Chain Cascade

这是面向公共卫生机构、制药企业和研究人员的药品供应链风险分析 MCP 服务。它结合公共数据与定量算法,评估短缺风险、供应链脆弱点及应急准备情况。

主要功能

  1. 01构建药品供应链超图
  2. 02预测药品短缺概率
  3. 03分析地理集中度风险
  4. 04评估临床研究管线关键性
  5. 05生成含证据和建议的准备报告

适用场景

  1. 01识别公共卫生应急中的药品短缺风险
  2. 02定位单一来源供应商和地区集中风险
  3. 03评估临床试验中断的下游影响
  4. 04生成药品短缺预防风险报告

MCP 相关

服务在 /mcp 端点通过 Streamable HTTP 暴露八种分析工具,供兼容 MCP 的 Agent 或 LLM 客户端调用。客户端需在配置中提供 Apify API token。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://ryanclinton--pandemic-supply-chain-cascade-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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Pandemic Supply Chain Cascade MCP

在 ApifyForge 上查看 | 在 Apify Store 上使用


快速开始

添加到你的 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 是一个模型上下文协议服务,用于在卫生紧急事件期间对药品供应链中断进行建模。它为 AI Agent 提供八种分析工具,这些工具基于六种定量算法构建——Buldyrev 相互依赖网络渗流、SEIR-供应耦合常微分方程、键渗流短缺预测、研究管线有向无环图(DAG)关键性、Granger 因果关系预警,以及 HHI 地理集中度风险——并以 15 个公共数据 Actor 提供的实时数据为依据。由此可获得可计算、以证据为依据的视图,了解哪些药物存在短缺风险、何时会出现供需交叉,以及哪些准备工作缺口最为关键。

将任何兼容 MCP 的 AI Agent 或大模型客户端连接到 /mcp 端点,即可使用全部八种工具。该服务以 Standby 模式运行在 Apify 的基础设施上,始终可用,无需等待冷启动。

此 MCP 服务会分析哪些数据?

数据类型📌 来源 Actor使用示例
📋 临床试验记录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 QualityAQI 数值;超过 150 的读数会被标记为灾害事件
🚢 国际贸易流量UN COMTRADE报告国/伙伴国、贸易额、商品代码
📈 宏观经济指标IMF Economic DataGDP、经济脆弱性代理指标
🌍 发展指标World Bank Indicators国家层面的发展和治理数据
🏢 企业注册信息OpenCorporates Search制造商名称、司法管辖区、注册成立日期

为什么使用 Pandemic Supply Chain Cascade MCP?

手动评估制药供应链风险,需要一位生物统计学家、一位网络科学家、一位贸易数据分析师,以及数周的数据收集工作。Resilinc 或 Interos 等商业平台的企业版每年收费 50,000–200,000 美元。学术工具需要 MATLAB 或 Python 专业知识,以及无法公开获取的专有数据集。

此 MCP 服务可自动完成整个分析流程。AI Agent 调用一个工具后,服务便会并行从最多 15 个参与方获取数据,构建类型化供应链超图,运行相关算法,并返回结构化 JSON — 所有操作只需一次 MCP 工具调用。

平台优势:

  • 始终待命模式 — 服务会在请求之间保持热运行;工具调用之间没有冷启动延迟
  • 并行获取数据 — 所有适用的参与方都会通过 Promise.all 并发运行,最大限度缩短实际耗时
  • 按工具调用付费 — 无需订阅,也无最低承诺;费用根据实际使用量按每次工具调用 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 相互依赖网络渗流分析——包含两个耦合层:物理供应(制造商、设施、国家)和监管审批(药品、试验、监管机构);跟踪 BFS 最大连通分量;从受灾节点或度最高的节点开始进行迭代相互渗流;最多迭代 20 次并检测收敛
  • SEIR 供应耦合 ODE——在 120 天的时间范围内采用 Euler 前向积分;β=0.3、σ=0.2、γ=0.1、dt=0.5 天;dSupply/dt = production×(1−worker_illness_fraction) − demand×(1+panic_factor×I/N),其中 panic_factor=2.0;当库存降至当前需求的 50% 以下时,检测 supplyDemandCrossoverDay
  • Bond 渗流短缺预测——每种药品的渗流阈值 p_c = 1/⟨k⟩,其中 ⟨k⟩ 是供应链子图的平均度;节点故障概率由危险暴露、灾害标记(+0.35)和预设基础率(5–20%)计算;短缺概率 = avg_fail_prob / p_critical,最高为 1.0;严重程度:危急 ≥ 0.75、高 ≥ 0.50、中 ≥ 0.25
  • 研发管线 DAG 关键性分析——构建贯穿 Phase 1 → Phase 2 → Phase 3 → Approval 的有向无环图;每个节点的影响 = 下游试验数 × 患者群体规模 × 阶段推进概率;历史阶段推进率:Phase 1 = 63%、Phase 2 = 31%、Phase 3 = 58%;通过拓扑排序计算最长加权路径作为关键路径
  • Granger 因果早期预警网络——对 6 个时间序列建立 VAR(2) 模型:PubMed 出版频率、WHO 通报、OpenAQ 异常、GDACS 灾害事件、FDA 不良事件和 COMTRADE 贸易量;采用 p < 0.05 的 F 检验;构建有向因果图,并按领先指标的出度排序;显著连接 ≥ 5 时,预警级别为危急
  • HHI 地理集中度风险——使用 Herfindahl-Hirschman 指数(HHI = Σ market_share²)衡量各国药品制造产能的集中度;综合风险 = HHI × max(hazard_exposure);危险地图累计 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(treated_diseases) + 0.30 × capacity_overlap + 0.20 × lead_time_similarity + 0.20 × regulatory_equivalence;根据替代药品与原药之间的交货时间差估算 switchTimeDays
  • 全面的准备情况报告——一次调用运行全部六种算法;生成按类别划分的 findings,包含严重程度评级、证据字符串和建议;overallScore 范围为 0–100;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 Agent 供应链监控工作流

构建由大模型驱动的监控管道的团队,可以将此 MCP 服务连接到 Claude 或其他 Agent,定期运行供应链评估、比较 warningLevel 和 riskGrade 随时间的变化,并在情况恶化时触发警报。结构化 JSON 输出使下游差异跟踪和警报功能易于实现。

大流行应急准备的学术与政策研究

建模大流行应急准备情景的研究人员,可以使用 SEIR-供应 ODE 和渗流级联工具,探索不同初始故障比例、供应链拓扑和大流行参数下的中断情景——分析基于真实临床试验和贸易数据,而非合成网络。

如何将 Pandemic Supply Chain Cascade MCP 连接到 AI Agent

  1. 获取 MCP 端点 URL——在 Apify Console 中该 Actor 的 API 选项卡下查找 Standby URL。URL 格式为 https://[actor-standby-host]/mcp。
  2. 添加 Apify API 令牌——在 MCP 客户端配置中,将其作为 Authorization: Bearer YOUR_API_TOKEN 标头传递。
  3. 配置 MCP 客户端——在 Claude Desktop、Cursor 或 Cline 中,将服务添加到 MCP 配置。该服务使用 POST /mcp 上的 Streamable HTTP 传输。
  4. 调用工具——让 AI Agent“预测阿莫西林的药物短缺风险”或“生成胰岛素供应链的应急准备报告”。Agent 会选择合适的工具,传入 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

为查询构建药品供应链超图。计算每个实体的可替代性权重(产能重叠度 × 交付周期相似度 × 监管等效性),返回关键性评分(degree / max_degree)、替代方案数量、单一来源标记,以及每种药品的集中度风险(1 / manufacturer_path_count)。超边将每种药品连接到所有参与的制造商和采购国。

默认数据源: clinical、health、pharma、trade、corporate(最多 9 个参与方)

定价: 每次调用 $0.045

参数类型必填默认值说明
querystring是—药品名称、疾病、制造商或供应链实体
sourcesstring[]否["clinical","health","pharma","trade","corporate"]要查询的数据源组

工具 2:simulate_disruption_cascade

运行两个耦合模型:(1)Buldyrev 相互依赖网络渗流——物理供应层 A(制造商、设施、国家)和监管审批层 B(药品、试验、监管机构),进行最多 20 轮迭代相互渗流,并通过 BFS 跟踪巨型连通分量;(2)SEIR 供应 ODE——前向 Euler 法,β=0.3,σ=0.2,γ=0.1,120 天时域,需求受恐慌放大(factor=2.0)。当库存 < 需求的 50% 时,检测 supplyDemandCrossoverDay。

默认数据源: 全部 7 个数据源组(最多 15 个参与方)

定价: 每次调用 $0.050

参数类型必填默认值说明
querystring是—要模拟的药品、疾病或供应链实体
sourcesstring[]否全部 7 个数据源组数据源组

工具 3:predict_drug_shortage

按药品进行键渗流短缺预测。p_c = 1/⟨k⟩;节点失效概率根据风险暴露、灾害标记(0.35)和设定的基准发生率(5–20%)计算;短缺概率 = 平均失效概率 / 临界渗流概率。列举的驱动因素包括:single_source_dependency、high_supplier_failure_risk、disaster_exposed_supplier、low_supply_redundancy、long_lead_time、low_percolation_threshold。严重程度:危急 ≥ 0.75,高 ≥ 0.50,中 ≥ 0.25。

默认数据源: clinical、health、pharma、trade、environment(最多 11 个参与方)

定价: 每次调用 $0.045

参数类型必填默认值说明
querystring是—药品名称、治疗领域或制造商
sourcesstring[]否5 个数据源组数据源组

工具 4:assess_research_pipeline_risk

构建临床试验阶段的有向无环图(Phase 1 → Phase 2 → Phase 3 → Approval)。每个节点的影响 = 下游试验数 × 患者群体规模 × 进展概率。历史进展率:Phase 1 = 63%,Phase 2 = 31%,Phase 3 = 58%。关键路径 = 权重最长路径。返回 criticalPath 试验 ID 列表、criticalPathWeight 以及每项试验的 impact 评分。

默认数据源: clinical、health、pharma、corporate(最多 7 个参与方)

定价: 每次调用 $0.045

参数类型必填默认值说明
querystring是—疾病领域、药物靶点或治疗类别
sourcesstring[]否4 个数据源组数据源组

工具 5:detect_early_warning_signals

对 6 个时间序列进行格兰杰因果网络分析:PubMed 论文发表频率、WHO 通报、OpenAQ 空气质量异常、GDACS 灾害事件、FDA 不良事件和 COMTRADE 贸易量。每对序列使用 VAR(2) 模型;通过 F 检验识别显著因果关联,阈值为 p < 0.05。按因果出度对领先指标序列排序。显著关联数 ≥ 5 时,预警级别为严重。

默认数据源: health、pharma、environment、trade(最多 7 个参与方)

定价: 每次调用 $0.045

参数类型必填默认值描述
querystring是—要监测的药物、疾病或供应链实体
sourcesstring[]否4 个数据源组数据源组

工具 6:compute_geographic_concentration_risk

按国家计算药品制造产能的 HHI = Σ(market_share²)。综合风险 = HHI × max(hazard_exposure_per_location)。灾害地图:GDACS 严重程度(红色 = 3 × 0.3)、NOAA 事件(每次 +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 个参与方)

定价: 每次调用 $0.045

参数类型必填默认值描述
querystring是—药物、API 成分或制造类别
sourcesstring[]否4 个数据源组数据源组

工具 7:identify_substitution_pathways

治疗替代品评分:overallSubstitutability = 0.30 × Jaccard(treated_diseases) + 0.30 × capacity_overlap + 0.20 × lead_time_similarity + 0.20 × regulatory_equivalence。根据交货时间差估算 switchTimeDays。将没有可行替代品(评分 < 0.1)的药物标记为严重脆弱项。返回排序后的 pathways 数组和 viableCount。

默认数据源: clinical、health、pharma(最多 7 个参与方)

定价: 每次调用 $0.040

参数类型必填默认值描述
querystring是—药物名称、治疗领域或疾病
sourcesstring[]否3 个数据源组数据源组

工具 8:generate_preparedness_report

依次运行全部六种算法并综合分析结果。返回包含类别、严重程度、证据和建议的 findings[];0–100 分的 overallScore;riskGrade(CRITICAL/HIGH/ELEVATED/MODERATE/LOW);criticalGaps 计数;recommendations[] 列表;以及包含全部六项子分析摘要统计信息的 algorithmResults 对象。

默认数据源: 全部 7 个数据源组(最多 15 个参与方)

定价: 每次调用 $0.050

参数类型必填默认值描述
querystring是—药物、疾病、治疗领域或紧急情况
sourcesstring[]否全部 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 }
  }
}

输出字段

字段类型描述
querystring输入查询字符串
result / reportobject主要算法输出(特定于工具)
summaryobject用于快速解读的关键指标
dataSourcesobject每个来源 actor 的记录数(例如,{"emaMedicines": 18, "comtrade": 12, ...})
result.layers[]array按关键性降序排列的供应链实体列表(工具 1)
result.layers[].entitystring实体名称(最多 50 个字符)
result.layers[].rolestring节点类型:药物、制造商、设施、国家等
result.layers[].countrystring管辖区或国家
result.layers[].criticalitynumber所有节点中的 degree / max_degree,取值范围为 0–1
result.layers[].alternativeCountnumber具有非零 degree 的同类型节点数量
result.layers[].substitutabilityWeightnumber加权可替代性评分,取值范围为 0–1
result.concentrationRiskPerDrug[]array{ drug, risk },其中 risk = 1 / manufacturer_count
result.percolationSteps[]array最多 20 次迭代的级联步骤(工具 2)
result.percolationSteps[].giantComponentFractionAnumber存续的物理供应层比例
result.percolationSteps[].giantComponentFractionBnumber存续的监管层比例
result.criticalThresholdnumber触发级联的初始故障比例
result.giantComponentCollapsedboolean当物理层降至初始规模的 30% 以下时为 True
result.supplyDemandCrossoverDaynumber | null库存低于当前需求 50% 时的天数;若未出现交叉则为 null
result.systemicImpactnumber(移除的节点总数)/(网络节点总数),取值范围为 0–1
result.seirTimeSeries[]array每日 SEIR 分舱比例,以及供应和需求水平
result.predictions[].probabilityOfShortagenumberBond 渗流短缺概率,取值范围为 0–1
result.predictions[].percolationThresholdnumberp_c = 1/⟨k⟩,表示该药物供应链子图的渗流阈值
result.predictions[].timeToShortageWeeksnumber预计距离短缺开始的周数
result.predictions[].driverFactorsstring[]列举的短缺驱动因素
result.predictions[].severitystring低 / 中 / 高 / 严重
result.dagNodes[].advancementProbabilitynumber历史阶段推进率
result.dagNodes[].impactnumberdownstream_trials × patient_population × advancement_probability
result.criticalPathstring[]加权 DAG 最长路径上的有序试验 ID
result.criticalPathWeightnumber关键路径上影响评分的总和
result.grangerLinks[].fStatisticnumberVAR(2) 模型的 F 统计量
result.grangerLinks[].pValuenumberp 值;小于 0.05 时具有显著性
result.grangerLinks[].lagOrdernumberVAR 模型的滞后阶数(固定为 2)
result.topCausalDrivers[]array{ series, outDegree } — 外向因果关联最多的时间序列
result.warningLevelstring低 / 升高 / 高 / 严重
result.risks[].herfindahlIndexnumber国家层面的 HHI 贡献
result.risks[].compositeRisknumber该国家的 HHI × hazard_exposure
result.globalHHInumber所有制造业国家的汇总 HHI
result.pathways[].overallSubstitutabilitynumber加权可替代性评分,取值范围为 0–1
result.pathways[].switchTimeDaysnumber预计转换为替代品所需的天数
report.findings[].severitystring低 / 中 / 高 / 严重
report.overallScorenumber准备度评分,范围为 0–100(越高表示准备越充分)
report.riskGradestring严重 / 高 / 升高 / 中等 / 低
report.criticalGapsnumber严重级别发现的数量
algorithmResultsobject所有 6 个子算法的汇总统计(仅工具 8)

开展疫情供应链分析需要多少费用?

每次工具调用均按下方价格收取单次按事件付费费用。平台计算成本已包含在内。

工具每次调用价格
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 个工具各调用一次)全部 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 工具调用费用。底层数据 Actor 在你的 Apify 账户上运行,根据结果数量可能会额外消耗计算额度。实际运行中,每个 Actor 运行分配 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 个数据源组。随后通过 runActorsParallel 同时调度所有适用的 Actor;该函数使用 Promise.all 包装各个 runActor 调用。每个 Actor 运行分配 256 MB 内存,超时时间为 120–180 秒。使用默认数据源调用 predict_drug_shortage 会触发 11 个 Actor;调用 simulate_disruption_cascade 和 generate_preparedness_report 则会触发全部 15 个 Actor。所有 Actor 执行完毕后,系统会根据调用顺序索引,将结果映射回对应的命名数组。

阶段 2:构建超图

buildSupplyNetwork 会在一次遍历中,将原始 Actor 结果组装为类型化的 SupplyNetwork。节点使用基于 simpleHash 的 ID 去重(根据实体名称或 ID 字符串生成确定性哈希)。插入前会验证九种边关系类型的源节点和目标节点是否存在。危险图谱也在同一遍历中构建:将 GDACS、NOAA、USGS 和 OpenAQ 的数据汇总为各地点的暴露评分,并在组装超边前直接标注到国家节点上。超边会将每种药物与物理供应层中所有相关制造商和采购国分组关联。

第 3 阶段:算法执行

每个工具都会调用 scoring.ts 导出的八个评分函数中的一个或多个。级联模拟会将 metadata.disaster === true 或 metadata.hazardExposure > 0.5 的节点设为初始故障节点;如果不存在灾害种子节点,则移除物理层中度数最高的节点作为种子。迭代互渗流会持续运行,直到没有更多节点被移除或达到 20 次迭代上限。渗流结束后,同一函数会立即运行 SEIR ODE,在 120 天内按每 0.5 天一次的 Euler 步长记录每日状态。短缺预测和替代评分会按药品遍历由超边连接的供应子图。工具 8 会依次运行全部六种算法,并将所有输出传递给 generatePreparednessReport。

第 4 阶段:输出组装

结果通过 json() 序列化,该函数会格式化类型化的算法输出,并将所有数值四舍五入到小数点后 4 位。摘要对象会提取关键指标——riskIndicator、warningLevel、riskGrade——这些指标根据算法输出与阈值的比较计算得出(例如,riskIndicator = giantComponentCollapsed ? "CRITICAL" : systemicImpact > 0.3 ? "HIGH" : "MODERATE")。dataSources 对象会记录从每个来源 actor 获取的记录数,以便审计。

获得最佳结果的提示

  1. 优先使用 predict_drug_shortage 进行分诊。 它使用 5 个来源组($0.045),可立即按短缺概率对药品排序,并列出驱动因素——先确定哪些药品值得进一步进行级联或准备度分析,再使用成本更高的工具。

  2. 使用 generate_preparedness_report 生成面向管理层的交付内容。 它在一次 $0.050 调用中运行全部六种算法,成本低于单独调用每个工具(合计 $0.370),并生成综合风险等级和分类结果,可直接用于简报或监管申报。

  3. 针对性查询时缩小 sources 范围,以减少延迟。 compute_geographic_concentration_risk 只需要 trade、corporate、pharma 和 environment。仅指定这 4 个组,可将 actor 数量从 15 个减少到 8 个,并将典型执行时间缩短 30–50%。

  4. 将 supplyDemandCrossoverDay 解读为相对风险指标。 SEIR 供应 ODE 使用固定参数(β=0.3、σ=0.2、γ=0.1,初始储备 500 个单位)。药品 A 的第 43 天与药品 B 的第 78 天之间的差异可用于有意义的相对比较,但两者都不是针对特定病原体或供应链校准的精确预测。

  5. giantComponentCollapsed: true 是最严重的渗流信号。 这表示物理供应层中超过 70% 的节点因级联互依故障而被移除。请将其视为系统性风险信号,并立即运行 generate_preparedness_report,获取完整的多算法分析结果。

  6. 将 detect_early_warning_signals 用作定期监控触发器。 对关键药品类别每周运行一次。当 warningLevel 从 elevated 变为 high 或 critical 时,触发 generate_preparedness_report 进行完整分析。Granger 因果网络会识别哪些时间序列(PubMed、GDACS、WHO 等)是该特定查询中预测能力最强的领先指标。

  7. 使用 INN 名称以获得最佳数据覆盖。 各 actor 会将 query 字符串用作搜索词来查询公共 API。国际非专利名称(例如,“amoxicillin”而不是“Amoxil”)能同时在 EMA、FDA 和 PubMed 中匹配更多记录,并生成更丰富的供应链图。

  8. 将 driverFactors 与内部采购数据交叉核对。 single_source_dependency 和 long_lead_time 标记源自公共数据网络。请根据供应商记录验证这些标记,以确认或排除每项建模风险——该算法提供的是筛查清单,而非最终结论。

与其他 Apify actor 组合使用

Actor组合方式
Clinical Trial Tracker这是此 MCP 的直接数据源。使用特定 NCT ID 或疾病领域单独运行,以检索完整的试验元数据,然后使用 assess_research_pipeline_risk 并针对该适应症进行定向查询。
openFDA Drug Events单独运行以预先筛查药物名称,并在调用 predict_drug_shortage 前确认 FDA 不良事件数据覆盖情况。某种药物的 FDA 数据稀少,表明其公共供应链的可见性有限。
GDACS Disaster Alerts使用地区查询单独运行,以获取实时灾害背景,然后再为该地区的制造商调用 simulate_disruption_cascade,从而确认渗流模型中的灾害种子是否反映当前事件。
UN COMTRADE Search使用特定 HS 商品代码单独运行,以获取细粒度贸易流数据,然后再调用 compute_geographic_concentration_risk;与一般药物查询相比,这能提供更精确的 HHI 输入数据。
EMA Medicines Search单独使用以列出某个治疗类别中所有获批药物,然后构建监控循环,为每种药物调用 map_drug_supply_chain。
Company Deep Research针对 map_drug_supply_chain 返回的高关键性制造商实体运行,以获取完整的公司情报——财务状况、所有权结构、监管历史——然后再决定是否分散供应商。
Website Tech Stack Detector用于供应链映射中识别出的制造商和分销商网站,以评估数字基础设施风险,并了解实体供应链的脆弱性。

局限性

  • 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 个月的报告延迟。结果反映各数据源最近可用的数据。
  • 该服务不保存状态。 每次工具调用都会从头重新获取所有数据,不会在调用之间缓存数据。为避免重复获取数据的成本,建议使用 generate_preparedness_report 进行综合分析,而不是连续快速调用全部 8 个工具。
  • 节点去重使用名称哈希 ID。 “Amoxicillin”、“AMOXICILLIN TRIHYDRATE”和“amoxicillin sodium”会创建独立的药品节点。对于不同来源中名称不一致的药品,结果可能低估其替代品数量。查询时请使用最具体的规范名称。

集成

  • Claude Desktop — 将备用 /mcp 端点添加到 claude_desktop_config.json,即可向 Claude 开放全部 8 个供应链分析工具
  • Cursor — 在 .cursor/mcp.json 中将其配置为 MCP 服务,即可在 IDE 中查询供应链风险
  • Apify API — 通过 POST /mcp 和 JSON-RPC 2.0 MCP 协议,从任何 HTTP 客户端以编程方式调用工具
  • Zapier — 按计划触发 detect_early_warning_signals,并在预警级别发生变化时将结果推送到 Slack、电子邮件或工单系统
  • Make — 构建每周调用 predict_drug_shortage 的工作流,并将严重程度为 critical 的发现路由到采购团队的通知渠道
  • Webhooks — 在 MCP Actor 的备用容器启动或停止时触发 Webhook,以促使下游系统更新
  • LangChain / LlamaIndex — 将 /mcp 端点封装为 LangChain 工具,以构建多步骤 Agent 工作流,结合供应链分析、内部文档检索或 CRM 数据

故障排查

对于广为人知的药物,工具返回的结果很少或预测为空。 数据 Actor 会将 query 字符串用作搜索词,查询公共 API。缩写、商品名和盐类形式可能与数据库条目不匹配。请使用 INN(国际非专利药品名称),例如使用“amoxicillin”,而不是“Amoxil”或“amoxicillin trihydrate”。对于罕见药物,可尝试使用疾病领域,例如“呼吸道感染抗生素”,以扩大数据范围。

级联结果中的 supplyDemandCrossoverDay 为 null。 在 120 天的模拟窗口内,供应从未低于需求的 50%。这表明在基准 SEIR 参数下,短期中断风险较低。查看 systemicImpact 和 giantComponentCollapsed,了解网络拓扑视图;交叉指标仅衡量库存耗尽时间,不反映供应链的结构性脆弱程度。

每次查询的 warningLevel 都返回 "low"。 Granger 因果关系结果取决于 health、pharma、environment 和 trade Actor 的事件数量。小众药物或较小的治疗类别可能返回的记录过少,无法检测到具有统计显著性的因果关系。请将查询范围扩大到疾病领域(例如,使用“β-内酰胺类抗生素”,而不是特定药物),或添加 clinical 和 macro 来源组,以提高数据密度。

运行超过 3 分钟仍未完成。 使用全部 7 个来源组的工具会并行触发最多 15 个 Actor。实际耗时取决于响应最慢的上游 API。临床试验 Actor 的超时时间为 180 秒。如果经常发生超时,请将 sources 缩减为与你的查询最相关的 4–5 个组,以排除响应最慢的数据源。

riskGrade 为 HIGH,但 overallScore 高于 50。 风险等级反映最严重的单项发现类别,而 overallScore 是所有类别的综合评分。即使其他方面的评分适中,只要存在一个严重的地理集中度缺口,等级就会是 HIGH。请阅读 findings 数组,并重点查看 severity: "critical" 的条目,以找出具体原因。

负责任地使用

  • 此服务仅查询公开的政府、政府间组织和开放健康数据库:FDA、EMA、WHO、GDACS、NOAA、USGS、UN COMTRADE、OpenCorporates、ClinicalTrials.gov、PubMed、OpenAQ、IMF 和 World Bank。
  • 结果是基于公开数据得出的分析模型输出,不属于官方监管评估。请勿将其作为合格的药品供应链专家分析的替代品。
  • 请勿使用短缺概率输出,对特定药物的供应情况发表可能导致不必要囤货或恐慌性购买的公开言论。
  • 请遵守各底层数据源的服务条款和使用政策。
  • 有关负责任地使用公共卫生数据的指南,请参阅 WHO 数据治理原则。
  • 有关网页抓取合法性的指南,请参阅 Apify 法律指南。

常见问题

什么是疫情供应链级联建模?为什么它很重要? 制药供应链是相互依赖的网络:一国的工厂关闭可能沿着原料药供应商、成品药制造商和分销商逐级传导,数月后造成短缺。级联建模运用网络理论——具体来说是 Buldyrev 相依网络渗流理论——来判断哪些故障会扩散并导致系统性崩溃,哪些故障则会被冗余路径吸收。 Buldyrev 相互依存网络渗流如何运作? 它同时对两个耦合的网络层进行建模:实体供应网络(制造商、设施、国家)和监管审批网络(药物、试验、监管机构)。当 A 层中的节点失效时,B 层中依赖它们的节点也会失效;这些失效进而导致 A 层出现更多失效。这种迭代式的相互渗流最终会收敛到稳定的失效状态。最大连通分量中剩余节点的比例表示网络仍有多少部分正常运作。

SEIR-供应耦合 ODE 模型如何运作? 该模型运行标准的 SEIR 流行病模拟,并将劳动者患病比例 (E+I)/劳动力总数直接代入供应微分方程:dSupply/dt = production×(1−worker_illness_fraction) − demand×(1+panic_factor×I/N)。随着疫情扩散,生产减少,而恐慌性囤购导致需求上升(系数 = 2.0)。supplyDemandCrossoverDay 指库存降至每日需求的 50% 以下的那一天。

predict_drug_shortage 给出的药品短缺概率有多准确? 债券渗流模型提供了有理论依据的比较风险评分。其结果高度依赖数据的完整性——EMA、FDA 或 COMTRADE 记录稀少的药品,其建模供应图会较简单,概率估算的可靠性也可能较低。这些评分适用于对药品组合进行比较优先级排序和筛查,而不应作为绝对概率预测。

这与 Resilinc 或 Interos 等商业平台有何不同? 商业平台使用专有供应商数据库、直接 EDI 集成数据流、历史中断记录以及人工整理的供应链地图,这些信息并不公开。此 MCP 服务仅使用公共数据。权衡之处在于:每次分析费用为 $0.04–$0.05,而企业订阅费用为每年 $50,000–$200,000;可与任何兼容 MCP 的 AI Agent 组合使用;但对于特定的私人供应商关系,分析深度较低。

我可以定期对一组药品运行此 MCP 服务吗? 可以。针对每种药品或治疗类别调用一次相应工具。若要进行定期监控,可以使用 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 个 Actor 都返回空结果,会发生什么? 服务会返回有效但精简的输出,其中包含空数组以及低/中风险指标,不会报错。这通常是因为查询字符串与底层公共数据库中的任何记录都不匹配。请尝试范围更广、更规范的搜索词,例如该药物的 INN、其疾病领域或通用治疗类别。

典型的 generate_preparedness_report 调用需要多长时间? 需要 90 秒至 4 分钟,具体取决于上游 API 的响应时间。全部 15 个 Actor 会并行运行,因此实际耗时约等于响应最慢的单个 Actor 所需的时间(而非所有 Actor 响应时间之和)。临床试验 Actor 的典型响应时间最长,最多可达 180 秒。

我可以将它用于任何兼容 MCP 的 AI Agent 框架吗? 可以。该服务在 POST /mcp 上实现了 Streamable HTTP MCP 传输,符合 MCP 2024-11-05 规范。它兼容 Claude Desktop、Cursor、Cline、Continue、LibreChat、LangChain 的 MCP 适配器,以及任何实现当前 MCP 规范的框架。

帮助我们改进

如果遇到问题,您可以启用运行共享,帮助我们更快地调试:

  1. 前往账户设置 > 隐私
  2. 启用与公开 Actor 创建者共享运行记录

这样一来,出现问题时我们就能查看您的运行详情。您的数据仅对 Actor 开发者可见,不会公开。

支持

发现 Bug 或有功能建议?请在此 Actor 页面上的 Issues 标签页中提交问题。如需定制药品供应链模型、添加数据源或进行企业集成,请通过 Apify 平台联系我们。

评论

支持 Markdown

第一次接触 MCP?

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

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