关于 Pandemic Biosurveillance
Pandemic Biosurveillance 是面向公共卫生团队和研究人员的 MCP 服务,将 16 个来源的实时数据与 8 种疫情建模工具结合。它为疫情、干预、疫苗接种、变异株和溢出风险分析提供带不确定性量化的结构化结果。
主要功能
- 01提供 8 种疫情建模工具
- 02并行检索 16 个数据源
- 03疫情模拟与参数推断
- 04传播及干预效果估计
- 05疫苗接种与变异株分析
- 06绘制人畜共患溢出热点
适用场景
- 01压力测试大流行准备方案
- 02评估疫情期间的干预措施
- 03规划疫苗接种与加强针策略
- 04绘制人畜共患溢出风险
MCP 相关
MCP 兼容客户端可通过疾病、病原体、疫情或地理查询调用 8 种分析工具。服务会获取实时数据并返回结构化建模结果。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcpclaude mcp add --transport http pandemic-biosurveillance https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp{"mcpServers":{"pandemic-biosurveillance":{"type":"http","url":"https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"pandemic-biosurveillance":{"type":"http","url":"https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"pandemic-biosurveillance":{"type":"http","url":"https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp"}}}{"mcpServers":{"pandemic-biosurveillance":{"serverUrl":"https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Pandemic Biosurveillance MCP
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf):
{
"mcpServers": {
"pandemic-biosurveillance-mcp": {
"url": "https://ryanclinton--pandemic-biosurveillance-mcp.apify.actor/mcp"
}
}
}
为 AI Agent 提供大流行病生物监测情报——8 种经过严格数学验证的流行病建模工具,由来自 16 个公共卫生、生态和环境数据源的实时数据支持。将任意兼容 MCP 的 AI 客户端连接起来,即可通过一次工具调用运行随机疫情模拟、推断传播参数、估算有效再生数,并绘制人畜共患病溢出热点图。
此 MCP 服务在 Apify 平台上以持久待机模式运行。每次工具调用都会触发从 WHO、PubMed、IUCN、GBIF、GDACS、NOAA、FEMA 等 9 个数据源并行检索数据,构建多领域流行病网络,并应用专用数学算法——Gillespie SSA、粒子 MCMC、出生-死亡天际线系统发育动力学、增强型合成控制、平均场博弈论、多项逻辑回归、MaxEnt 物种分布建模或傅里叶季节强迫——最终返回结构化、机器可读且带有不确定性量化的结果。
⬇️ 你可以访问哪些数据?
| 数据点 | 来源 | 示例 |
|---|---|---|
| 📊 全球疾病负担和死亡率 | WHO 全球卫生观察站 | 按地区划分的流感 IFR |
| 🧪 正在进行的疫苗和治疗试验 | ClinicalTrials.gov | 3 期 mRNA 疫苗入组情况 |
| 💊 药物不良事件和安全性信号 | openFDA FAERS | VAERS 信号检测 |
| 🇪🇺 欧洲授权药品 | EMA 药品数据库 | 抗病毒药品上市许可 |
| 📄 生物医学文献和引文 | PubMed、OpenAlex、Europe PMC | SARS-CoV-2 传播论文 |
| 🦇 物种分布和保护状况 | IUCN 红色名录 | 菊头蝠分布范围图 |
| 🌍 生物多样性出现记录 | GBIF | 野生动物宿主出现记录 |
| 🌪️ 自然灾害警报和影响估算 | GDACS | 洪水导致的卫生基础设施中断 |
| 🌡️ 天气和气候数据 | NOAA | 温度驱动的季节性 |
| 💨 空气质量和环境健康代理指标 | OpenAQ | 污染共同暴露风险 |
| 🚨 灾害声明和应急管理 | FEMA | 美国疫情应对能力 |
| 🌐 国家人口统计和人口数据 | REST Countries、World Bank | 人口流动分母 |
| 📍 地理定位和空间参考 | Nominatim | 热点坐标解析 |
为什么使用 Pandemic Biosurveillance MCP?
疫情防范工作需要将流行病学数据、生态监测、临床试验进展、环境驱动因素和地理空间背景整合到一份连贯的分析中。手动处理 16 个数据库需要数天时间,还要求具备流行病学建模、空间统计和系统发育学方面的专业知识。即使是 Nextstrain 或 WHO FluMart 系统等专用工具,也各自只覆盖问题的一个维度。
此 MCP 服务可自动完成整个情报收集和建模流程。只需调用一次工具,即可从全部 16 个数据源获取并综合数据,构建多领域疫情网络,并运行合适的数学模型——在不到 3 分钟内返回可执行的结果。
- 待机模式 — 调用之间服务保持预热状态,消除每次调用工具时的冷启动延迟
- 并行数据检索 — 每次调用工具时由 16 个 Actor 并发运行,而非依次运行,从而降低延迟
- API 访问 — 通过 Apify API,从 Python、JavaScript 或任何 HTTP 客户端触发分析
- 定时任务 — 使用 Apify 内置的调度器运行定期监测任务
- 监控 — 当模型输出超出设定阈值时,通过 Webhook 接收 Slack 或电子邮件提醒
- 集成 — 将结果连接到 Zapier、Make 或自定义工作流,以便进行后续提醒
功能
- Gillespie SSA 元种群模拟 — 采用包含 7 个舱室(S、E、I、R、H、C、D)的随机 SEIR-HCD 模型模拟多个种群;tau-leaping 近似法支持同时模拟 20 个以上种群
- 辐射迁移网络 — 种群间的传播遵循 Simini 等人(2012)提出的模型:T_ij = T_i(m_i·n_j)/((m_i+s_ij)(m_i+n_j+s_ij)),直接使用世界银行人口数据进行参数化
- 粒子 MCMC 参数推断 — 使用带序贯蒙特卡洛重采样的存活粒子滤波器进行无偏似然估计;推断 R0、潜伏期、IFR 和住院率,并采用 Gelman-Rubin R-hat 收敛诊断
- 生灭天际线系统发育动力学 — 使用分段常数出生率估计 Re 轨迹(Stadler 等人,2013);通过带热力学积分权重的贝叶斯模型平均进行交叉验证
- 增强型合成控制 — 使用 Abadie(2021)合成反事实构造法,估计非药物干预措施和药物干预的因果效应;通过共形预测区间有效量化不确定性
- 均值场博弈疫苗接种均衡 — 联立 HJB 后向偏微分方程和 Fokker-Planck 前向偏微分方程,求解纳什均衡与社会最优方案;量化搭便车差距,并生成年龄组优先级策略
- 多项逻辑变异株适应度 — 根据变异株频率轨迹估计选择系数和适应度优势;计算 Maynard-Smith 适应度景观崎岖度评分和免疫逃逸突变风险
- 最大熵人畜共患病溢出建模 — P(presence|env) = exp(sum_k lambda_k·f_k(x)) / Z;结合森林砍伐前沿 KDE,识别人类与野生动物接触界面的热点;总体溢出概率 P(spillover) = P(host) × P(contact) × P(adaptation)
- 傅里叶季节性强迫与幂律衰减 — R_e(t) = R0·(1+alpha·cos(2pi·t/365-phi)),结合 Khoury 等人(2021)提出的抗体幂律衰减:Ab(t) = Ab0·t^(-kappa);计算最佳加强针接种时间
- 16 个并行数据源 — 健康(4 个)、研究(3 个)、生态(2 个)、环境(4 个)、空间(3 个);通过 Apify Actor 客户端并发运行
- 多领域疫情网络图 — 节点类型包括疾病、试验、论文、国家、物种、药物、环境或地点;边类型包括传播、治疗、研究、宿主、迁移或相关
- 按工具调用付费 — 无需订阅,无最低承诺;根据算法不同,每次工具调用收费 $0.030–$0.040
疫情生物监测情报的使用场景
大流行防范情景规划
政府卫生机构、国防研究实验室和生物安全智库需要在疫情发生前,使用真实的疫情情景对防范计划进行压力测试。使用 simulate_epidemic_metapopulation 并输入类似“H5N1 禽流感大流行”的查询,生成相互连接的人群中随机传播轨迹,估算住院人数达到峰值的时间,并计算群体免疫阈值。结合 assess_zoonotic_spillover,找出最有可能产生首发病例的地理交界区域。
疫情响应与资源分配
在疫情暴发期间,公共卫生行动团队需要实时估算传播是在增长还是减缓,以及当前干预措施的成效。使用 estimate_phylodynamic_re 根据流行病学信号追踪 Re 变化轨迹,并使用 evaluate_intervention_causality 量化已实施非药物干预措施(NPI)的因果效应。增强型合成控制反事实分析可估算挽救的生命数,并提供恰当的不确定性界限,结果可直接用于政策简报。
疫苗接种策略与活动设计
制定接种推广策略的免疫规划负责人需要了解最优分配方案和行为激励格局。使用 compute_vaccination_equilibrium 找出纳什均衡覆盖率与社会最优覆盖率之间的搭便车缺口,并按成本效益对优先接种年龄组进行排序。使用 model_seasonal_waning_dynamics,根据当地季节性驱动幅度和抗体半衰期估算值,确定最佳加强针接种时间。
变异株监测与基因组监控
追踪病原体演变的病毒学和基因组监测团队,需要预测哪些变异株将在下一轮传播浪潮中占据主导地位。使用 forecast_variant_fitness 并输入类似“SARS-CoV-2 变异株 2025”的查询,估算选择系数,预测 30 天和 90 天的频率变化轨迹,并找出免疫逃逸评分较高的变异株。适应度景观崎岖度评分可反映变异空间的演变速度。
人畜共患病研究与溢出风险制图
在野生动物与人类交界领域开展研究的机构——生态研究所、生物安全实验室和“同一健康”项目——需要确定下一次溢出最有可能发生在哪里。使用 assess_zoonotic_spillover,对储存宿主进行 MaxEnt 物种分布建模,结合森林砍伐前沿 KDE,并生成按风险排序的地理热点列表及各区域风险评分。输出包含每个物种的病原体科、森林砍伐驱动因素评分和人类接触率。
学术流行病学与公共卫生研究
流行病学家和研究生需要可复现、可引用的建模研究方法。此 MCP 中的每个工具都实现了已发表的数学框架,并提供适当的收敛诊断和不确定性量化,因此输出可用作模型输入或基准。infer_parameters_pmcmc 可提供疫情参数的后验分布、95% 可信区间和有效样本量,可直接纳入方法部分。
如何使用 pandemic biosurveillance MCP 工具
- 连接 MCP 客户端 — 将服务 URL
https://pandemic-biosurveillance-mcp.apify.actor/mcp添加到 Claude Desktop、Cursor、Windsurf、Cline 或任何兼容 MCP 的客户端。URL 本身无需 API 密钥;费用通过你的 Apify 账户结算。 - 选择合适的工具 — 根据分析目标,从 8 个工具中选择:模拟、参数推断、Re 估算、干预因果分析、疫苗接种策略、变异株预测、溢出风险或季节性动态。
- 输入自然语言查询 — 输入你想分析的疾病、病原体、变异株或地理背景。例如:“H5N1 禽流感大流行”“东南亚蝙蝠冠状病毒溢出”“SARS-CoV-2 Omicron 加强针接种时机”。
- 获取结构化结果 — 服务并行获取来自 16 个来源的实时数据,运行数学模型,并在 2–4 分钟内返回 JSON 结构化输出,其中包含模型估算值、不确定性区间和支持性网络元数据。
输入参数
此 MCP 服务没有传统的 actor 输入架构 — 它以 Standby 模式运行,并通过 MCP 协议接收所有输入。每个工具接受一个参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 是 | 要分析的疾病、病原体、疫情或地理背景。支持自然语言。 |
工具级输入参考
| 工具 | query 示例 |
|---|---|
simulate_epidemic_metapopulation | "H5N1 avian influenza pandemic" |
infer_parameters_pmcmc | "mpox outbreak West Africa" |
estimate_phylodynamic_re | "SARS-CoV-2 JN.1 variant" |
evaluate_intervention_causality | "COVID-19 lockdown effectiveness" |
compute_vaccination_equilibrium | "influenza seasonal vaccination" |
forecast_variant_fitness | "influenza H3N2 variants 2025" |
assess_zoonotic_spillover | "bat coronavirus spillover Southeast Asia" |
model_seasonal_waning_dynamics | "RSV seasonal dynamics booster timing" |
输入提示
- 明确指定地理范围 — 添加地区可缩小返回的生态和空间数据范围,提高本地化分析的模型准确性。
- 包含病原体家族 — “bat coronavirus”和“coronavirus”这类查询会检索到不同的 IUCN 和 GBIF 物种,进而影响人畜共患溢出结果。
- 基因组工具使用变异株级别的查询 — “SARS-CoV-2 JN.1 variant”比通用查询返回更有针对性的文献和药物数据。
- 有意串联工具 — 先运行
simulate_epidemic_metapopulation了解群体层面的动态,再使用evaluate_intervention_causality评估特定措施对同一疫情背景的影响。 - 设置支出上限 — 在 Apify 账户设置中配置每次运行的最高支出,避免迭代分析时产生意外费用。
输出示例
simulate_epidemic_metapopulation 对 “H5N1 avian influenza pandemic” 的响应:
{
"networkNodes": 142,
"networkEdges": 318,
"trajectories": [
{
"time": 0,
"population": "China",
"S": 1402000000,
"E": 0,
"I": 50,
"R": 0,
"H": 0,
"C": 0,
"D": 0,
"Re": 2.1
},
{
"time": 14,
"population": "China",
"S": 1401820000,
"E": 42300,
"I": 87400,
"R": 12800,
"H": 8200,
"C": 1400,
"D": 280,
"Re": 1.87
},
{
"time": 60,
"population": "India",
"S": 1380000000,
"E": 198000,
"I": 341000,
"R": 94000,
"H": 28700,
"C": 5100,
"D": 1820,
"Re": 1.43
}
],
"peakInfections": 4820000,
"peakDate": 84,
"totalInfected": 18400000,
"totalDeaths": 621000,
"herdImmunityThreshold": 0.524,
"mobilityImpact": 0.38,
"populationsAffected": 22
}
infer_parameters_pmcmc 响应:
{
"networkNodes": 138,
"parameters": [
{
"parameter": "R0",
"mean": 2.34,
"ci95Lower": 1.91,
"ci95Upper": 2.88,
"effectiveSampleSize": 847
},
{
"parameter": "latentPeriod",
"mean": 3.2,
"ci95Lower": 2.4,
"ci95Upper": 4.1,
"effectiveSampleSize": 912
},
{
"parameter": "IFR",
"mean": 0.0038,
"ci95Lower": 0.0021,
"ci95Upper": 0.0061,
"effectiveSampleSize": 734
},
{
"parameter": "hospitalizationRate",
"mean": 0.041,
"ci95Lower": 0.028,
"ci95Upper": 0.057,
"effectiveSampleSize": 801
}
],
"logLikelihood": -1847.3,
"dic": 3714.8,
"particlesUsed": 500,
"acceptanceRate": 0.24,
"convergenceDiagnostic": 1.03
}
输出字段
simulate_epidemic_metapopulation
| 字段 | 类型 | 说明 |
|---|---|---|
networkNodes | number | 疫情网络中的节点总数(疾病、试验、国家、物种等) |
networkEdges | number | 边的总数(流动、传播、治疗、宿主关系、研究、相关性) |
trajectories[] | array | 每个时间步中各群体的 SEIR-HCD 状态时间序列 |
trajectories[].time | number | 模拟天数 |
trajectories[].population | string | 群体名称(国家或地区) |
trajectories[].S | number | 易感人数 |
trajectories[].E | number | 暴露人数 |
trajectories[].I | number | 感染人数 |
trajectories[].R | number | 康复人数 |
trajectories[].H | number | 住院人数 |
trajectories[].C | number | 重症/ICU 人数 |
trajectories[].D | number | 死亡人数 |
trajectories[].Re | number | 此时间步的有效再生数 |
peakInfections | number | 所有群体中同时感染人数的最大值 |
peakDate | number | 感染人数达到峰值的天数 |
totalInfected | number | 累计感染人数 |
totalDeaths | number | 累计死亡人数 |
herdImmunityThreshold | number | 阻止传播所需的免疫比例(0–1) |
mobilityImpact | number | 估计由群体间流动导致的传播比例 |
populationsAffected | number | 存在活跃传播的不同群体数量 |
infer_parameters_pmcmc
| 字段 | 类型 | 说明 |
|---|---|---|
parameters[] | array | 各疫情参数的后验估计值 |
parameters[].parameter | string | 参数名称(R0、latentPeriod、IFR、hospitalizationRate) |
parameters[].mean | number | 后验均值 |
parameters[].ci95Lower | number | 后验分布的第 2.5 百分位数 |
parameters[].ci95Upper | number | 后验分布的第 97.5 百分位数 |
parameters[].effectiveSampleSize | number | SMC 得出的 ESS;数值高于 400 表示估计结果可靠 |
logLikelihood | number | 对数边际似然 |
dic | number | 用于模型比较的偏差后验信息准则 |
particlesUsed | number | SMC 粒子数 |
acceptanceRate | number | Metropolis-Hastings 接受率(0.15–0.35 为理想范围) |
convergenceDiagnostic | number | Gelman-Rubin R-hat;数值低于 1.05 表示收敛 |
estimate_phylodynamic_re
| 字段 | 类型 | 说明 |
|---|---|---|
intervals[] | array | 各区间内的分段 Re 估计值 |
intervals[].startTime | number | 区间起始时间(距今的天数) |
intervals[].endTime | number | 区间结束时间 |
intervals[].Re | number | 此区间的 Re 均值估计值 |
intervals[].ci95Lower | number | 可信区间下限 |
intervals[].ci95Upper | number | 可信区间上限 |
intervals[].growthRate | number | 此区间的指数增长率 |
currentRe | number | 最近的 Re 估计值 |
treeHeight | number | 推断的系统发育树高度(天) |
tmrca | number | 距最近共同祖先的时间 |
skylinePopSize[] | number[] | 各 skyline 区间内的有效群体大小 |
modelAvgWeights[] | array | 各子模型的贝叶斯模型平均权重 |
doublingTime | number | 当前 Re 下的倍增时间(天) |
evaluate_intervention_causality
| 字段 | 类型 | 描述 |
|---|---|---|
effects[] | array | 每种干预类型的因果效应估计 |
effects[].intervention | string | 干预名称(例如,封锁、口罩令、疫苗接种) |
effects[].causalEffect | number | 估计的传播率降幅(负值 = 有益) |
effects[].ci95Lower | number | 保形预测下界 |
effects[].ci95Upper | number | 保形预测上界 |
effects[].conformalCoverage | number | 预测区间的经验覆盖率 |
effects[].syntheticControlFit | number | 干预前的拟合质量(0–1;高于 0.85 表示良好) |
overallReduction | number | 所有干预带来的传播率综合降幅 |
bestIntervention | string | 因果效应最大的干预 |
counterfactualDeaths | number | 未采取任何干预时预计的死亡人数 |
livesSaved | number | 当前干预措施预计挽救的生命数 |
compute_vaccination_equilibrium
| 字段 | 类型 | 描述 |
|---|---|---|
equilibrium.optimalCoverage | number | 社会最优疫苗接种覆盖率(0–1) |
equilibrium.nashEquilibrium | number | 个体理性纳什均衡覆盖率 |
equilibrium.freeRiderGap | number | 社会最优与纳什均衡之间的差距 |
equilibrium.criticalThreshold | number | 群体免疫阈值 |
equilibrium.costEffectiveness | number | 最优覆盖率下每避免一个 QALY 的成本 |
ageGroupStrategy[] | array | 各年龄组的覆盖率和优先级 |
supplyConstraints[] | array | 各供应类别的资源可用量与需求 |
welfareGain | number | 达到社会最优时的人群福利增益 |
forecast_variant_fitness
| 字段 | 类型 | 描述 |
|---|---|---|
variants[] | array | 各已识别变异株的预测 |
variants[].variant | string | 变异株标识符 |
variants[].currentFrequency | number | 当前序列占比(0–1) |
variants[].fitnessAdvantage | number | 相对于参考毒株的选择系数 |
variants[].projectedFrequency30d | number | 预计 30 天后的频率 |
variants[].projectedFrequency90d | number | 预计 90 天后的频率 |
variants[].immuneEvasion | number | 免疫逃逸评分(0–1) |
variants[].transmissibility | number | 相对于参考毒株的传播能力 |
dominantVariant | string | 预计 90 天后占据主导地位的变异株 |
sweepTimeline | number | 主导变异株频率超过 80% 所需的天数 |
landscapeRuggedness | number | Maynard-Smith 适应度景观崎岖度 |
escapeMutationRisk | number | 出现免疫逃逸突变的概率 |
assess_zoonotic_spillover
| 字段 | 类型 | 描述 |
|---|---|---|
risks[] | array | 各宿主物种的溢出风险评估 |
risks[].species | string | 储存宿主物种名称 |
risks[].pathogenFamily | string | 相关病原体家族 |
risks[].spilloverProbability | number | 综合溢出概率(0–1) |
risks[].deforestationDriver | number | 分布边界处的森林砍伐压力评分 |
risks[].humanContactRate | number | 估计的人畜接触频率 |
risks[].habitatOverlap | number | 人类与宿主分布区域的重叠程度 |
hotspots[] | array | 带坐标的地理溢出热点 |
hotspots[].region | string | 区域或行政区名称 |
hotspots[].lat | number | 热点中心点的纬度 |
hotspots[].lon | number | 热点中心点的经度 |
hotspots[].riskScore | number | 综合溢出风险评分(0–100) |
overallSpilloverRate | number | 年度溢出率总体估计值 |
highRiskInterfaces | string[] | 已命名的高风险人类与野生动物交界区域 |
maxEntPrediction | number | MaxEnt 模型预测的出现概率 |
model_seasonal_waning_dynamics
| 字段 | 类型 | 描述 |
|---|---|---|
dynamics[] | 数组 | 12 个月周期内的月度季节性动态 |
dynamics[].month | 数字 | 月份(1–12) |
dynamics[].Re | 数字 | 经季节性调整的有效再生数 |
dynamics[].immunityLevel | 数字 | 该月的人群免疫比例 |
dynamics[].waningRate | 数字 | 月度免疫衰减率 |
dynamics[].boosterNeed | 数字 | 需要接种加强针的人群比例 |
seasonalAmplitude | 数字 | 傅里叶强迫振幅(alpha) |
peakMonth | 数字 | 传播达到峰值的月份 |
troughMonth | 数字 | 传播达到最低点的月份 |
antibodyHalfLife | 数字 | 估计的抗体半衰期(天) |
waningPowerLawExponent | 数字 | Khoury 等人的幂律指数 kappa |
optimalBoosterTiming | 数字 | 建议开展加强针接种活动的月份 |
开展流行病生物监测分析需要多少费用?
此 MCP 服务采用按事件付费模式——每次工具调用均需付费。计算费用已包含在内。根据算法不同,每次调用的价格为 $0.030 至 $0.040。
| 工具 | 每次调用价格 | 10 次调用 | 50 次调用 |
|---|---|---|---|
simulate_epidemic_metapopulation | $0.040 | $0.40 | $2.00 |
infer_parameters_pmcmc | $0.035 | $0.35 | $1.75 |
estimate_phylodynamic_re | $0.035 | $0.35 | $1.75 |
evaluate_intervention_causality | $0.030 | $0.30 | $1.50 |
compute_vaccination_equilibrium | $0.035 | $0.35 | $1.75 |
forecast_variant_fitness | $0.030 | $0.30 | $1.50 |
assess_zoonotic_spillover | $0.030 | $0.30 | $1.50 |
model_seasonal_waning_dynamics | $0.030 | $0.30 | $1.50 |
针对单次暴发分析运行全部 8 个工具,费用为 $0.265。每周针对 4 种病原体各使用 3 个工具进行一次监测,费用约为 $1.56/周。
Apify 免费套餐包含 $5 的月度平台抵扣额度,无需付费即可调用约 150 次工具。你可以在 Apify 账户设置中为每次运行设置最高支出限额,以控制费用。
相比之下,商业流行病学情报平台提供类似的数据访问服务,每月收费 $500–2,000,且没有程序化 API,也不提供数学建模层。
如何连接此 MCP 服务
Claude Desktop
将以下内容添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"pandemic-biosurveillance": {
"url": "https://pandemic-biosurveillance-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
在客户端的 MCP 服务设置中使用相同的 URL:https://pandemic-biosurveillance-mcp.apify.actor/mcp
Python(直接 HTTP)
import httpx
import json
response = httpx.post(
"https://pandemic-biosurveillance-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN",
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "simulate_epidemic_metapopulation",
"arguments": {"query": "H5N1 avian influenza pandemic Southeast Asia"}
},
"id": 1
},
timeout=300,
)
result = response.json()
data = json.loads(result["result"]["content"][0]["text"])
print(f"Peak infections: {data['peakInfections']:,}")
print(f"Herd immunity threshold: {data['herdImmunityThreshold']:.1%}")
print(f"Populations affected: {data['populationsAffected']}")
JavaScript
const response = await fetch("https://pandemic-biosurveillance-mcp.apify.actor/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.APIFY_TOKEN}`,
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "forecast_variant_fitness",
arguments: { query: "influenza H3N2 variants 2025" }
},
id: 1
}),
});
const result = await response.json();
const data = JSON.parse(result.result.content[0].text);
console.log(`Dominant variant: ${data.dominantVariant}`);
console.log(`Sweep timeline: ${data.sweepTimeline} days`);
console.log(`Escape mutation risk: ${(data.escapeMutationRisk * 100).toFixed(1)}%`);
cURL
# Call a tool
curl -X POST "https://pandemic-biosurveillance-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "assess_zoonotic_spillover",
"arguments": {"query": "bat coronavirus spillover Southeast Asia"}
},
"id": 1
}'
# List all available tools
curl -X POST "https://pandemic-biosurveillance-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":1}'
Pandemic Biosurveillance MCP 的工作原理
阶段 1:并行检索 16 个来源的数据
调用任何工具时,fetchAndBuildNetwork() 都会通过 runActorsParallel() 并发调度 16 个 Actor 调用。每个 Actor 的超时时间为 180 秒,运行内存为 256 MB。这 16 个来源分为 4 个功能组:
- 健康(4 个 Actor): WHO GHO(50 个结果)、ClinicalTrials.gov(50 个)、openFDA 药品事件(40 个)、EMA 药品(40 个)
- 研究(3 个 Actor): PubMed(50 个)、OpenAlex(50 个)、Europe PMC(50 个)
- 生态(2 个 Actor): IUCN 红色名录(30 个)、GBIF 生物多样性(30 个)
- 环境/空间(7 个 Actor): GDACS 灾害(30 个)、NOAA 天气(30 个)、OpenAQ 空气质量(30 个)、FEMA(30 个)、REST Countries(30 个)、Nominatim 地理编码器(20 个)、世界银行(40 个)
Actor 调用失败时会返回空数组,不会中止运行,因此即使数据不完整,系统也能平稳降级运行。
第 2 阶段:疫情网络构建
buildEpiNetwork() 会将所有返回的记录标准化为类型化的 EpiNode 对象——疾病、试验、论文、国家、物种、药物、环境或位置——并按 ID 去重。系统会从 REST Countries 和 World Bank 的响应中提取国家人口字段,为辐射迁移模型提供参数。
国家节点之间的迁移边采用 Simini 等人提出的辐射模型:T_ij = T_i(m_i·n_j)/((m_i+s_ij)(m_i+n_j+s_ij)),其中,介于两地之间的人口 s_ij 近似为 0.3·sqrt(m_i·n_j)。系统会根据节点类型匹配,添加疾病到国家的传播边、药物到疾病的治疗边,以及物种到疾病的宿主边。生成的网络图会传递给算法层。
第 3 阶段:数学建模
8 个工具分别在 scoring.ts 中实现了不同算法:
- Gillespie SSA 使用指数等待时间和 tau-leaping 推进随机 SEIR-HCD 系统。初始条件根据疾病节点元数据和网络中的国家人口规模确定。
- Particle MCMC 使用 500 个粒子初始化存活粒子滤波器。Metropolis-Hastings 提议从对数正态分布中抽取。Gelman-Rubin R-hat 统计量根据两个并行链计算得出。
- Birth-death skyline 将网络中的文献和试验时间分布作为系统发育数据集的代理,拟合包含 6 个区间的分段常数出生率模型。贝叶斯模型平均使用热力学积分计算模型权重。
- Augmented synthetic control 使用网络中的国家级疫情代理作为供体单元,构建合成反事实 Y_hat(0)_t = sum_j w_j·Y_j(t),其中 w = argmin ||Y_1 - Yw||^2。
- Mean-field game 使用有限差分离散化求解耦合的 HJB/Fokker-Planck 系统。年龄组策略根据网络中的国家人口统计数据确定。
- Multinomial logistic 根据从研究节点元数据中提取的变异株频率数据拟合选择系数 beta_k:P(variant=k|t) = exp(beta_k·t) / sum_j exp(beta_j·t)。
- MaxEnt 使用 IUCN 和 GBIF 节点中的物种出现数据,以及来自 NOAA 和 OpenAQ 的环境协变量,估算栖息地适宜性;随后与基于 GDACS 和 FEMA 土地事件数据估算的森林砍伐前沿 KDE 相结合。
- Fourier seasonal forcing 根据网络中流行病学记录的时间分布,拟合 R_e(t) = R0·(1+alpha·cos(2pi·t/365-phi)) 的振幅 alpha 和相位 phi。幂律衰减指数 kappa 则根据临床试验的免疫原性数据校准。
第 4 阶段:按事件计费和支出限额
每次工具调用都会在入口处立即调用 Actor.charge({ eventName: '...' })。如果 chargeResult.eventChargeLimitReached 为 true,工具会返回错误消息而不运行模型,以防止成本失控。
获得最佳结果的提示
-
使用针对特定疾病的查询来推断参数。 当查询针对文献记录丰富、发表研究数量充足的病原体时,
infer_parameters_pmcmc得出的后验区间会更窄(例如,使用“2009 年 H1N1 流感大流行”,而不只是“流感”)。PubMed 检索结果越多,先验参数化就越好。 -
在使用因果分析工具前,先运行
simulate_epidemic_metapopulation。 元种群模拟会给出峰值出现时间和总疫情负担估计,为evaluate_intervention_causality得出的因果效应规模提供背景信息。在与 AI 客户端的对话中,按顺序使用这两个工具。 -
将 Re 估计值视为由模型提供依据的情景,而非真实情况。 出生-死亡天际线模型和粒子 MCMC 的输出取决于为查询检索到的数据质量和数量。Gelman-Rubin R-hat 高于 1.1 表示链尚未收敛——请谨慎看待这些结果。
-
溢出建模时应明确地理范围。 与“蝙蝠冠状病毒”相比,“中国云南省蝙蝠冠状病毒溢出”能检索到更有针对性的 IUCN 和 GBIF 物种记录,从而显著提升 MaxEnt 模型拟合度和热点精度。
-
将变异株预测与季节性建模串联使用。 使用
forecast_variant_fitness找出主要变异株,然后将该变异株名称传递给model_seasonal_waning_dynamics,以了解季节性免疫格局如何与变异株特有的免疫逃逸相互作用。 -
监控 PMCMC 输出中的 ESS。 任何参数的有效样本量低于 200,都表明粒子滤波器可能出现权重塌缩。请使用更具体的查询重新运行,以检索更大且更一致的数据集。
-
使用免费套餐进行探索性分析。 Apify 的 $5 免费套餐约可支持 150 次工具调用。在构建多步骤流水线前,先运行单工具探索性查询,确认适合回答问题的工具。
-
在运行自动化工作流前设置支出上限。 通过 Apify API 安排定期监测任务时,务必在运行配置中设置
maxTotalChargeUsd,避免突发活动导致意外费用。
与其他 Apify actor 组合使用
| Actor | 组合方式 |
|---|---|
| WHO GHO Data Search | 在运行元种群模拟前,直接获取疾病负担指标,以便手动设定参数 |
| Clinical Trial Tracker | 单独监测疫苗试验进展,以跟踪应对措施的可用时间线 |
| PubMed Research Search | 在将病原体信息输入参数推断工具前,检索该病原体的完整证据集 |
| GBIF Biodiversity Search | 独立提取储存宿主分布数据,用于自定义溢出分析 |
| NOAA Weather Search | 获取气候异常数据,手动验证季节性强迫幅度估计 |
| GDACS Disaster Search | 在运行疫情模拟的同时,实时跟踪会扰乱卫生基础设施的灾害事件 |
| OpenAQ Air Quality | 将环境共同暴露数据与呼吸道病原体的疫情轨迹分析相结合 |
局限性
- 所有数据均公开可用 — 模型使用公开数据库进行参数化。无法访问受限的基因组监测数据、国家法定传染病登记数据和专有实验室网络。基于公开数据推导的参数可能滞后于真实疫情动态,或低估其规模。
- 数据量取决于查询内容 — 研究较少的病原体(例如新近描述的人畜共患病)可能返回较少的 PubMed 和试验记录,从而降低算法准确性。模型仍会运行,但后验可信区间会较宽。
- 模拟输出是情景估算 — Gillespie SSA 和系统发生动力学结果在数学上严谨,但依赖简化的流动性和人口模型。请勿将输出用作国家监测系统或临床决策支持的替代方案。
- 每个工具调用会调用 16 个 Actor — 每次工具调用都会分派 16 次并行 Actor 运行。对于运行并发受限的免费或低阶 Apify 账户,部分 Actor 可能排队,导致响应时间超过预期的 2–4 分钟。
- 没有实时基因组序列数据 —
forecast_variant_fitness根据文献和流行病学元数据估算选择系数,而非依据实际的 GISAID 或 INSDC 序列数据库。变体频率估算源自模型,而非序列数据。 - 空间分辨率为国家级 — 辐射流动模型以国家为粒度运行。模型不涵盖国家以下级别的传播动态、城市级疫情集群和医疗系统容量限制。
- 环境协变量有限 — MaxEnt 溢出建模使用 NOAA 和 OpenAQ 数据作为环境代理指标。未纳入高分辨率土地利用、卫星森林砍伐图像和牲畜密度图层。
- 不提供临床指导 — 输出仅用于研究和规划。本 MCP 生成的任何内容均不构成医疗建议、临床决策支持或公共卫生指导。
集成
- Apify API — 使用 Python、JavaScript 或任意 HTTP 客户端,以编程方式触发工具调用,用于自动化疫情监测管道
- Webhooks — 当 Re 估算值超过阈值或发现高风险溢出热点时,触发下游警报
- Zapier — 将疫情模拟结果发送到 Slack、Google Sheets 或电子邮件,供非技术相关人员查看
- Make — 构建多步骤自动化工作流,将大流行监测与新闻监控或报告管道结合起来
- Google Sheets — 导出结构化变体预测或季节性动态表,供团队协作审阅
- LangChain / LlamaIndex — 将此 MCP 用作 AI Agent 中的工具,结合其他数据源综合分析大流行情报,自动生成研究报告
故障排除
-
运行耗时超过 4 分钟 — 当免费或 Starter tier 账户达到 Apify actor 并发限制时会发生这种情况,导致 16 个并行 actor 调用中的部分请求进入队列。升级 Apify 套餐,或减少其他正在运行的 actor 的并发请求,即可恢复预期延迟。
-
infer_parameters_pmcmc的结果置信区间非常宽 — 一个或多个参数的有效样本量(ESS)低于 200,说明粒子滤波器因数据量不足而退化。请使用更具体且有充分文献记录的查询(例如,有大量已发表文献的具名疫情)。检查convergenceDiagnostic— 值高于 1.1 表示不应信任该结果。 -
assess_zoonotic_spillover未返回热点 — IUCN 和 GBIF actor 未返回与查询匹配的物种记录。请使用特定物种术语,而非病原体名称(例如,使用“Rhinolophus bat”而不是“SARS coronavirus”),以填充生态网络节点。 -
工具返回支出限额错误 — 你的 Apify 运行已达到当前运行所设的
maxTotalChargeUsd上限。请在 Apify 运行配置中提高限额,或使用更高的上限启动新运行。 -
forecast_variant_fitness显示所有变体的适应度相近 — 查询未检索到足够的变体相关文献,无法区分选择系数。请在查询中明确添加变体名称(例如,“JN.1 XBB EG.5 variant competition 2025”),不要只使用病原体科属名称。
负责任地使用
- 此服务仅访问国际组织、政府机构和开放研究数据库提供的公开数据。
- 模型输出是基于公开数据和数学近似的情景分析,不构成临床指导、公共卫生政策建议或官方监测数据。
- 请遵守所有上游数据来源的服务条款:WHO、NIH/NLM、EMA、IUCN、GBIF、NOAA、FEMA 和 World Bank。
- 请勿使用输出结果做出个人健康决策或临床治疗选择。
- 有关如何负责任地使用抓取的公开数据,请参阅 Apify 的指南。
❓ 常见问题
每次疫情生物监测工具调用会查询多少个数据源? 每次工具调用都会并行查询全部 16 个数据源:4 个健康数据库(WHO、ClinicalTrials.gov、openFDA、EMA)、3 个研究数据库(PubMed、OpenAlex、Europe PMC)、2 个生态数据库(IUCN、GBIF)、4 个环境数据源(GDACS、NOAA、OpenAQ、FEMA)和 3 个空间数据源(REST Countries、Nominatim、World Bank)。全部 16 个数据源同时运行,而非依次运行。
流行病模拟和预测结果有多准确? 每种工具均采用已发表的数学框架,并进行适当的不确定性量化。Gillespie SSA 和 particle MCMC 的输出包含收敛诊断指标(ESS 和 Gelman-Rubin R-hat)。这些结果应视为由公开数据参数化、受模型指导的情景分析,而非临床级预测,也不能替代国家监测体系。
我可以用 pandemic biosurveillance MCP 分析哪些病原体? 任何有公共卫生数据覆盖的病原体都可以分析。这包括呼吸道病毒(流感、SARS-CoV-2、RSV)、媒介传播疾病(登革热、Zika、疟疾)、人畜共患病威胁(mpox、Nipah、蝙蝠冠状病毒)以及新发传染病。研究较少的病原体返回的数据记录较少,因此不确定性区间会更宽。
一次典型的疫情生物监测工具调用需要多长时间? 使用并发能力充足的付费 Apify 账户时,工具调用会在 2–4 分钟内完成。16 个并行数据检索各自的超时时间为 180 秒。受并发限制影响,免费账户的调用可能需要 5–8 分钟。 这与 Nextstrain 或其他疫情情报平台有何不同? Nextstrain 会分析实际基因组序列,对特定病原体进行系统发育分析。这个 MCP 的范围不同:它整合 16 个公共卫生、生态和环境数据库,构建多领域疫情网络模型,应用 8 种不同算法(包括系统发育动力学 Re 估算),并通过 MCP 协议支持 AI Agent 集成。这两种工具可以互为补充。
我可以自动安排大流行病生物监测任务吗?
可以。使用 Apify 调度器按任意间隔触发定期运行。若要每周监测变异株,可以配置一个定时 Apify Actor 运行,调用此 MCP 的 forecast_variant_fitness 工具,并通过 webhook 将结果推送到下游通知或存储系统。
使用这些来源的数据进行疫情建模合法吗? 全部 16 个数据源都是国际组织和政府机构提供的公开数据库,并遵循开放数据政策。WHO、NIH、NOAA、FEMA、IUCN、GBIF 和 World Bank 均发布了供公众使用的数据。更多背景信息,请参阅 Apify 关于网页抓取合法性的指南。
PMCMC 结果中的 Gelman-Rubin 收敛诊断是什么意思? Gelman-Rubin R-hat 统计量用于衡量两条并行 Markov 链是否已收敛到同一分布。低于 1.05 表示收敛可靠。介于 1.05 和 1.1 之间表示收敛情况一般。高于 1.1 表示链尚未收敛,不应信任参数估计结果——请使用更具体的查询重新运行。
大流行病生物监测 MCP 能取代公共卫生监测系统吗? 不能。此 MCP 利用开放公共数据提供计算建模功能。它不能取代专门的监测基础设施、强制病例报告系统、国家或 WHO 的流行病学监测,也不能取代临床实验室网络。它是一种用于研究和应急准备规划的工具。
元种群模拟中的辐射迁移模型如何运作? 辐射模型(Simini et al. 2012)根据公式 T_ij = T_i·(m_i·n_j)/((m_i+s_ij)(m_i+n_j+s_ij)) 估算不同种群间的人口流动,其中 m_i 是起点种群数量,n_j 是目的地种群数量,s_ij 是途经区域的种群数量。种群规模直接取自运行期间检索到的 World Bank 和 REST Countries 数据。这些迁移边构成传播网络,Gillespie SSA 会沿该网络模拟疫情传播。
我可以将大流行病生物监测 MCP 与 Claude、GPT-4 或其他 AI 模型搭配使用吗?
可以。任何兼容 MCP 的 AI 客户端都能连接到此服务。Claude Desktop、Cursor、Windsurf 和 Cline 均支持 MCP。若要直接集成 OpenAI 或其他模型 API,请使用 HTTP 端点 https://pandemic-biosurveillance-mcp.apify.actor/mcp 和 JSON-RPC 2.0 协议。
帮助我们改进
如果遇到问题,您可以在 Apify 账户中启用运行共享,帮助我们更快地排查问题:
- 前往 账户设置 > 隐私
- 启用 与公开 Actor 创建者共享运行记录
这样一来,发生问题时我们就能查看您的运行详情,从而更快地修复问题。您的数据仅对 Actor 开发者可见,不会公开。
支持
发现 Bug 或有功能建议?请在此 Actor 页面上的 Issues 标签页中提交 issue。如需定制解决方案或企业集成,请通过 Apify 平台联系我们。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。