关于 Travel Risk Intelligence
Travel Risk Intelligence 是面向企业差旅管理者、安全团队和旅行 Agent 的 MCP 服务。它汇总政府及国际数据,生成目的地风险评分、行程评估和地点比较。
主要功能
- 01并行查询八类数据源
- 02四个维度的风险评分
- 03多站行程风险评估
- 04比较目的地备选方案
- 05规划 14 天出行天气
- 06提供结构化风险信号
适用场景
- 01制作企业差旅风险简报
- 02评估高管多站行程
- 03比较活动举办地选项
- 04监测员工所在地警报
MCP 相关
向 MCP 客户端提供八种工具,用于目的地风险评估、警报查询、健康与安全分析、行程评分、地点比较、出行窗口规划和简报生成。结果包含结构化评分、建议等级及说明信号。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcpclaude mcp add --transport http travel-risk-intelligence https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp{"mcpServers":{"travel-risk-intelligence":{"type":"http","url":"https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"travel-risk-intelligence":{"type":"http","url":"https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"travel-risk-intelligence":{"type":"http","url":"https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp"}}}{"mcpServers":{"travel-risk-intelligence":{"serverUrl":"https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
旅行风险情报 MCP 服务
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf):
{
"mcpServers": {
"travel-risk-intelligence-mcp": {
"url": "https://ryanclinton--travel-risk-intelligence-mcp.apify.actor/mcp"
}
}
}
通过 8 个 MCP 工具提供全球任意目的地的旅行风险情报,数据来自政府和国际机构的实时数据源。企业差旅经理、安全团队和 AI 旅行 Agent 可以获取量化的目的地风险评分(0-100),涵盖自然灾害、健康、安全和天气维度,并获得 SAFE、EXERCISE_CAUTION、RECONSIDER_TRAVEL 或 DO_NOT_TRAVEL 四级综合建议。
此 MCP 服务在 Apify 平台上以始终运行的 Standby 模式运行,因此 AI 助手查询时无需冷启动。它并行协调 8 个数据源——NOAA 天气警报、GDACS 灾害警报、WHO 全球卫生观察站、英国警方犯罪数据、Interpol 红色通缉令、REST Countries 国家概况、天气预报和 Nominatim 地理编码——然后通过四个独立的评分模型进行处理,最后返回结构化 JSON,供你的 Agent 立即采取行动。
可以访问哪些数据?
| 数据点 | 来源 | 示例 |
|---|---|---|
| 📡 按严重程度划分的活跃天气警报 | NOAA 国家气象局 | “龙卷风警告——极端严重程度,3 条活跃警报” |
| 🌊 全球灾害警报(地震、洪水、气旋) | GDACS 欧盟联合研究中心 | “红色警报——4 级气旋,菲律宾” |
| ☀️ 多日天气预报及极端天气标记 | 天气预报服务 | 温度 47°C,风速 75 km/h——极端高温标记 |
| 🏥 疾病流行率和疫情指标 | WHO 全球卫生观察站 | 预期寿命 58 岁,存在疟疾风险 |
| 🦠 卫生基础设施质量(卫生设施、水资源获取) | WHO GHO + REST Countries | 卫生设施覆盖率 38%,基尼系数 52.1 |
| 🔒 按地理区域划分的犯罪密度 | 英国警方犯罪数据 | 28 条犯罪记录——高犯罪率区域 |
| 🚨 与该地区相关的国际通缉人员 | Interpol 红色通缉令 | 4 条与该地区相关的红色通缉令 |
| 🌍 国家人口统计、边界和区域分类 | REST Countries | 6 个接壤国家,中东次区域 |
| 📍 用于地理风险测绘的坐标解析 | Nominatim 地理编码器 | 纬度:-1.2921,经度:36.8219 |
| 📊 综合目的地风险评分(0-100) | 评分引擎 | 评分:67——高 |
| ⚠️ 四级建议分类 | 综合模型 | SAFE / EXERCISE_CAUTION / RECONSIDER_TRAVEL / DO_NOT_TRAVEL |
| 🗺️ 各维度风险细分及说明信号 | 评分引擎 | 灾害:18,健康:20,安全:22,天气:7 |
为什么使用 Travel Risk Intelligence MCP Server?
在旅行前手动调查目的地安全状况,意味着要在政府旅行警示网站、NOAA 天气页面、WHO 疾病通报和新闻源之间来回切换,然后将所有信息汇总成一致且可审计的内容。对于每周要管理数十趟行程的企业差旅团队来说,这个过程耗时数小时,而且不同目的地的风险评估结果无法比较。
此 MCP 服务可自动完成整个旅行风险评估工作流。AI Agent 调用一个工具,几秒钟内即可获得量化风险评分、结构化警示,以及说明评分依据的具体信号列表,可直接用于差旅审批工作流、简报文档或旅行照护责任合规记录。
- 定时计划 — 按每日或每周间隔定期监测目的地,在出行日期前发现风险变化
- API 访问 — 通过 Python、JavaScript 或任意 HTTP 客户端以编程方式触发风险评估
- 待命模式 — 服务在 Apify 平台上始终保持预热,Agent 工作流无需承受冷启动延迟
- 支出限额 — 设置每次运行的预算上限,防止 Agent 工作流产生无上限费用
- 集成 — 连接 Zapier、Make、webhook,或将结果推送到 Google Sheets 或差旅管理系统
功能
- 8 个并行数据源 — 同时查询 NOAA、GDACS、WHO GHO、UK Police、Interpol、REST Countries、Weather Forecast 和 Nominatim,并使用
Promise.allSettled实现容错 - 四个独立评分模型 — 自然灾害(最高 30 分)、健康风险(最高 25 分)、安全风险(最高 30 分)和天气严重程度(最高 15 分)分别生成独立评分,并附带说明性信号
- 按严重程度加权的 NOAA 评分 — 极端警报每条计 5 分,严重警报计 2 分,中度警报计 1 分;自然灾害评分上限为 30 分
- GDACS 严重程度等级 — 红色警报计 5 分,橙色警报计 3 分;与 NOAA 数据一同纳入灾害维度
- WHO 健康指标解析 — 检查预期寿命阈值(低于 60 岁 = 严重标记,+5 分;低于 70 岁 = +2 分)、疟疾情况、每 10 万人中结核病病例数是否超过 100、HIV 患病率是否超过 1%,以及卫生设施和饮用水可及率是否低于 50%
- 犯罪密度评分 — UK Police 记录每条乘以 2,最高 40 分;Interpol 通报每条乘以 5,最高 30 分
- 区域安全修正 — REST Countries 的次区域数据应用基线安全惩罚:中东 +3 分、中部/东部非洲 +4 分、南亚/东南亚 +2 分
- 均等 25/25/25/25 权重的综合简报 —
generate_travel_briefing综合四个模型,计算最终综合评分 - DO_NOT_TRAVEL 硬性覆盖规则 — 综合评分高于 75 分或警报等级为 EMERGENCY 时,无论各维度结果如何,都会自动升级为 DO_NOT_TRAVEL
- RECONSIDER_TRAVEL 硬性覆盖规则 — 安全风险等级为 EXTREME 时,至少会将旅行建议升级为 RECONSIDER_TRAVEL
- 多站点行程评分 — 最多评估 5 个目的地,并识别风险最高的行程段,辅助规划行程
- 目的地并列比较 —
compare_destination_alternatives并行评估两个目的地,并返回saferChoice字段 - 旅行时段规划 — 提供 14 天天气预报和当前 NOAA 警报数量,并附带用于地图集成的地理编码坐标
- 无数据惩罚 — 如果 WHO 未返回某个国家的记录,健康评分会自动增加 15 分,以体现无法量化的不确定性
- 结构化信号列表 — 每项评分均包含易于理解的信号,说明评分依据(例如,“当前有 4 个 GDACS 灾害警报”“预期寿命:58 岁 — 健康环境严峻”)
- 预算感知型工具执行 — 每个工具都会在执行前检查
Actor.charge;如果已达到支出限额,则返回清晰的错误消息
旅行风险情报的使用场景
企业关怀义务合规
对承担 ISO 31030 关怀义务的公司而言,企业差旅经理需要为每次国际旅行提供有记录、标准一致的风险评估。此 MCP 可集成到差旅审批工作流中,生成包含量化风险提示等级的行前简报。结构化 JSON 输出可记录到合规系统,或用于审批门禁逻辑,以便在分数超过规定阈值时要求签字批准。
高管安保规划
负责保护 C 级高管的安保团队需要全面评估多站点行程,而不仅仅是单个目的地。score_multi_stop_itinerary 工具会分别评估每一段行程,并标出风险最高的站点。随后,安保团队可决定是否使用 generate_travel_briefing 进一步调查,或使用 compare_destination_alternatives 比较其他路线。
旅行保险与 InsurTech 动态定价
保险承保人员和 InsurTech 平台可使用实时目的地风险评分,在销售时计算保费。前往存在生效中 GDACS 红色警报或健康评分高于 40 的目的地,与在平静时期评估同一目的地,应采用不同的定价。按查询付费的模式非常适合按需定价的承保 API。
国际活动与会议规划
为国际会议或异地活动选择场地的活动规划人员,可通过一次 API 调用比较多个候选城市。比较工具会并列返回风险明细,使决策有据可查、理由充分,而非仅凭直觉。signals 数组提供可供审计的依据,列出所考虑的因素。
员工实时位置监控
差旅运营团队可将 check_active_alerts 集成到关怀义务仪表板中,监控员工当前驻留地点。每次调用都会刷新 NOAA 和 GDACS 数据,无需手动监控多个政府数据源,即可近乎实时地掌握危险情况。每次调用费用为 $0.045,每日监控 20 名员工的位置需花费 $0.90。
AI 旅行助手与礼宾 Agent
由大模型驱动的旅行助手可调用 generate_travel_briefing,在用户出行前主动提供简报、提示相关健康注意事项,并根据风险等级推荐合适的保险保障——所有操作都可在同一对话中完成。结构化 JSON 输出专为便于语言模型解析而设计。
如何使用 Travel Risk Intelligence MCP Server
- 连接 MCP 服务 — 将服务 URL 添加到 MCP 客户端配置中(Claude Desktop、Cursor、Windsurf、Cline 或任何兼容 MCP 的客户端)。URL 为
https://travel-risk-intelligence-mcp.apify.actor/mcp。使用 Apify API token 作为 Bearer 授权标头。 - 选择工具 — 如需完整的行前简报,请使用
generate_travel_briefing。如需快速检查警报,请使用check_active_alerts。如需评估多城市行程,请使用score_multi_stop_itinerary。如需比较两个目的地选项,请使用compare_destination_alternatives。 - 提供目的地 — 输入城市、国家或地区名称(例如,“Nairobi”、“Kenya”、“Southeast Asia”)。对于
generate_travel_briefing,还需传入country参数,以提高 WHO 和 Interpol 查询的准确性。 - 接收结构化结果 — 工具会返回一个 JSON 对象,其中包含风险评分、风险提示等级、各维度明细、有效警报,以及解释评分依据的信号列表。根据查询的数据源数量,大多数调用会在 15-60 秒内完成。
MCP 工具
| 工具 | 价格 | 描述 |
|---|---|---|
assess_destination_risk | $0.045 | 天气、灾害、国家概况——基于 5 个来源计算目的地风险评分(0-100) |
check_active_alerts | $0.045 | 查询指定地点的 NOAA 实时天气警报和 GDACS 灾害警报 |
analyze_health_risks | $0.045 | WHO 健康指标、疾病患病率、卫生条件和不平等评估 |
evaluate_security_risk | $0.045 | 犯罪密度、国际刑警组织红色通报、区域安全概况 |
plan_travel_window | $0.045 | 14 天天气预报、当前警报数量、地理编码后的目的地坐标 |
score_multi_stop_itinerary | $0.045 | 每段行程的风险评分,并识别风险最高的停留地点(最多 5 个目的地) |
compare_destination_alternatives | $0.045 | 并排比较风险,并识别更安全的目的地 |
generate_travel_briefing | $0.045 | 完整综合简报——涵盖全部 8 个来源、4 种评分模型,以及从 SAFE 到 DO_NOT_TRAVEL 的等级 |
工具参数
| 工具 | 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|---|
assess_destination_risk | destination | string | 是 | 城市、国家或地区名称 |
assess_destination_risk | country | string | 否 | 国家名称或 ISO 代码(可提高 REST Countries 查询准确度) |
check_active_alerts | location | string | 是 | 要查询 NOAA 和 GDACS 当前警报的地点 |
analyze_health_risks | country | string | 是 | 用于查询 WHO GHO 和 REST Countries 的国家名称或 ISO 代码 |
evaluate_security_risk | location | string | 是 | 城市、地区或国家名称 |
evaluate_security_risk | country | string | 否 | 用于查询国际刑警组织数据的国家 ISO 代码 |
plan_travel_window | destination | string | 是 | 用于获取天气预报和警报的旅行目的地 |
score_multi_stop_itinerary | stops | string | 是 | 以逗号分隔的目的地,例如 "London, Istanbul, Nairobi" |
compare_destination_alternatives | destination_a | string | 是 | 用于比较的第一个目的地 |
compare_destination_alternatives | destination_b | string | 是 | 用于比较的第二个目的地 |
generate_travel_briefing | destination | string | 是 | 主要旅行目的地 |
generate_travel_briefing | country | string | 否 | 用于查询健康和安全数据的国家名称或 ISO 代码 |
输入提示
- 请为简报工具同时提供
destination和country。 在generate_travel_briefing中单独提供国家参数,可显著提高 WHO GHO 和国际刑警组织查询的准确度,因为这些查询使用国家名称或 ISO 代码,而非城市名称。 - 高频监控请使用
check_active_alerts。 该工具仅查询 2 个来源(完整简报会查询 8 个),因此适合以每次调用 $0.045 的费用监控当前在外工作的员工。 - WHO 查询请使用 ISO 国家代码。 传入 "KE" 而不是 "Kenya",或传入 "DE" 而不是 "Germany",可获得更一致的 WHO GHO 结果,并避免 15 分的无数据惩罚。
- 多站点列表请控制在 4-5 个目的地。 各停留地点会按顺序处理;5 个目的地可能需要 60-150 秒。对于更长的行程,请拆分成两次调用。
- 请为 Agent 工作流设置支出限额。 如果 AI Agent 自主调用此 MCP,请在 actor run 上配置
maxTotalChargeLimitUsd,以便达到限额时 MCP 内置的支出检查能够正常退出。
如何连接此 MCP 服务
Claude Desktop
将以下内容添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"travel-risk": {
"url": "https://travel-risk-intelligence-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
在 IDE 的 MCP 设置面板中添加 MCP 服务:
URL: https://travel-risk-intelligence-mcp.apify.actor/mcp
Auth: Bearer YOUR_APIFY_TOKEN
Python
import httpx
import json
response = httpx.post(
"https://travel-risk-intelligence-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "generate_travel_briefing",
"arguments": {
"destination": "Nairobi",
"country": "Kenya"
}
},
"id": 1
},
timeout=90
)
result = response.json()
briefing = json.loads(result["result"]["content"][0]["text"])
print(f"Advisory: {briefing['advisory']} (composite score: {briefing['compositeScore']})")
for signal in briefing["allSignals"]:
print(f" - {signal}")
for rec in briefing["recommendations"]:
print(f" > {rec}")
JavaScript
const response = await fetch("https://travel-risk-intelligence-mcp.apify.actor/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "generate_travel_briefing",
arguments: { destination: "Nairobi", country: "Kenya" }
},
id: 1
})
});
const result = await response.json();
const briefing = JSON.parse(result.result.content[0].text);
console.log(`Advisory: ${briefing.advisory} — Composite score: ${briefing.compositeScore}`);
briefing.recommendations.forEach(r => console.log(` > ${r}`));
cURL
# Full travel briefing for a destination (all 8 sources, all 4 models)
curl -X POST "https://travel-risk-intelligence-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "generate_travel_briefing",
"arguments": { "destination": "Karachi", "country": "Pakistan" }
},
"id": 1
}'
# Quick active alerts check only (2 sources, faster, cheaper)
curl -X POST "https://travel-risk-intelligence-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization": "Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "check_active_alerts",
"arguments": { "location": "Miami" }
},
"id": 2
}'
输出示例
以下是 generate_travel_briefing 针对多个维度风险较高的目的地生成的代表性输出。
{
"destination": "Nairobi",
"compositeScore": 54,
"advisory": "RECONSIDER_TRAVEL",
"destinationRisk": {
"score": 61,
"hazardScore": 6,
"healthScore": 20,
"securityScore": 27,
"riskLevel": "HIGH",
"signals": [
"28 crime records — high crime density",
"Significant health risks: low life expectancy or high disease burden"
]
},
"activeAlerts": {
"score": 15,
"weatherAlerts": 2,
"disasterAlerts": 1,
"totalAlerts": 3,
"alertLevel": "ADVISORY",
"signals": [
"2 NOAA weather alert(s) active",
"1 GDACS disaster alert(s) active"
]
},
"healthRisk": {
"score": 52,
"indicators": 12,
"criticalFlags": 9,
"riskLevel": "ELEVATED",
"signals": [
"Malaria risk present",
"Life expectancy: 64 years",
"High inequality (Gini: 48.5) — uneven healthcare access"
]
},
"securityRisk": {
"score": 44,
"crimeRecords": 22,
"interpolNotices": 2,
"riskLevel": "ELEVATED",
"signals": [
"22 crime records — high crime density",
"Eastern Africa subregion flag applied"
]
},
"allSignals": [
"28 crime records — high crime density",
"Significant health risks: low life expectancy or high disease burden",
"2 NOAA weather alert(s) active",
"1 GDACS disaster alert(s) active",
"Malaria risk present",
"High inequality (Gini: 48.5) — uneven healthcare access",
"22 crime records — high crime density"
],
"recommendations": [
"Monitor active alerts and have evacuation plan",
"Consult travel medicine clinic, ensure vaccinations up to date",
"Register with embassy, avoid high-crime areas, maintain situational awareness",
"Carry medical kit, verify hospital locations, consider medical evacuation insurance"
]
}
输出字段
| 字段 | 类型 | 描述 |
|---|---|---|
destination | string | 传递给工具的目的地名称 |
compositeScore | number | 综合风险评分,范围为 0-100(由 4 个模型各占 25% 得出) |
advisory | string | SAFE / EXERCISE_CAUTION / RECONSIDER_TRAVEL / DO_NOT_TRAVEL |
destinationRisk.score | number | 目的地风险子评分(0-100) |
destinationRisk.hazardScore | number | 自然灾害分项(0-30),数据来自 NOAA + GDACS 警报 |
destinationRisk.healthScore | number | 健康分项(0-25),依据 WHO 指标 |
destinationRisk.securityScore | number | 安全分项(0-30),依据犯罪、Interpol 和地区信息 |
destinationRisk.riskLevel | string | LOW / MODERATE / ELEVATED / HIGH / EXTREME |
destinationRisk.signals | string[] | 推动目的地风险评分的可读因素 |
activeAlerts.score | number | 警报严重程度评分(0-100) |
activeAlerts.weatherAlerts | number | 当前生效的 NOAA 天气警报数量 |
activeAlerts.disasterAlerts | number | 当前生效的 GDACS 灾害警报数量 |
activeAlerts.totalAlerts | number | 天气警报与灾害警报的总数 |
activeAlerts.alertLevel | string | NONE / ADVISORY / WATCH / WARNING / EMERGENCY |
activeAlerts.signals | string[] | 特定警报信号(例如,“有 3 条 NOAA 天气警报生效”) |
healthRisk.score | number | 健康风险评分(0-100) |
healthRisk.indicators | number | 检索到的 WHO GHO 指标数量 |
healthRisk.criticalFlags | number | 关键健康信号的加权计数 |
healthRisk.riskLevel | string | LOW / MODERATE / ELEVATED / HIGH / CRITICAL |
healthRisk.signals | string[] | 具体健康风险(例如,“存在疟疾风险”) |
securityRisk.score | number | 安全风险评分(0-100) |
securityRisk.crimeRecords | number | UK Police API 返回的犯罪记录数 |
securityRisk.interpolNotices | number | Interpol 针对该地区返回的红色通缉令数量 |
securityRisk.riskLevel | string | LOW / MODERATE / ELEVATED / HIGH / EXTREME |
securityRisk.signals | string[] | 具体安全信号(犯罪数量、Interpol 数量、地区标记) |
allSignals | string[] | 汇总全部四个模型的信号 |
recommendations | string[] | 根据评分阈值得出的可执行建议 |
运行旅行风险评估需要多少费用?
Travel Risk Intelligence MCP 采用按事件付费定价——每次工具调用收费 $0.045。平台计算费用已包含在内。只有工具成功执行时才会收费;达到支出限额的调用不会产生费用。
| 场景 | 工具调用次数 | 每次调用费用 | 总费用 |
|---|---|---|---|
| 单次活动警报检查 | 1 | $0.045 | $0.045 |
| 目的地风险评估 | 1 | $0.045 | $0.045 |
| 完整旅行简报(全部 8 个数据源) | 1 | $0.045 | $0.045 |
| 每周监控 — 20 个地点 | 20 | $0.045 | $0.90 |
| 每月企业计划 — 200 次评估 | 200 | $0.045 | $9.00 |
你可以为每次运行设置最高支出限额以控制费用。MCP 会在每次工具执行前检查预算;如果已达到限额,则会返回清晰的错误消息,不会产生部分费用。
Apify 免费套餐每月包含 $5 的平台抵用额度,约可支付 111 次工具调用。相比之下,International SOS 的订阅费用为每位用户每年 $50-200;此 MCP 无需承诺订阅,即可用极低的成本提供自动化的初步风险筛查。
Travel Risk Intelligence MCP 的工作原理
阶段 1:并行收集数据
调用工具时,服务端会使用 Promise.allSettled 同时分派最多 8 个子调用。每个子调用都是一个独立的 Apify actor,并有自己的 API 集成:
- NOAA 天气警报(actor
BJTV7I8rfiNHa0PlD)— 返回按位置筛选的有效 NWS 警报,包含严重程度、紧迫性和消息字段 - 天气预报搜索(actor
TpfQHy4R1EZT3ZqOp)— 返回包含气温和风速数据的多日预报 - GDACS 灾害警报(actor
pmweI2ngI1bo4l6KD)— 返回alertlevel值为 red、orange 或 green 的有效灾害事件 - WHO GHO 搜索(actor
jgahofLKxi6FAycgA)— 返回查询国家的健康指标,包括IndicatorCode和NumericValue - 英国警方犯罪数据(actor
jiVktGAOz5rv108S2)— 返回查询区域的犯罪记录 - Interpol 红色通报(actor
A5qfeUw5yBCtcdhn4)— 返回与该地区相关的国际通缉人员 - REST Countries(actor
6GUYnSUCFTRuVcQDA)— 返回国家概况,包括区域、次区域、边境数组、人口和基尼系数对象 - Nominatim 地理编码器(actor
i4BCLB2eHbePe78aj)— 将目的地字符串解析为lat和lon坐标
Promise.allSettled 可确保任何单一数据源发生故障时都不会中止评估。故障来源会返回空数组,每个评分模型都会妥善处理缺失数据,包括在缺少 WHO 记录时施加 15 分的不确定性惩罚。
阶段 2:四个独立评分模型
scoreDestinationRisk 会对 NOAA 警报按严重程度加权累积分数(极端 +5、严重 +2、中等 +1,上限为 30),对 GDACS 警报累积分数(红色/橙色 +5,其他 +2,并计入同一 30 分灾害上限),并评估 WHO 健康指标(预期寿命阈值、疾病负担标记)和 REST Countries 区域叠加因素。四个维度的分数——灾害(最高 30)、健康(最高 25)、安全(最高 30)、天气(最高 15)——总计最高 100 分。
checkActiveAlerts 仅关注实时紧急信号:累加 NOAA 严重程度分数(每条警报:极端 +3、严重 +2、其他 +1,最高 50 分)和 GDACS 严重程度分数(每条警报:红色 +5、橙色 +3、其他 +1,最高 50 分)。五级警报级别按分数阈值划分:20(ADVISORY)、40(WATCH)、60(WARNING)和 80(EMERGENCY)。
analyzeHealthRisks 会解析 WHO 指标代码:预期寿命低于 60 岁(+5 个关键分)或低于 70 岁(+2 分)、存在疟疾(+2)、结核病发病率高于每 10 万人 100 例(+2)、HIV 流行率高于 1%(+2)、卫生设施覆盖率低于 50%(+3),以及安全饮用水覆盖率低于 50%(+3)。REST Countries 的基尼系数高于 45 时,会增加医疗服务可及性不平等信号。如果 WHO 完全没有返回数据,则施加 15 分的基准惩罚。
evaluateSecurityRisk 会根据犯罪数量(记录数 × 2,最高 40 分)、Interpol 通报密度(通报数 × 5,最高 30 分),以及基于 REST Countries 次区域得出的国家级安全叠加因素评分:中东 +3、中非 +4、东非 +4、南亚 +2、东南亚 +2、多边境国家(边境数不少于 6)+3。
阶段 3:生成综合建议
generateTravelBriefing 会以相同的 25% 权重综合四个模型的分数,生成 0–100 的综合评分。建议分类:0–24 = SAFE,25–49 = EXERCISE_CAUTION,50–74 = RECONSIDER_TRAVEL,75 及以上 = DO_NOT_TRAVEL。以下两种情况会触发强制覆盖:EMERGENCY 警报级别无论综合评分如何,都会强制判定为 DO_NOT_TRAVEL;EXTREME 安全风险级别至少会强制判定为 RECONSIDER_TRAVEL。四个模型的所有信号都会合并到 allSignals 中,五条基于阈值的建议规则则会针对警报、健康、安全、自然灾害和医疗撤离保障生成可执行指导。
获取最佳结果的提示
-
读取
signals数组,而不只是查看分数。 如果综合评分为 45,原因是“存在疟疾风险”,那么需要采取的行动与同样分数由“有 14 条生效的天气警报”导致时不同。信号适用于合规文档和直接向旅行者进行说明。 -
预订前使用
compare_destination_alternatives。 系统会并行评估两个目的地,因此费用与单次评估相同。saferChoice字段可为自动预订审批逻辑提供明确的决策信号。 -
对于时间敏感的行程,将
assess_destination_risk与plan_travel_window结合使用。 如果风险评分达到 ELEVATED 或更高,请调用plan_travel_window,判断风险是暂时性的(如正在发生的天气事件),还是结构性的(如地方性健康负担、区域安全标记)。 -
多站行程重点关注风险最高的一站。
score_multi_stop_itinerary的响应包含highestRisk字段,用于标明风险最高的停留点。可据此决定是否为该目的地调用generate_travel_briefing。 -
为 Agent 工作流设置支出限额。 在 Actor 运行中配置
maxTotalChargeLimitUsd,这样达到限额时,MCP 内置的支出检查就会正常退出,不会产生部分扣费。 -
使用 ISO 国家代码以提高准确性。 两位字母的 ISO 代码可使 WHO GHO 结果更加一致,并避免对确实健康风险较低的 OECD 国家触发 15 分的无数据惩罚。
-
安排
check_active_alerts进行现场监控。 每次调用费用为 $0.045,每日监控 20 个员工所在地的成本为 $0.90/天。使用计划运行并配置 webhook,在评分超过阈值时通知 Slack 或通过电子邮件通知。
与其他 Apify Actor 结合使用
| Actor | 组合方式 |
|---|---|
| Location Risk Report | 评估目的地的实体基础设施和设施风险——与差旅风险评估相结合,适用于以场所为基础的差旅计划 |
| NOAA Weather Alerts | 单独运行 NOAA 查询,在不使用评分层的情况下获取原始警报数据,用于开发自定义风险模型 |
| GDACS Disaster Alerts | 直接查询 GDACS,获取原始灾害事件数据,包括完整的影响估算和人口暴露数据 |
| WHO GHO Search | 获取差旅计划目的地候选名单中国家的原始 WHO 健康指标数据 |
| Interpol Red Notices | 针对目标执行 Interpol 查询,在差旅风险评分之外进行高管保护尽职调查 |
| Company Deep Research | 调查目的地的政治和经济环境,用定性的国家背景补充定量风险评分 |
| AML Entity Screening | 筛查与目的地相关的个人或实体,评估其制裁和金融犯罪风险 |
局限性
- 犯罪数据以英国为主。 英国警方犯罪数据来源涵盖英格兰、威尔士和苏格兰部分地区。对于英国以外的目的地,犯罪维度主要依赖 Interpol 通报和区域安全叠加数据,因此可能低估英国以外高犯罪率城市的犯罪风险。
- WHO 健康数据的国家覆盖范围不一。 WHO GHO 数据对仍面临疾病负担的发展中国家最为全面。对于 OECD 国家,健康数据可能较少,即使健康风险确实较低,也可能触发 15 分的无数据惩罚。请查看
signals数组,判断较高的健康分数反映的是真实风险还是数据缺失。 - NOAA 警报以美国为中心。 NOAA 国家气象局主要覆盖美国领土及附近海域。对于北美以外的目的地,天气警报维度依赖 GDACS 数据,以及天气预报中的温度/风力阈值,而非 NWS 公告。
- 没有政治不稳定或制裁数据。 MCP 不会查询 OFAC 制裁名单、国务院旅行警告、政治风险指数或武装冲突数据库。安全风险根据犯罪记录和 Interpol 通报得出,不会直接涵盖正在发生的武装冲突、内乱或政变风险。
- 多站点评分按顺序处理,而非并行处理。
score_multi_stop_itinerary工具会循环处理每个目的地,而不是同时处理。若有 5 个停靠点,预计需要 60-150 秒。 - 没有历史趋势数据。 所有数据均反映当前情况。MCP 无法评估某个目的地的安全状况是否随时间变得更好或更差;它反映的是查询时的情况。
- 没有医疗设施数据。 健康风险分数反映的是国家层面的疾病负担和基础设施质量,但不包括医院位置、ICU 容量、血库可用性或医疗撤离路线。
- 分数反映的是数据可用性,而非绝对风险。 热浪期间某个欧洲首都的 40 分,不等同于疟疾流行城市的 40 分。请务必结合
signals数组解读数值分数。
集成
- Apify API — 直接通过任意 HTTP 客户端调用 MCP 端点,将旅行风险评分集成到企业差旅管理系统或承保 API 中
- Webhooks — 定时运行目的地监测后,若返回的分数高于指定阈值,则触发 Slack 或电子邮件通知
- Zapier — 连接差旅预订平台或 HR 系统,在新行程获批时自动触发风险评估
- Make — 构建自动化的关怀义务工作流,在员工预订前往风险较高目的地的行程时进行评估、记录并通知管理者
- Google Sheets — 将目的地风险分数记录到电子表格中,用于差旅项目报告和合规审计追踪
- LangChain / LlamaIndex — 在大模型 Agent 流程中集成为工具,用于需要实时安全背景信息的旅行助手或安全简报应用
故障排除
**对于明显安全的国家,评估却返回较高的健康评分。**这通常是无数据惩罚所致——如果 WHO GHO 中没有查询国家名称对应的记录,健康模型默认会加 15 分。尝试在 country 参数中传入两字母的 ISO 国家代码(例如,使用 "DE" 而不是 "Germany")。如果 signals 数组包含 "No WHO health data available — unable to assess health risks",则升高的评分反映的是数据缺失,而非实际健康风险。
**多站点行程超时或只返回部分结果。**每个站点都会查询 3 个数据源,因此包含 5 个站点的行程可能需要 90-150 秒。如果子调用触发了 120 秒的 actor 超时,请将每次调用的站点数减至 3-4 个,或将行程拆分为多次 API 调用,并在客户端合并结果。
**低犯罪目的地的安全评分似乎偏高。**区域安全叠加层会根据 REST Countries 数据,对特定子区域(中东、中非、东非)施加基准惩罚。如果目的地位于这些地区,但实际犯罪率较低,securityRisk 对象中的 crimeRecords: 0 值表明,评分是由区域标记导致的,而非实际观测到的犯罪数据。
**工具返回 "Spending limit reached" 错误。**你的 Apify actor 运行已达到 maxTotalChargeLimitUsd 限额。请在 Apify Console 的 actor 运行设置中提高限额,或以更高预算开始新的运行。被阻止的调用不会产生费用。
**对于同一目的地,generate_travel_briefing 返回的评分与 assess_destination_risk 不同。**这是预期行为。generate_travel_briefing 会查询全部 8 个数据源,并对全部 4 个评分模型采用相同权重。assess_destination_risk 会查询 5 个数据源,且只应用 scoreDestinationRisk。简报工具的评估更全面、更权威。
负责任地使用
- 此 MCP 服务使用的所有数据源均为公开的政府及国际组织数据库(NOAA、GDACS、WHO、Interpol、UK Police、REST Countries、Nominatim/OpenStreetMap)。
- 风险评分是根据公开数据生成的自动化评估,应作为初步筛查工具,而不应成为高风险情境下做出安全决策的唯一依据。
- 对于实际的旅行紧急情况或高风险任务,除自动评分外,还应咨询合格的安全专业人士并查阅官方政府旅行建议。
- 如需了解网络抓取的合法性指南,请参阅 Apify 的指南。
常见问题
目的地的旅行风险情报评分是如何计算的? 服务会并行查询最多 8 个数据源,然后应用四个独立的评分模型:自然灾害风险(根据 NOAA 和 GDACS 警报按严重程度加权,最高 30 分)、健康风险(根据 WHO 的预期寿命、疾病指标和基础设施评估,最高 25 分)、安全风险(根据犯罪密度、Interpol 通报和区域标记评估,最高 30 分),以及天气严重程度(根据温度和风力阈值评估,最高 15 分)。这些分数相加得出目的地风险评分(0-100)。综合简报以相同的 25% 权重综合这四个模型。
目的地风险评分有多准确?
该评分反映查询时可获取的公开数据。NOAA 警报接近实时;重大事件发生后,GDACS 会在数小时内更新;WHO 和 REST Countries 数据则会定期更新。该评分比大多数静态旅行建议系统更新,但政变、突然暴发疫情等快速变化的情况,可能不会立即出现在结构化数据源中。对于局势正快速变化的情况,请务必查阅官方政府建议。
在多站点行程中,我最多可以评估多少个目的地?
每次 score_multi_stop_itinerary 调用最多可评估 5 个目的地。目的地会按顺序处理。对于超过 5 个停留点的行程,请拆分为两次调用,并在客户端合并结果。
旅行风险情报是否涵盖地震或飓风等实时危机? 是。GDACS 灾害警报会在重大自然灾害发生后的数小时内更新,NOAA 天气警报则近乎实时更新。两者都会直接纳入危险和警报评分维度。若目的地正处于飓风警报生效期间,建议级别将升至 WARNING 或 EMERGENCY。
这与 International SOS 或 Control Risks 相比如何? International SOS 和 Control Risks 提供人工分析师网络、全天候紧急响应热线和医疗撤离服务,而这些能力并非此 MCP 所能替代。此 MCP 基于公开数据提供自动化、量化的风险筛查,成本仅为订阅服务的一小部分(每次查询 $0.045,而订阅服务每位用户每年需 $50-200 以上)。建议两者结合使用:通过此 MCP 进行可扩展的初步筛查,并在高风险任务或实时紧急情况下使用人工咨询服务。
使用这些旅行风险数据合法吗? 合法。所有数据来源都是由政府机构和国际组织运营的公开数据库:NOAA(美国政府)、GDACS(欧盟联合研究中心)、WHO GHO(联合国)、Interpol(国际执法机构)、UK Police(英国内政部)、REST Countries(开放数据)和 Nominatim(OpenStreetMap)。查询这些 API 不会违反任何服务条款。请参阅 Apify 关于网页抓取合法性的指南。
我可以安排自动监控身处外地的员工所在地吗?
可以。配置定时运行的 Apify actor,每天或每小时为每位员工的位置调用 check_active_alerts。当评分超过设定阈值时,使用 webhook 向 Slack 频道或邮件分发列表发送通知。这样无需人工干预,即可建立轻量级的员工关怀监控系统。
如果某个数据源不可用,会发生什么?
服务端使用 Promise.allSettled,这意味着任何单个数据源发生故障都不会中止评估。故障的数据源会返回空数组,评分模型则会妥善处理缺失数据。如果 WHO 查询失败,signals 数组会包含“No WHO health data available — unable to assess health risks”,从而在输出中明确呈现数据缺口。
我可以在 Claude、GPT 或其他 AI Agent 工作流中使用此 MCP 吗? 可以。此 MCP 遵循 Model Context Protocol 标准,兼容任何符合规范的客户端:Claude Desktop、Cursor、Windsurf、Cline,以及任何支持 MCP 工具调用的大模型框架。结构化 JSON 输出专为语言模型解析而设计,并提供简洁的信号字符串,便于纳入 Agent 回复。
典型的旅行风险评估需要多长时间?
check_active_alerts(2 个数据源)通常需要 10-20 秒。assess_destination_risk(5 个数据源)需要 15-35 秒。generate_travel_briefing(8 个数据源、4 个模型)需要 20-60 秒,具体取决于数据源的响应时间。包含 5 个停留点的 score_multi_stop_itinerary 可能需要 60-150 秒。
什么建议级别会触发 DO_NOT_TRAVEL 分类?
综合风险评分达到 75 或以上,或者 checkActiveAlerts 返回 EMERGENCY 警报级别(根据 NOAA 和 GDACS 的当前严重程度,评分达到 80 或以上),都会触发 DO_NOT_TRAVEL,无论其他维度如何。若安全风险级别为 EXTREME(安全模型评分达到 80 或以上),则至少会触发 RECONSIDER_TRAVEL,无论综合评分如何。
旅行风险评分能否与 SAP Concur 或 Egencia 等旅行管理系统集成?
目前没有原生连接器。你可以使用 Apify API 或 Webhook 构建自定义集成层,在旅行管理系统中创建行程时调用 MCP,并将风险评估结果记录到预订记录中。
帮助我们改进
如果你遇到问题,可以在 Apify 账户中启用运行共享,帮助我们更快地调试:
- 前往 账户设置 > 隐私
- 启用与公开 Actor 创建者共享运行
这样一来,如果出现问题,我们就能查看你的运行详情,从而更快地修复问题。只有 Actor 开发者可以查看你的数据,公众无法查看。
支持
发现 Bug 或有功能需求?请在此 Actor 页面上的 问题标签页中提交问题。如需定制解决方案或企业集成,请通过 Apify 平台联系我们。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。