Skip to main content
WebMCP 让浏览器智能体发现并调用当前标签页中 WorldMonitor 页面暴露的工具。这些工具操作现有首页或仪表板 UI,并不是一套独立的数据 API。
WebMCP 是一项实验性的拟议 Web 标准,目前通过 Chrome 149 Origin Trial 提供。API 和浏览器行为仍可能改变。WorldMonitor 只支持在可见、有人参与的浏览器标签页中使用它。WebMCP 不会取代 WorldMonitor 托管 MCP 服务器 持久、远程、后台或无头智能体,以及直接读取 WorldMonitor 数据的场景,请使用托管服务器。

选择正确的接口

WebMCP 不是 MCP 传输、MCP Apps 扩展、发现服务器或嵌入机制。托管 MCP 和 MCP Apps 无需打开 WorldMonitor 标签页;WebMCP 则描述并操作当前实时前端。

可用性

生产 Origin Trial

WorldMonitor 为以下精确生产源的顶层 //dashboard/dashboard.html 路由注册 Origin Trial:
  • https://www.worldmonitor.app
  • https://tech.worldmonitor.app
  • https://finance.worldmonitor.app
  • https://commodity.worldmonitor.app
  • https://happy.worldmonitor.app
  • https://energy.worldmonitor.app
专用源的根路由会进入该源的仪表板。/?mode=agent 是独立的机器可读 JSON 接口,不是 WebMCP 路由。预览部署和文档路由未注册。 Origin Trial 令牌有时限。发布检查必须验证实际部署的响应头,不得假设先前提交的令牌仍被浏览器接受。

本地开发

使用 Chrome 149 或更高版本:
  1. 打开 chrome://flags/#enable-webmcp-testing
  2. WebMCP for testing 设为 Enabled
  3. 完全重新启动 Chrome。
  4. 本地启动 WorldMonitor。打开 /dashboard 检查含八个工具的仪表板;不要使用 /embed。若要检查含两个工具的静态首页,请先运行 npm run build:pro,再打开 /pro/welcome.html。本地 Vite 的 / 会加载仪表板 SPA,只有生产环境才把 / 重写到欢迎页。
  5. 在 DevTools 中确认特性检测:
本地开发由该 flag 代替 Origin Trial 注册。WorldMonitor 仍会发送 API 所需的源隔离与权限策略响应头。
如果浏览器没有当前 API,包括未暴露 WebMCP 的 Tauri 桌面 WebView,WorldMonitor 会安全地不执行任何操作。它不会安装浏览器 polyfill,也不会退回旧草案 API。

工具清单

工具取决于页面和当前状态。运行时权威来源是 await document.modelContext.getTools(),不是在其他页面缓存的旧清单。

首页工具

静态 https://www.worldmonitor.app/ 欢迎页会在仪表板 SPA 加载前注册两个命令式工具:

仪表板命令式工具

六个仪表板变体都注册相同的八个命令式工具。登录和权益变化不会改变注册集合;每次调用都会重新检查实时状态。 search_dashboard 返回精简描述符,不暴露隐藏仪表板状态。不透明结果键只能使用一次,两分钟后过期,最多保留最近 64 个;相关运行时、认证、权益、变体或组件访问发生变化时也会失效。过期或无效键会被拒绝,不会被当作 URL 或命令执行。

声明式采购工具

全球采购面板可以暴露一个声明式 WebMCP 工具 表单的精确描述是 “Search official global procurement opportunities using visible filters.”。它使用 toolautosubmit 和用户看到的同一组控件。调用会让表单显示激活状态,经普通请求路径应用筛选,并以受限摘要返回匹配数、可用性、覆盖范围、已应用筛选及来源状态,而不返回招标描述或隐藏提交数据。重置或取消会中止请求并恢复可见表单状态。数据契约见全球采购情报

人工控制与 UI 行为

  • 命令式工具在启动时同步注册,但会等待所需 UI 或地图渲染器。销毁应用会中止待处理工作并注销工具;同文档重新初始化不会产生重复注册。
  • 动作经过与人工控件相同的 UI、agent-bus、面板和地图路径,不调用具有额外权限的后端捷径。
  • 每次调用时都会评估认证、订阅权益、仪表板变体、面板挂载状态、图层策略和渲染器就绪状态。登录时发现的工具不能在退出或降级后保留访问权。
  • 成功变更保持可见:面板打开、搜索界面出现、地图状态变化,声明式采购表单显示激活/等待状态。
  • 被拒绝、无效、跳过、不可用和过期操作返回受限结果或安全错误,不会静默绕过锁定,也不会虚构结果。
  • 用户可以继续操作页面;已有的重置、关闭、导航和取消控件始终具有最终控制权。

安全与隐私

