WebMCP Demo Store
Loja de referência WebMCP: o mesmo catálogo de 150 produtos exposto a agentes de IA via chamadas de ferramentas MCP em vez de raspagem de DOM - verificado por benchmark com 79% menos bytes de ação, 42% menos tokens de entrada, 8/8 tarefas corretas.
Documentação
WebMCP Demo Store — servidor de arquivo único, dois modos, um benchmark
Mesma loja, mesmas ferramentas, dois modos de entrega:
- Modo WebMCP — a página expõe seu catálogo por meio de chamadas de ferramentas MCP (MCP-over-HTTP
/mcp, além dodocument.modelContextnativo do Chrome), para que um agente leia apenas o que a tarefa precisa. - Modo simples — a mesma loja como um site comum; o agente analisa páginas HTML completas, como todo agente precisa fazer hoje.
Benchmark (catálogo de 150 produtos, tarefas idênticas): 79% menos bytes de ação, 42% menos tokens de entrada, 8/8 tarefas corretas em ambos os modos. O modo DOM vence em catálogos pequenos e depois colapsa; o WebMCP vence com a idade. Relatório de cruzamento: report.html → WebMCP_Comparison_Report.pdf.
Como executar
python3 server.py # plain mode → http://localhost:9501
MCP=1 PORT=9502 python3 server.py # WebMCP mode → http://localhost:9502 + /mcp
Somente stdlib (http.server, json, uuid, threading) — sem pip install, sem dependências.
Demonstrações ao vivo
- simples: https://demonomcp.converso.work
- WebMCP: https://demowithmcp.converso.work (descoberta
.well-known/mcp, endpoint/mcp) - pacote de lançamento (deck, whitepaper, relatórios): https://demowithmcp.converso.work/launch.html
Teste WebMCP nativo do Chrome (13 out 2026)
Chrome 154 + --enable-features=WebMCP expõe document.modelContext em origens HTTPS (about:blank excluído).
- Contrato de loja com 5 ferramentas registrado via API IMPERATIVA (
registerTool): search_products, add_to_cart, get_cart, checkout (com suporte do servidor; todas as buscas na página). - Fluxo padrão do cliente verificado: descoberta
getTools()→ chamadasexecuteTool()→ pedidos 1017/1018 feitos, seleções T2/T4/T8 corretas (HP Pavilion 14, Razer DeathAdder, OnePlus 12R). - Peculiaridades do build 154 encontradas e contornadas:
executeTool(tool, args)exige argumentos como uma string JSON (a forma de objeto lança "Failed to parse input arguments"); os valores de retorno também são strings JSON — use JSON.parse em ambos os lados.- Ferramentas não podem ser re-registradas com o mesmo nome (InvalidStateError) — recarregue a página para redefinir.
- Nome do sinalizador/recurso:
--enable-features=WebMCPfunciona em modo headless; ochrome://flags/#enable-webmcp-testingda documentação é o caminho manual. Observação: a API édocument.modelContext(movida do navigator desde o build de julho de 2026).
- Conclusão: o contrato de ferramentas da demo é compatível com o WebMCP nativo do Chrome, não apenas com nosso shim JSON-RPC. Quando o Chrome lançar o agente cliente (Gemini-in-Chrome), a loja já estará pronta para agentes.
Estrutura do repositório
| caminho | o quê |
|---|---|
server.py | tudo: loja + carrinho + pedidos + transporte MCP (MCP=1) + serviço de estáticos/relatórios |
catalog.json / catalog_10.json | catálogos de demonstração com 150 produtos / 10 produtos |
compare.py, compare_llm.py, browser_llm.py | harnesses de benchmark (agente em modo DOM, contabilidade de tokens LLM, fluxo nativo do navegador) |
make_report.py | regenera os relatórios HTML/PDF a partir de results.json / agg_150_vs_30.json |
whitepaper.html, report*.html, *.pdf, chart_*.png | artefatos de estratégia + evidências (deck de lançamento incluído) |
weekly_recap.py | contadores + resumo de URL ao vivo (usado pelo cron de operações) |
Licença
MIT.