Machen Sie Ihre Website agentenfähig.
KI-Agenten lesen Ihre Seiten längst. Sehen Sie, was bei ihnen ankommt, und geben Sie ihnen mit einer Zeile echte Tools.
8.500+ Websites sprechen schon WebMCP.
Klicken Sie auf ein Logo, um die Website live zu scannen.
Zählung: Live-Websites im webmcp.com-Verzeichnis (Stand 2026-11-05). Der strengere Known-Good-Index sah beim Ausführen der Seiten 541 Websites Tools registrieren (2026-11-04). Logos am 2026-11-07 mit dem Scanner geprüft; sie gehören ihren Inhabern, es besteht keine Verbindung.
Warum WebMCP?
Geben Sie Agenten Verträge, keine Screenshots.
Mit WebMCP übergibt Ihre Seite KI-Agenten typisierte Tools, die im eigenen Tab des Nutzers laufen. Was sich dadurch ändert, die stärksten Belege zuerst.
Agenten, die ans Ziel kommen
Heute
Auf Live-Websites scheiterte der beste getestete Agent an rund 4 von 10 Aufgaben, meist an Filtern, Sortierung und Navigation.
Mit WebMCP
Agenten rufen ein Tool mit typisierter Eingabe auf, statt zu raten, welcher Button was tut.
Quellen Online-Mind2Web, 2025 WindTunnel (nekuda) Unser Benchmark
Ein Bruchteil der Tokens
Heute
Ein einziger Seiten-Snapshot kann 12.000 bis 77.000 Tokens kosten, und der Agent schickt ihn bei jedem Schritt erneut.
Mit WebMCP
Ein Aufruf liefert nur die angefragten Daten: in unserem Benchmark bis zu 97× weniger Tokens auf Cloudflare (im besten Fall).
Sekunden statt Minuten
Heute
Schauen, überlegen, klicken, wiederholen: Bei schwierigen Live-Aufgaben liefen Agenten bis zu 44 Minuten.
Mit WebMCP
Ein Aufruf ersetzt eine ganze Klickkette: im Benchmark von WindTunnel im Median 3,4× schneller.
Kein neuer Server. Kein OAuth.
Heute
Wer Agenten eine API anbieten will, braucht meist ein eigenes Backend, doppelten State und einen Auth-Flow.
Mit WebMCP
Tools sind Ihr Frontend-Code und laufen mit der Session, die der Nutzer bereits hat. Shopify setzt es genau so ein.
Quellen WebMCP-Explainer Shopify Cloudflare
Der Nutzer behält die Kontrolle
Heute
Agenten handeln im Verborgenen oder schicken den Nutzer woandershin.
Mit WebMCP
Der Agent arbeitet auf der Seite, die der Nutzer sieht, und Tools können Aktionen kennzeichnen, die eine Bestätigung brauchen.
Quellen WebMCP-Entwurf Shopify-Checkout
Warenkorb und Formular bleiben
Heute
Eine Backend-API sieht weder Warenkorb noch Formular oder Auswahl im Tab des Nutzers.
Mit WebMCP
Tools arbeiten mit dem Zustand, den der Nutzer sieht; die Seite aktualisiert sich, während der Agent arbeitet.
Quellen Shopify
Sie bestimmen, was Agenten tun
Heute
Ein Agent, der die Seite liest, kann alles anklicken, was auch der Nutzer anklicken kann.
Mit WebMCP
Sie veröffentlichen die Aktionen, ihre Eingaben und Ihre eigene Validierung.
Quellen WebMCP-Entwurf
Kleiner Aufwand, kein Risiko
Heute
Agentenfähigkeit klingt nach einem großen Projekt.
Mit WebMCP
Ein paar Tool-Registrierungen. Browser ohne WebMCP überspringen sie, und ein Header schaltet sie ab.
Quellen WebMCP-Entwurf
WebMCP ist ein Entwurf der W3C Community Group (2. November 2026), kein W3C-Standard, und läuft in Chrome als Origin Trial. Annotationen sind Hinweise, die eine Website deklariert, keine Garantien.
Benchmark
Gleicher Agent. Gleiche Frage.
Ein Agent liest, klickt und füllt Formulare anhand von Seiten-Snapshots aus; der andere ruft die WebMCP-Tools der Website auf. Wählen Sie ein Modell; größte Einsparungen zuerst.
GPT-6 Luna (OpenAI)
Ausgewählte Fälle: 21 von 35 Fragen, bei denen WebMCP höchstens die Hälfte der Tokens brauchte. Alle Ergebnisse sind öffentlich, oder Sie führen den Benchmark selbst mit just bench aus.
Cloudflare
“How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?”
developers.cloudflare.com Öffnen (öffnet Cloudflare)113k
Tokens
13.1s · 10.0 Schritte · $4.45 pro 1.000
Gelöst 3/397× weniger Tokens
1.2k
Tokens
3.8s · 2.0 Schritte · $0.15 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit? | 113k | 1.2k | 100% | 100% |
| Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to? | 22k | 1.0k | 100% | 100% |
| Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV? | 21k | 1.0k | 100% | 100% |
| Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size. | 21k | 1.5k | 100% | 100% |
| Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit. | 21k | 2.8k | 100% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit? | 13.1s | 3.8s | 100% | 100% |
| Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to? | 6.8s | 4.7s | 100% | 100% |
| Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV? | 7.0s | 3.5s | 100% | 100% |
| Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size. | 6.4s | 4.9s | 100% | 100% |
| Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit. | 6.4s | 9.2s | 100% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit? | 10.0 | 2.0 | 100% | 100% |
| Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to? | 6.0 | 2.0 | 100% | 100% |
| Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV? | 6.0 | 2.0 | 100% | 100% |
| Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size. | 6.0 | 2.3 | 100% | 100% |
| Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit. | 6.0 | 3.7 | 100% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit? | $4.45 | $0.15 | 100% | 100% |
| Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to? | $0.94 | $0.12 | 100% | 100% |
| Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV? | $0.80 | $0.12 | 100% | 100% |
| Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size. | $0.81 | $0.20 | 100% | 100% |
| Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit. | $0.86 | $0.32 | 100% | 100% |
Cloudflare registriert 2 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
search | Full-text search across Cloudflare developer documentation. Returns matching pages with titles, URLs, and content snippets. Use this to find documentation on any Cloudflare product or feature. search({"query":"Workers Free plan requests per day limit 100,000 requests daily"}) search({"query":"D1 maximum database size Workers Paid plan single database"}) search({"query":"Cloudflare Workers KV maximum size of a single value"}) search({"query":"Cloudflare Workers KV maximum key size limit key length 512 bytes"}) search({"query":"Cloudflare Queues per-message size limit maximum message size","limit":5}) search({"query":"site:developers.cloudflare.com/queues/platform/limits/ message size 128 KB per message Cloudflare Queues","limit":5}) search({"query":"Queues Limits \"Message size\" Cloudflare 128 KB","limit":10}) search({"query":"\"Message size\" \"Queues\" \"128 KB\" Cloudflare","limit":5}) | Genutzt |
list-directories | Returns a list of all Cloudflare products available in the developer documentation, including each product's name, docs URL, short description, and category group. Use this to discover what products exist before searching or navigating. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine Live-Website: Sie liefert eigene WebMCP-Tools mit.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchNotion
“I'm writing long paragraphs into a Notion page through the API. What's the maximum number of characters a single rich text object's text content can have in a request?”
developers.notion.com Öffnen (öffnet Notion)64k
Tokens
14.0s · 10.7 Schritte · $2.37 pro 1.000
Gelöst 3/361× weniger Tokens
1.0k
Tokens
3.0s · 2.0 Schritte · $0.13 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Notion: I'm writing long paragraphs into a Notion page through the API. What's the maximum number of characters a single rich text object's text content can have in a request? | 64k | 1.0k | 100% | 100% |
| Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise? | 57k | 1.1k | 33% | 100% |
| Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body? | 38k | 1.0k | 100% | 100% |
| Notion: I'm paginating through results from the Notion API. What's the largest page_size I can request per call on the list endpoints? | 37k | 1.1k | 67% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Notion: I'm writing long paragraphs into a Notion page through the API. What's the maximum number of characters a single rich text object's text content can have in a request? | 14.0s | 3.0s | 100% | 100% |
| Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise? | 17.3s | 3.1s | 33% | 100% |
| Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body? | 12.2s | 2.6s | 100% | 100% |
| Notion: I'm paginating through results from the Notion API. What's the largest page_size I can request per call on the list endpoints? | 11.1s | 3.0s | 67% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Notion: I'm writing long paragraphs into a Notion page through the API. What's the maximum number of characters a single rich text object's text content can have in a request? | 10.7 | 2.0 | 100% | 100% |
| Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise? | 11.7 | 2.0 | 33% | 100% |
| Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body? | 9.3 | 2.0 | 100% | 100% |
| Notion: I'm paginating through results from the Notion API. What's the largest page_size I can request per call on the list endpoints? | 9.3 | 2.0 | 67% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Notion: I'm writing long paragraphs into a Notion page through the API. What's the maximum number of characters a single rich text object's text content can have in a request? | $2.37 | $0.13 | 100% | 100% |
| Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise? | $1.79 | $0.13 | 33% | 100% |
| Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body? | $1.32 | $0.12 | 100% | 100% |
| Notion: I'm paginating through results from the Notion API. What's the largest page_size I can request per call on the list endpoints? | $1.13 | $0.13 | 67% | 100% |
Notion registriert 5 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
search_docs | Search the Notion Docs documentation for relevant pages and content. search_docs({"query":"maximum number characters single rich text object text content request API rich_text 2000"}) search_docs({"query":"requests per minute per connection plans other than Business Enterprise Notion API rate limit"}) search_docs({"query":"too many requests error response body error code string rate limit"}) search_docs({"query":"largest page_size request per call list endpoints pagination maximum 100"}) | Genutzt |
get_site_overview | Get an outline of the Notion Docs documentation, grouped by section, with a short description of each page. May be truncated for large sites; use search_docs to find pages not listed. | –Nicht genutzt |
navigate_page | Navigate the current browser tab to a Notion Docs documentation page. | –Nicht genutzt |
read_page | Read the full content of a Notion Docs documentation page as markdown. | –Nicht genutzt |
read_skill | Read a Notion Docs agent skill document by name. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine Live-Website: Sie liefert eigene WebMCP-Tools mit.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchspecification.website
“How long should a page's meta description be, according to this spec?”
specification.website Öffnen (öffnet specification.website)43k
Tokens
13.2s · 11.3 Schritte · $1.39 pro 1.000
Gelöst 3/311× weniger Tokens
4.0k
Tokens
3.5s · 3.0 Schritte · $0.39 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| specification.website: How long should a page's meta description be, according to this spec? | 43k | 4.0k | 100% | 100% |
| specification.website: What's the minimum tap target size this spec requires for buttons and other interactive controls? | 41k | 4.4k | 67% | 100% |
| specification.website: What max-age should I put in my HSTS header for production, per this spec? | 18k | 3.7k | 100% | 100% |
| specification.website: What INP value does this spec set as the target for good responsiveness? | 13k | 3.3k | 100% | 100% |
| specification.website: What minimum contrast ratio does this site's spec require for normal-size body text? | 13k | 3.9k | 100% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| specification.website: How long should a page's meta description be, according to this spec? | 13.2s | 3.5s | 100% | 100% |
| specification.website: What's the minimum tap target size this spec requires for buttons and other interactive controls? | 13.1s | 3.5s | 67% | 100% |
| specification.website: What max-age should I put in my HSTS header for production, per this spec? | 8.0s | 3.9s | 100% | 100% |
| specification.website: What INP value does this spec set as the target for good responsiveness? | 7.2s | 3.0s | 100% | 100% |
| specification.website: What minimum contrast ratio does this site's spec require for normal-size body text? | 5.9s | 3.7s | 100% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| specification.website: How long should a page's meta description be, according to this spec? | 11.3 | 3.0 | 100% | 100% |
| specification.website: What's the minimum tap target size this spec requires for buttons and other interactive controls? | 10.3 | 3.0 | 67% | 100% |
| specification.website: What max-age should I put in my HSTS header for production, per this spec? | 6.7 | 3.0 | 100% | 100% |
| specification.website: What INP value does this spec set as the target for good responsiveness? | 6.0 | 2.7 | 100% | 100% |
| specification.website: What minimum contrast ratio does this site's spec require for normal-size body text? | 6.0 | 3.0 | 100% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| specification.website: How long should a page's meta description be, according to this spec? | $1.39 | $0.39 | 100% | 100% |
| specification.website: What's the minimum tap target size this spec requires for buttons and other interactive controls? | $1.34 | $0.35 | 67% | 100% |
| specification.website: What max-age should I put in my HSTS header for production, per this spec? | $0.76 | $0.31 | 100% | 100% |
| specification.website: What INP value does this spec set as the target for good responsiveness? | $0.59 | $0.29 | 100% | 100% |
| specification.website: What minimum contrast ratio does this site's spec require for normal-size body text? | $0.59 | $0.30 | 100% | 100% |
specification.website registriert 5 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
search_spec | Search The Website Specification for matching topics. Returns ranked results with title, status, category, canonical URL, and a one-line summary. Use this when the user asks about a topic by keyword (e.g. "CSP", "alt text", "llms.txt"). search_spec({"query":"meta description recommended length characters"}) search_spec({"query":"minimum tap target size interactive controls buttons"}) search_spec({"query":"HSTS max-age production"}) search_spec({"query":"INP target good responsiveness value","limit":5}) search_spec({"query":"minimum contrast ratio normal-size body text WCAG"}) | Genutzt |
get_topic | Fetch the Markdown for one spec page by its slug, returned as lines you can page through. Use this after search_spec or list_topics to read the canonical guidance. get_topic({"slug":"meta-description"}) get_topic({"slug":"touch-target-size"}) get_topic({"slug":"hsts","limit":200}) get_topic({"slug":"color-contrast"}) | Genutzt |
list_topics | List spec topics, optionally filtered by category and/or status. Returns title, status, category, summary, and URL per topic. Use this when the user wants the canonical list (e.g. "all required SEO topics"). Results are paged — follow page/page_size to walk the whole list. | –Nicht genutzt |
open_checklist | Navigate the user to the full spec checklist page. Optionally jumps to a category section via URL hash. UI action — does not return data. | –Nicht genutzt |
open_search | Open the on-page ⌘K search overlay so the user can search the spec interactively. Optionally pre-fills a query. UI action — does not return results; use search_spec for that. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine Live-Website: Sie liefert eigene WebMCP-Tools mit.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchKiln & Co
“Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.”
12k
Tokens
7.7s · 6.0 Schritte · $0.45 pro 1.000
Gelöst 3/36.0× weniger Tokens
2.1k
Tokens
3.9s · 3.7 Schritte · $0.26 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Kiln & Co (lokale Test-Website): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total. | 12k | 2.1k | 100% | 100% |
| Kiln & Co (lokale Test-Website): I need a green gift under $30 that I can buy right now. What do you have? | 5.7k | 1.1k | 100% | 100% |
| Kiln & Co (lokale Test-Website): Add two of the cheapest blue mug to my cart. | 5.4k | 1.6k | 100% | 100% |
| Kiln & Co (lokale Test-Website): Put the most expensive teapot you sell in my cart. | 4.8k | 1.5k | 100% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Kiln & Co (lokale Test-Website): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total. | 7.7s | 3.9s | 100% | 100% |
| Kiln & Co (lokale Test-Website): I need a green gift under $30 that I can buy right now. What do you have? | 6.6s | 3.3s | 100% | 100% |
| Kiln & Co (lokale Test-Website): Add two of the cheapest blue mug to my cart. | 5.1s | 3.1s | 100% | 100% |
| Kiln & Co (lokale Test-Website): Put the most expensive teapot you sell in my cart. | 3.9s | 3.2s | 100% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Kiln & Co (lokale Test-Website): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total. | 6.0 | 3.7 | 100% | 100% |
| Kiln & Co (lokale Test-Website): I need a green gift under $30 that I can buy right now. What do you have? | 4.0 | 2.0 | 100% | 100% |
| Kiln & Co (lokale Test-Website): Add two of the cheapest blue mug to my cart. | 4.3 | 3.0 | 100% | 100% |
| Kiln & Co (lokale Test-Website): Put the most expensive teapot you sell in my cart. | 3.7 | 3.0 | 100% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Kiln & Co (lokale Test-Website): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total. | $0.45 | $0.26 | 100% | 100% |
| Kiln & Co (lokale Test-Website): I need a green gift under $30 that I can buy right now. What do you have? | $0.39 | $0.19 | 100% | 100% |
| Kiln & Co (lokale Test-Website): Add two of the cheapest blue mug to my cart. | $0.23 | $0.20 | 100% | 100% |
| Kiln & Co (lokale Test-Website): Put the most expensive teapot you sell in my cart. | $0.25 | $0.17 | 100% | 100% |
Kiln & Co registriert 4 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
search_products | Search the catalog. Every filter is optional; with none, returns every product. Prices are USD. search_products({"query":"Stoneware Teapot"}) search_products({"query":"Speckled Bowl"}) search_products({"color":"green","max_price":30,"sort":"price_asc"}) search_products({"category":"mug","color":"blue","sort":"price_asc"}) search_products({"category":"teapot","sort":"price_desc"}) | Genutzt |
add_to_cart | Add a product to the cart by sku. Adding a sku already in the cart increases its quantity. add_to_cart({"sku":"TPT-01","quantity":1}) add_to_cart({"sku":"BWL-01","quantity":1}) add_to_cart({"sku":"MUG-03","quantity":2}) add_to_cart({"sku":"TPT-02","quantity":1}) | Genutzt |
get_cart | Return the cart: items with quantity and the total in USD. | –Nicht genutzt |
get_page_context | Describe the page the user is on: title, URL, language, meta description, heading outline and the text the user has selected. Use it for the page's structure or the user's selection; to find a fact on the page, call search_page instead. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine lokale Test-Website: Ihre Tools stammen von webmcpx.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchAllbirds
“I bought my Allbirds in the US but I'm moving to London next month. Can I exchange them for another size over there?”
www.allbirds.com Öffnen (öffnet Allbirds)27k
Tokens
17.3s · 9.3 Schritte · $1.13 pro 1.000
Gelöst 2/34.4× weniger Tokens
6.0k
Tokens
5.3s · 2.0 Schritte · $0.26 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Allbirds: I bought my Allbirds in the US but I'm moving to London next month. Can I exchange them for another size over there? | 27k | 6.0k | 67% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Allbirds: I bought my Allbirds in the US but I'm moving to London next month. Can I exchange them for another size over there? | 17.3s | 5.3s | 67% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Allbirds: I bought my Allbirds in the US but I'm moving to London next month. Can I exchange them for another size over there? | 9.3 | 2.0 | 67% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Allbirds: I bought my Allbirds in the US but I'm moving to London next month. Can I exchange them for another size over there? | $1.13 | $0.26 | 67% | 100% |
Allbirds registriert 12 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
ask_business | Ask the store a question about its policies and services: returns, refunds and exchanges, shipping and delivery, privacy, terms, subscriptions, contact details and opening hours, or FAQ topics such as gift wrapping. The store answers it: from its own knowledge base when the store offers Ask, otherwise from its published policies, FAQ pages and articles. Put the shopper's question in ask.query in their own words, one question per call; name the topic when the shopper only implies it (e.g. a question about sending back a gift is a returns question). Read-only: it does not change the cart, place orders, or start returns. For products, prices and availability, use search_catalog or get_product. Examples of questions: - What is your return policy? - How long does shipping to Canada take? - What is your phone number? - What are your hours of operation? - Do you offer gift wrapping? ask_business({"ask":{"query":"Can I exchange Allbirds bought in the US for another size in London, UK?","context":{"intent":"moving to London next month; asking about international size exchanges"}}}) | Genutzt |
browse_store | Browse OR navigate to store collections. Set navigate=true whenever the user wants to be taken to a collection page in the browser (triggers: "browse to", "go to", "show me", "open", "take me to", "navigate to" a collection or category). With navigate=false (default), returns collection or product data without changing the page — use this only when the user is asking a question about the catalog, not asking to view it. Without a collection handle, lists all collections. With a handle, returns products from that collection; use "all" to browse everything. Does NOT add anything to the cart; use create_cart or update_cart for cart changes. Prefer this over search_catalog when the user names a category, collection, or wants to explore. With navigate=true this MOVES the browser to the collection page; the tool result confirms the destination, and no further navigation is needed to show it. | –Nicht genutzt |
cancel_cart | Remove all items from the cart in one step. Use when the user wants to empty their cart or start over. | –Nicht genutzt |
create_cart | Create the shopper's cart with the given items, for a shopper whose cart has no items yet. It is the tool for a shopper asking to add or buy something when the cart is empty, and that request is all the authorization it needs. Each line item names a ProductVariant GID in item.id (variant_id from search_catalog or browse_store, or variants[].id from get_product for specific options) and a quantity; every item from one request fits in one call. When the cart already has items, nothing is created or changed: the result is that existing cart with an error message, and update_cart can extend it with its current lines plus the new ones. Returns the whole resulting cart, including its id and line ids. Repeating a call with the same items leaves the cart as it is. | –Nicht genutzt |
get_cart | Get the shopper's current cart: its id, every line (line id, product and variant titles, variant id, handle, URL, image, unit price, quantity, line price) and the totals. Everything needed to describe the cart to the user in natural language, without a follow-up get_product call per line. It is also where a change to an existing cart starts from: update_cart takes the cart's id and the complete set of lines the cart should hold, and create_cart applies only to a cart with no items. Works from any page. | –Nicht genutzt |
get_product | Get product details, OR navigate the browser to the product page. Set catalog.navigate=true whenever the user wants to see/view the product in the browser (triggers: "show me", "open", "view", "go to", "take me to", "navigate to" a product). Set catalog.navigate=false (default) only when you need data (description, options, variants, prices, availability) to answer a question or to prepare a cart change — the browser stays on the current page. Defaults to the current page's product if no catalog.id is provided. Does NOT add anything to the cart; use create_cart or update_cart for that. To view a specific variant (color/size/etc.) in the browser, use show_variant instead — it accepts partial option selections like "purple" without needing every option. To add a specific variant to the cart, call get_product with catalog.selected_options to get its variant id. With catalog.navigate=true this MOVES the browser to the product page; the tool result confirms the destination, and no further navigation is needed to show it. | –Nicht genutzt |
get_ucp_profile | Get this store's Universal Commerce Protocol (UCP) profile, as served at /.well-known/ucp: the UCP version, the services the store offers with their endpoints (e.g. the store's UCP MCP server), its capabilities, and its payment handlers. Use it to discover how to continue a purchase with this store over UCP, or to check which platform operates the store. Read-only; works from any page. | –Nicht genutzt |
manage_orders | Navigate to the customer's order history page. Use when the user asks about past orders, order status, tracking, or returns. The user will be prompted to log in if not already authenticated. This MOVES the browser to the order history page; the tool result confirms the destination, and no further navigation is needed to show it. | –Nicht genutzt |
proceed_to_checkout | Proceed to checkout. Verifies the cart is not empty, then MOVES the browser to the checkout page. The tool result confirms the destination, and no further navigation is needed to show it. | –Nicht genutzt |
search_catalog | Search the store catalog for products, collections, articles, and pages. Does NOT add anything to the cart; use create_cart or update_cart for cart changes. Each product carries variant_id, its selected or first available variant. If the user asks for a specific product variant, call get_product after search_catalog to get that variant's id, or use show_variant to display it. | –Nicht genutzt |
show_variant | Navigate the browser to a product page, with a specific variant OR a partial option filter selected. Use for view intents: "show me", "open", "view", "go to", "take me to" a specific product configuration. Accepts EITHER variant_id (fully specified variant) OR selected_options (partial, e.g. only Color=Purple) — with partial options the first matching available variant is picked automatically, so DO NOT ask the user for missing options when their intent is to view. Does NOT add anything to the cart; use create_cart or update_cart for cart changes. For cart operations you still need a full variant_id — call get_product with the full option combination first. This MOVES the browser to the exact variant page with the variant pre-selected; the tool result confirms the destination, and no further navigation is needed to show it. | –Nicht genutzt |
update_cart | Set the shopper's cart to exactly the given line items. This is a full replacement, not a patch: afterwards the cart holds these lines and only these. - A listed line with its line_items[].id keeps its place and is set to the given quantity, which is absolute (2 means 2, not 2 more). - A listed item without a line id is added, or, when that variant is already on one line of the cart, sets that line's quantity. - A line in the cart that is not listed is removed. It takes the cart's lines as most recently returned by get_cart, create_cart or update_cart. When the cart has changed since then (for example, the shopper edited it on the page, or a new cart replaced it), or an id is given that is not the shopper's current cart, nothing changes and the result is the current cart with an error message. Since the outcome depends only on the lines sent, repeating a call leaves the cart as it is. An empty line_items list empties the cart; leaving line_items out leaves the lines as they are. Returns the whole resulting cart, including its line ids, and messages about the call. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine Live-Website: Sie liefert eigene WebMCP-Tools mit.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchOrbit docs
“Which environment variable makes Orbit read its config file from a different path?”
2.5k
Tokens
3.4s · 2.0 Schritte · $0.15 pro 1.000
Gelöst 3/32.5× weniger Tokens
989
Tokens
3.4s · 2.0 Schritte · $0.12 pro 1.000
Gelöst 3/3| Frage | Ohne WebMCP: Tokens | Mit webmcpx: Tokens | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Orbit docs (lokale Test-Website): Which environment variable makes Orbit read its config file from a different path? | 2.5k | 989 | 100% | 100% |
| Orbit docs (lokale Test-Website): By default, how many past releases does Orbit keep for rollback? | 2.5k | 992 | 100% | 100% |
| Frage | Ohne WebMCP: Zeit | Mit webmcpx: Zeit | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Orbit docs (lokale Test-Website): Which environment variable makes Orbit read its config file from a different path? | 3.4s | 3.4s | 100% | 100% |
| Orbit docs (lokale Test-Website): By default, how many past releases does Orbit keep for rollback? | 2.1s | 2.1s | 100% | 100% |
| Frage | Ohne WebMCP: Schritte | Mit webmcpx: Schritte | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Orbit docs (lokale Test-Website): Which environment variable makes Orbit read its config file from a different path? | 2.0 | 2.0 | 100% | 100% |
| Orbit docs (lokale Test-Website): By default, how many past releases does Orbit keep for rollback? | 2.0 | 2.0 | 100% | 100% |
| Frage | Ohne WebMCP: Kosten | Mit webmcpx: Kosten | Ohne WebMCP: gelöst | Mit webmcpx: gelöst |
|---|---|---|---|---|
| Orbit docs (lokale Test-Website): Which environment variable makes Orbit read its config file from a different path? | $0.15 | $0.12 | 100% | 100% |
| Orbit docs (lokale Test-Website): By default, how many past releases does Orbit keep for rollback? | $0.15 | $0.12 | 100% | 100% |
Orbit docs registriert 3 WebMCP-Tools
so, wie der Agent sie sah · 2026-11-07
| Tool | Beschreibung | Genutzt |
|---|---|---|
search_page | Find passages on the current page that match a query. Returns up to `limit` passages ranked by relevance, each with its section heading and a link to it. Prefer it to reading the whole page when looking for something specific. search_page({"query":"environment variable config file path Orbit","limit":5}) search_page({"query":"past releases rollback default","limit":5}) | Genutzt |
fetch_as_markdown | Return the main content of the current page as Markdown. Long pages come in parts: when `truncated` is true, call again with `cursor` set to `next_cursor`. | –Nicht genutzt |
get_page_context | Describe the page the user is on: title, URL, language, meta description, heading outline and the text the user has selected. Use it for the page's structure or the user's selection; to find a fact on the page, call search_page instead. | –Nicht genutzt |
- gpt-6-luna, Reasoning medium, Headless Chrome. Gleicher Prompt und gleiches Schrittlimit in beiden Varianten; 3 Läufe pro Frage und Variante.
- Ohne WebMCP: ein DOM-Snapshot-Agent, der liest, klickt und Formulare ausfüllt.
- Mit webmcpx: nur die Tools, die die Seite registriert.
- Bewertet anhand der Fakten in der Antwort und des Seitenzustands. Kein LLM-Judge.
- Eine lokale Test-Website: Ihre Tools stammen von webmcpx.
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
OPENAI_API_KEY=sk-... just benchWebMCP vs. MCP
Dieselbe Tool-Idee. Ein anderer Ort.
WebMCP übernimmt das Tool-Modell von MCP, ist aber eine Browser-API und nicht das MCP-Protokoll. Beide ergänzen sich.
| Aspekt | WebMCP | MCP |
|---|---|---|
| Wo Tools laufen | Im JavaScript Ihrer Seite, im Tab des Nutzers. | In einem Serverprozess, lokal (stdio) oder remote. |
| Aufruf durch Agenten | Eine Browser-API, document.modelContext; der Browser vermittelt jeden Aufruf. Kein JSON-RPC. | JSON-RPC 2.0 über stdio oder Streamable HTTP. |
| Was Sie betreiben | Ihr bestehendes Frontend. Kein neuer Server. | Einen MCP-Server, den Sie hosten und betreiben. |
| Auth | Die Session, mit der der Nutzer schon angemeldet ist. Es müssen keine Tokens ausgestellt werden. | OAuth-basierte Autorisierung für Remote-Server. |
| Auffindbarkeit | Sobald die Seite offen ist. Vor dem Besuch gibt es nichts zu finden. | tools/list an einem bekannten Endpunkt, dazu öffentliche Registries. |
| Lebensdauer | Solange die Seite offen ist. | Immer aktiv, ganz ohne Browser. |
| Der Nutzer | Anwesend, auf derselben Seite wie der Agent. | Optional: läuft auch headless. |
| Umfang | Nur Tools, mit Ein- und Ausgabeschemas. | Tools, Resources und Prompts, dazu Elicitation und Extensions. |
| Tool-Hinweise | readOnlyHint, consequentialHint, untrustedContentHint. Standardmäßig Same-Origin. | readOnlyHint, destructiveHint, idempotentHint, openWorldHint. |
| Status | Entwurf der W3C Community Group; Origin Trial in Chrome. | Ein Projekt der Linux Foundation, über 10.000 öffentliche Server. |
Beides nutzen
MCP bedient Agenten, die Ihre Website nie öffnen. WebMCP bedient Agenten, die in Ihrem Tab arbeiten, neben Ihrem Nutzer. Betreiben Sie beides auf einem Backend: Shopify macht es bereits so.
Quellen WebMCP-Entwurf WebMCP-Explainer MCP-Spezifikation Shopify nutzt beides
Eine Zeile. Agentenfähig.
Fügen Sie sie vor </body> ein. Wo WebMCP fehlt, bewirkt sie nichts.
<script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/src/auto.js"></script>oder npm i webmcpx für npmoder npx skills add webmcpx/webmcpx für Ihren Coding-Agenten
search_pagefindet die Textstellefetch_as_markdownliest Seiten paginiertget_page_contextweiß, wo es ist
~2,7 KB geladen · Rust + WebAssembly · MIT-Lizenz
Aus dem Spec-Tracker