WorldMonitor 遵循浏览器的源隔离和同源模型:
  • 生产仪表板响应包含 Origin-Agent-Cluster: ?1,且 Permissions-Policy 包含 tools=(self)
  • WorldMonitor 不通过 fromOriginsexposedTo 或 iframe 的 allow="tools" 委派向其他源开放 WebMCP。
  • /embed/embed.html 明确发送 tools=()。即使父页面拥有 WebMCP,嵌入的 WorldMonitor 面板也不得暴露任何工具。
  • WebMCP 复用用户现有浏览器会话,不通过工具参数接受新的 API 密钥,也不会弱化面板和数据权益。
  • 仪表板搜索结果按不可信内容处理,并在选择前重新验证。
  • 仪表板运行遥测严格受限:webmcp-registered 记录 toolCountpageSurface 和 API 类别;webmcp-registration-failed 记录工具及稳定原因;webmcp-tool-invoked 记录工具、结果和终态原因。仪表板搜索还可以记录查询长度、结果数及允许列表内的结果类型类别。这些 WebMCP 专用自定义属性不得包含参数、搜索文本、结果键、返回内容、URL、招标内容或用户身份。事件仍使用 WorldMonitor 常规的 Umami 页面与会话外层信息,其中包含页面上下文,并可能与已登录的仪表板身份关联;受限路径只会省略自动内容归因属性,不会移除常规分析会话元数据。
WebMCP 主要面向本地、有人参与的浏览器工作流。即使某些浏览器实现可能在其他环境暴露部分能力,WorldMonitor 也不把 WebMCP 作为无头、无人值守、跨源或后台自动化契约。此类场景请使用托管 MCP 服务器

使用浏览器 API 调试

使用 document 上的当前 API。旧的 navigator.modelContext 从 Chrome 150 起已弃用,已移除的 provideContext 草案 API 不受支持。
getTools() 按字母顺序返回当前页面授权的工具。在当前 Chrome 版本中,返回描述符的 inputSchema 是 JSON 字符串:
以 JSON 字符串参数调用已发现工具:
使用中止信号测试浏览器驱动的取消:
如需可视化流程,请安装 Chrome 官方 Model Context Tool Inspector。用它确认发现、描述、schema、有效与无效参数、输出、错误、取消以及相应可见 UI 变化。Chrome DevTools 149 也提供实验性 WebMCP Application 面板检查器;它是另一个实验,需要同时启用 chrome://flags/#enable-webmcp-testingchrome://flags/#devtools-webmcp-support
Inspector 的自然语言工作流默认会把提示词发送给外部 Gemini 模型。不要在 Inspector 提示词中输入凭据或私有仪表板内容。当前模型行为见 Chrome 的 WebMCP 概述

发布冒烟检查清单

必须测试将要发布的精确提交。记录其 40 字符 Git SHA,并从同一 checkout 执行本地证明:

本地,相同 SHA

这些命令会解析并输出精确提交;如果工作树存在已跟踪、已暂存或未跟踪变更,则立即失败。传入 WM_WEBMCP_DEPLOYED_SHA 后,本地证据产物会记录该 SHA;套件无法独立证明部署与 SHA 的对应关系。套件会启用 Chrome WebMCP 测试特性,并测试这个干净 checkout。除自动化证明外,如果发布修改了相关接口,还要用 getTools() 或 Inspector 检查每个仪表板变体以及采购工具可见/隐藏状态。如果发布修改了首页,请先运行 npm run build:pro,再检查 /pro/welcome.html

生产,相同 SHA

首先在部署控制平面确认目标 URL 确实提供预期 SHA。运行器会把 WM_WEBMCP_DEPLOYED_SHA 记录在证据中,但无法独立推导或证明 URL 与 SHA 的对应关系。 执行可选的有头生产套件;它不启用本地测试 flag,因此会测试真实 Origin Trial:
该套件断言 Origin-TrialOrigin-Agent-ClusterPermissions-Policy 响应头、工具清单与 schema、一次免费上下文调用、一次不可用面板拒绝及取消,并写出 JSON 证据产物。请把这些产物与发布证据一起保存。其门禁有意只接受规范目标 https://www.worldmonitor.app。对于其他已注册源,应手动检查响应头,并使用 getTools() 或 Inspector 验证清单和行为;只有另行评审并添加专用冒烟目标后,才可自动化测试这些源。 还要确认 /embed/embed.html 返回 tools=(),且 /?mode=agent、预览部署、文档和嵌入页面没有获得顶层清单。部署控制平面的 SHA 检查、响应头、清单、UI 行为和终态结果应视为独立断言;仅有部署成功或注册日志不等于验收通过。

兼容与移除策略

WorldMonitor 以当前 document.modelContext.registerTool() API 为目标并进行特性检测。它不提供 navigator.modelContextprovideContext 或草案兼容 shim。 如果未来浏览器迁移确实需要临时 fallback,该变更必须:
  1. 明确具体浏览器/API 缺口,并保持当前 API 为首选路径。
  2. 保持同源策略、可见 UI 行为、认证/权益检查、受限输出、隐私规则和取消能力。
  3. 同时为原生与 fallback 路径提供契约测试,并指定移除负责人及 Chrome 里程碑或生产验证条件。
  4. 当前支持 API 在生产验证后立即移除;fallback 绝不能成为未记录的永久 API。
WebMCP 不可用时,托管 MCP 服务器仍是受支持的替代接口。它是一套独立产品接口,不是浏览器 fallback 实现。

反馈与官方参考

WorldMonitor 清单、UI、权限或权益问题请通过 GitHub IssuesWorldMonitor 支持报告。请附页面 URL、Chrome 版本、可见工具名、预期 UI 效果、实际受限结果/错误,以及能否在 Inspector 复现。切勿包含凭据或私有仪表板内容。