WebMCP 与 AI 代理
ImgFlow 在首页与工具页把压缩队列暴露给浏览器内 AI 代理(WebMCP 草案 API)。图片仍在你的设备上处理;代理只能调用页面已注册的工具,不能绕过本地引擎上传图片。
前提条件
- 桌面版 Google Chrome(建议最新 Canary/Dev;稳定版需自行确认是否带 WebMCP 标志)。
- 通过 HTTPS 访问本站(本地开发可用 localhost)。
- 在 chrome://flags/#enable-webmcp-testing 将「WebMCP for testing」设为 Enabled 并完全重启 Chrome。
- API 仍为实验性质,标志名与行为可能随 Chrome 版本变化——以 Chrome 官方文档为准。
启用 WebMCP 测试标志
- 地址栏打开 chrome://flags/#enable-webmcp-testing
- 下拉选择 Enabled
- 点击页面底部的 Relaunch,等待 Chrome 完全退出并重新打开
本站注册的工具
打开首页或任意工具页并等待工具岛加载完成后,以下工具会注册到 document.modelContext:
add_image_from_urlset_compression_settingsget_compression_statusdownload_imagedownload_all_resultsreset_queue
冒烟测试(约 1 分钟)
在首页打开开发者工具 Console,粘贴并运行下面脚本。若 WebMCP 已启用且页面已加载工具岛,应返回包含 get_compression_status 的工具名列表。
(async () => {
const mc = document.modelContext;
if (!mc?.getTools) {
return {
ok: false,
reason: 'document.modelContext.getTools is missing. Enable chrome://flags/#enable-webmcp-testing, relaunch Chrome, open the homepage, then retry.',
};
}
const tools = await mc.getTools();
const names = tools.map((tool) => tool.name).sort();
return {
ok: names.includes('get_compression_status'),
names,
};
})();该测试只验证「工具已注册」,不代替真实压缩。要试完整流程,需使用支持 WebMCP 的 AI 代理或 Chrome 文档中的 Model Context Tool Inspector 扩展,让代理依次调用 add_image_from_url 与 get_compression_status。
已知限制
- 非 WebMCP 浏览器不会加载 webmcp.ts,行为与平时完全一致。
- add_image_from_url 受 CORS 限制;跨域图片请用 data: URL 或让用户拖拽到页面。
- navigator.modelContext 已弃用,请使用 document.modelContext(与 ToolApp 一致)。