关于 WebMCP Demo Store
WebMCP Demo Store 是面向 Agent 的商店服务器与基准测试项目,提供普通网页和 MCP 两种模式,用于比较目录数据的访问方式。
主要功能
- 01普通网页与 WebMCP 模式
- 02商品搜索和购物车工具
- 03支持 Chrome 原生 WebMCP
- 04DOM 与 Token 基准测试
- 05仅依赖标准库的服务器
适用场景
- 01比较网页抓取与 MCP 调用
- 02测试商品目录上的 Agent 工作流
- 03衡量任务数据量和输入 Token
MCP 相关
WebMCP 模式通过 MCP-over-HTTP 的 `/mcp` 端点提供商品目录和购物操作,也可通过 Chrome 的 `document.modelContext` API 注册工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
服务地址
https://demowithmcp.converso.work/mcp一键复制安装命令
Claude CodeTerminal
claude mcp add --transport http kamatanuj-webmcp-store https://demowithmcp.converso.work/mcpCursor.cursor/mcp.json
{"mcpServers":{"kamatanuj-webmcp-store":{"type":"http","url":"https://demowithmcp.converso.work/mcp"}}}在 Cursor 中打开VS Code.vscode/mcp.json
{"servers":{"kamatanuj-webmcp-store":{"type":"http","url":"https://demowithmcp.converso.work/mcp"}}}在 VS Code 中打开Claude Desktopclaude_desktop_config.json
{"mcpServers":{"kamatanuj-webmcp-store":{"type":"http","url":"https://demowithmcp.converso.work/mcp"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"kamatanuj-webmcp-store":{"serverUrl":"https://demowithmcp.converso.work/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
WebMCP 演示商店——单文件服务端、两种模式、一项基准测试
同一家商店、同一组工具、两种交付模式:
- WebMCP 模式——页面通过 MCP 工具调用公开商品目录(MCP-over-HTTP
/mcp,以及 Chrome 原生的document.modelContext),因此 Agent 只读取任务所需的内容。 - 普通模式——同一家商店作为普通网站运行;Agent 解析完整 HTML 页面,这也是目前每个 Agent 都必须采用的方式。
基准测试(150 件商品的目录,任务相同):操作字节数减少 79%,输入 token 减少 42%,两种模式下的 8/8 项任务均正确完成。 DOM 模式在小型目录上表现更佳,随后迅速崩溃;WebMCP 则随着时间推移优势愈发明显。交叉点报告:report.html → WebMCP_Comparison_Report.pdf。
运行
python3 server.py # plain mode → http://localhost:9501
MCP=1 PORT=9502 python3 server.py # WebMCP mode → http://localhost:9502 + /mcp
仅使用标准库(http.server、json、uuid、threading)——无需运行 pip install,无依赖项。
在线演示
- 普通模式:https://demonomcp.converso.work
- WebMCP:https://demowithmcp.converso.work(`.well-known/mcp` 发现端点,
/mcp端点) - 启动资料包(演示文稿、白皮书、报告):https://demowithmcp.converso.work/launch.html
Chrome 原生 WebMCP 测试(2026 年 10 月 13 日)
Chrome 154 + --enable-features=WebMCP 会在 HTTPS 来源中公开 document.modelContext(不包括 about:blank)。
- 通过 IMPERATIVE API(
registerTool)注册了包含 5 个工具的商店契约:search_products、add_to_cart、get_cart、checkout(由服务端支持;所有 fetch 均在页面内完成)。 - 已验证标准客户端流程:通过
getTools()发现工具 → 调用executeTool()→ 下单 1017/1018,T2/T4/T8 均挑选正确(HP Pavilion 14、Razer DeathAdder、OnePlus 12R)。 - 发现并解决了 154 版构建中的问题:
executeTool(tool, args)要求 args 为 JSON 字符串(对象形式会抛出 "Failed to parse input arguments");返回值也为 JSON 字符串——两端都要调用 JSON.parse。- 工具不能使用相同名称重复注册(InvalidStateError)——重新加载页面即可重置。
- 标志/功能名称:无头模式下
--enable-features=WebMCP有效;文档中的chrome://flags/#enable-webmcp-testing是手动设置路径。注意:API 为document.modelContext(自 2026 年 7 月的构建版本起,已从 navigator 移出)。
- 要点:该演示的工具契约兼容 Chrome 原生 WebMCP,而不仅是我们的 JSON-RPC 适配层。Chrome 发布客户端 Agent(Gemini-in-Chrome)后,这家商店便已做好迎接 Agent 的准备。
仓库布局
| 路径 | 内容 |
|---|---|
server.py | 完整实现:商店 + 购物车 + 订单 + MCP 传输(MCP=1)+ 静态内容/报告服务 |
catalog.json / catalog_10.json | 150 件商品 / 10 件商品的演示目录 |
compare.py、compare_llm.py、browser_llm.py | 基准测试工具(DOM 模式 Agent、LLM token 统计、浏览器原生流程) |
make_report.py | 从 results.json / agg_150_vs_30.json 重新生成 HTML/PDF 报告 |
whitepaper.html、report*.html、*.pdf、chart_*.png | 策略与证据资料(包含启动演示文稿) |
weekly_recap.py | 计数器 + 实时 URL 摘要(供运维 cron 使用) |
许可证
MIT。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。