World Monitor 的 MCP/API/CLI 接入:给 Agent 用的情报接口不能只看能否调用
World Monitor 暴露 MCP、REST API、CLI 和多语言 SDK,关键是权限、错误语义、审计和数据新鲜度。
World Monitor 最适合接入 Agent 的地方,不是把整个网页交给模型看,而是使用它已经暴露出来的程序化接口:MCP、REST API、npm CLI,以及 Python、Ruby、Go SDK。对工程团队来说,这些接口比 3D 地球更关键,因为它们决定了外部 Agent 能不能稳定获取工具列表、调用数据、记录失败并遵守权限边界。
官方仓库 koala73/worldmonitor 当前主线是 TypeScript / Vite,AGPL-3.0-only,package.json 版本为 2.10.0。公开文档列出 MCP 端点 https://worldmonitor.app/mcp,其中 tools/list 可公开访问,tools/call 需要认证;REST API 在 https://api.worldmonitor.app;同时有 npm CLI worldmonitor,以及 Python、Ruby、Go SDK。项目还提供 llms.txt 和 agent discovery 文件,这说明它不是只面向人工浏览器用户,也在主动面向自动化客户端。
把 MCP 当作操作契约
MCP 的价值在于把“模型想看情报”变成可枚举、可授权、可记录的工具调用。公开 tools/list 让 Agent 能发现能力边界,认证 tools/call 则把实际读取或执行放到权限之后。这个设计比让 Agent 抓网页稳定得多:网页结构会变,视觉层会混入布局噪声,而工具接口可以定义参数、返回结构和错误码。
接入时不要让 Agent 获得无限制调用权。更好的方式是建立一个中间层:白名单允许的工具名,限制查询窗口和分类范围,按用户或任务发放短期 token,记录每次 tools/call 的请求、响应摘要、耗时和错误。World Monitor 处理的是全球事件、金融、地缘和基础设施信息,这些数据一旦进入自动决策链,就必须有审计。
REST、CLI、SDK 各自适合的场景
- REST API 适合服务端集成:把监控数据拉入内部面板、批处理任务或告警系统。
- npm CLI 适合本地研究和定时脚本:快速查询、导出、调试配置。
- Python SDK 适合数据分析、Notebook、离线聚类和报告生成。
- Ruby/Go SDK 适合已有后端生态,不必为了接入再包一层 shell。
- MCP 适合让 LLM Agent 在受控工具范围内按需查询。
这几个入口不应该互相替代。CLI 方便人,REST 方便服务,SDK 方便语言生态,MCP 方便模型工具调用。工程上最常见的错误,是为了省事让生产 Agent 调 CLI,再从 stdout 解析半结构化文本。只要有 REST 或 SDK,就应该优先使用结构化接口。
Agent 集成的最小安全边界
World Monitor 的安全文档已经给出若干底线:没有 secrets 进仓库,RSS 抓取要做 allowlisting 和 redirect 检查,接口要有 rate limits 与 circuit breakers,外部内容要清洗,Tauri IPC 要验证 origin 并使用 sidecar session token。自托管时不能把 Redis 或 relay 未认证暴露到公网,I_UNDERSTAND_THIS_DISABLES_AUTH 只用于本地调试。
Agent 集成还需要额外边界。第一,工具调用应该只读,除非业务明确需要写入。第二,响应里不能直接包含未清洗 HTML 或可执行片段。第三,金融、地缘和安全事件只能作为情报输入,不能让模型自动触发高风险操作。第四,令牌要按环境区分:开发、测试、生产不能共用同一凭证。第五,任何自动摘要都要保留原始链接。
错误处理比成功示例更重要
接入 MCP/API 时要设计失败语义。上游 RSS 不可用、Redis 没有种子数据、provider API key 缺失、rate limit 被触发、认证失败、地图层数据为空,这些都不应该被 Agent 解释成“没有事件发生”。正确的返回应该区分:没有结果、数据源不可用、权限不足、缓存过期、请求被限流和系统错误。
如果你把 World Monitor 接到内部 Agent,可以让 Agent 每次回答前附带数据新鲜度:查询时间、覆盖类别、缺失来源、是否来自缓存、是否有认证降级。这样用户看到的不是一个过度自信的结论,而是带有数据边界的判断。
推荐接入流程
- 先用 tools/list 或 SDK 文档确认可用能力,不要从 UI 反推接口。
- 在开发环境里固定最小查询范围,例如一个分类、一个地区、一个时间窗口。
- 记录真实错误响应,给 Agent 写清楚不可把错误当作空结果。
- 增加服务端代理层,统一认证、限流、审计和脱敏。
- 在报告里强制引用 original URL、时间戳和数据源类型。
- 进入生产前做凭证轮换、Redis/relay 暴露检查和日志脱敏。
World Monitor 的程序化接口说明它已经不只是可视化项目,而是一套可被 Agent 和服务调用的情报基础设施。真正的工程重点,是把这些接口当作契约来运维:权限可控、参数可限、错误可解释、日志可追踪、结论可回到原始来源。做到这些,它才适合进入自动化工作流。