Skip to content

webmcpx benchmark: Claude Haiku 5.5

Leaderboard

How much WebMCP saves, model by model

One agent reads, clicks and fills using page snapshots; the other calls the site's WebMCP tools. Pick a model; biggest savings first.

Ranked by success with WebMCP, then by cost per run.

Selected cases: 20 of 30 questions, where WebMCP used at most half the tokens. All results are public, or run it yourself with just bench.

Claude Haiku 5.5 (Anthropic)

Cloudflare

“How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?”

developers.cloudflare.com (opens Cloudflare)

18×

fewer tokens

49k → 2.7k tokens

Tokens per question, tokens per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: tokensWith WebMCP: tokensWithout WebMCP: solvedWith WebMCP: solved
Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?49k2.7k100%100%
Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit.25k2.6k100%100%
Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to?23k2.7k100%100%
Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV?21k2.5k100%100%
Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size.21k2.9k100%100%
Time per question, seconds per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: timeWith WebMCP: timeWithout WebMCP: solvedWith WebMCP: solved
Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?4.5s3.6s100%100%
Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit.3.5s3.5s100%100%
Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to?2.9s3.2s100%100%
Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV?2.9s2.8s100%100%
Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size.3.2s3.3s100%100%
Steps per question, model turns per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: stepsWith WebMCP: stepsWithout WebMCP: solvedWith WebMCP: solved
Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?3.72.0100%100%
Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit.3.32.0100%100%
Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to?3.02.0100%100%
Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV?3.02.0100%100%
Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size.3.02.0100%100%
Cost per question, USD per task; lower is better. Success rate per arm.
QuestionWithout WebMCP: costWith WebMCP: costWithout WebMCP: solvedWith WebMCP: solved
Cloudflare: How many requests per day can my Workers handle on the Cloudflare Workers Free plan before hitting the limit?$0.0034$0.00029100%100%
Cloudflare: What is the largest message I can send to a Cloudflare Queue? I need the per-message size limit.$0.0017$0.00031100%100%
Cloudflare: I'm on the Workers Paid plan. What's the maximum size a single Cloudflare D1 database can grow to?$0.0009$0.00029100%100%
Cloudflare: What is the maximum size of a single value stored in Cloudflare Workers KV?$0.0014$0.00024100%100%
Cloudflare: How long can a key be in Cloudflare Workers KV? I want to know the maximum key size.$0.00099$0.00033100%100%

The 2 WebMCP tools Cloudflare registers

as the agent saw them · 2026-11-08

ToolDescriptionCalled
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({"limit":5,"query":"Workers Free plan daily request limit"})

search({"limit":5,"query":"Cloudflare Queues maximum message size limit"})

search({"limit":5,"query":"D1 database maximum size limits Workers Paid"})

search({"limit":3,"query":"Workers KV maximum value size limit"})

search({"limit":5,"query":"Workers KV maximum key size limits"})

Called
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.

–Not called
  • claude-haiku-5-5, reasoning medium, headless Chrome. Same prompt and step limit in both arms; 3 runs per question and arm.
  • Without WebMCP: a DOM-snapshot agent that reads, clicks and fills.
  • With WebMCP: only the tools the page registers (its own, or webmcpx’s on our test sites).
  • Graded by facts in the answer and page state. No LLM judge.
  • A live site: it ships its own WebMCP tools.
  • 30 questions on 6 sites, 27 of them read-only; the biggest savings come from the sites' own search tools.
  • 3 runs per question and arm: 3 of 3 solved is evidence, not proof of 100%.
  • Time is the agent loop after the page loaded; cost is the model's API usage at dated list prices, cache included.
  • Every failed run says why in the results (bot check, answer not from the page, step limit…).
reproduce it
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
ANTHROPIC_API_KEY=... just bench --model claude-haiku-5-5 --reasoning-effort medium

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?”

developers.notion.com (opens Notion)

16×

fewer tokens

43k → 2.7k tokens

Tokens per question, tokens per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: tokensWith WebMCP: tokensWithout WebMCP: solvedWith WebMCP: solved
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?43k2.7k100%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?37k2.8k100%100%
Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise?17k2.6k100%100%
Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body?17k5.9k100%100%
Time per question, seconds per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: timeWith WebMCP: timeWithout WebMCP: solvedWith WebMCP: solved
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?5.7s3.0s100%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?5.2s3.7s100%100%
Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise?3.5s2.0s100%100%
Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body?5.3s5.5s100%100%
Steps per question, model turns per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: stepsWith WebMCP: stepsWithout WebMCP: solvedWith WebMCP: solved
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?4.32.0100%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?4.32.0100%100%
Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise?3.32.0100%100%
Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body?3.72.7100%100%
Cost per question, USD per task; lower is better. Success rate per arm.
QuestionWithout WebMCP: costWith WebMCP: costWithout WebMCP: solvedWith WebMCP: solved
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?$0.003$0.00026100%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?$0.0022$0.00027100%100%
Notion: How many requests per minute does the Notion API allow per connection on plans other than Business and Enterprise?$0.0011$0.00015100%100%
Notion: When my Notion integration sends too many requests, what error code string does the API put in the error response body?$0.0012$0.00056100%100%

The 5 WebMCP tools Notion registers

as the agent saw them · 2026-11-08

ToolDescriptionCalled
search_docs

Search the Notion Docs documentation for relevant pages and content.

search_docs({"query":"rich text maximum character length text content limit"})

search_docs({"query":"page_size pagination list endpoints maximum"})

search_docs({"query":"Notion API rate limits requests per minute plans"})

search_docs({"query":"rate limit error code response body"})

Called
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.

–Not called
navigate_page

Navigate the current browser tab to a Notion Docs documentation page.

–Not called
read_page

Read the full content of a Notion Docs documentation page as markdown.

–Not called
read_skill

Read a Notion Docs agent skill document by name.

–Not called
  • claude-haiku-5-5, reasoning medium, headless Chrome. Same prompt and step limit in both arms; 3 runs per question and arm.
  • Without WebMCP: a DOM-snapshot agent that reads, clicks and fills.
  • With WebMCP: only the tools the page registers (its own, or webmcpx’s on our test sites).
  • Graded by facts in the answer and page state. No LLM judge.
  • A live site: it ships its own WebMCP tools.
  • 30 questions on 6 sites, 27 of them read-only; the biggest savings come from the sites' own search tools.
  • 3 runs per question and arm: 3 of 3 solved is evidence, not proof of 100%.
  • Time is the agent loop after the page loaded; cost is the model's API usage at dated list prices, cache included.
  • Every failed run says why in the results (bot check, answer not from the page, step limit…).
reproduce it
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
ANTHROPIC_API_KEY=... just bench --model claude-haiku-5-5 --reasoning-effort medium

specification.website

“How long should a page's meta description be, according to this spec?”

specification.website (opens specification.website)

4.2×

fewer tokens

32k → 7.6k tokens

Tokens per question, tokens per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: tokensWith WebMCP: tokensWithout WebMCP: solvedWith WebMCP: solved
specification.website: How long should a page's meta description be, according to this spec?32k7.6k100%100%
specification.website: What max-age should I put in my HSTS header for production, per this spec?28k7.4k100%100%
specification.website: What minimum contrast ratio does this site's spec require for normal-size body text?23k7.7k100%100%
specification.website: What INP value does this spec set as the target for good responsiveness?15k7.1k100%100%
Time per question, seconds per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: timeWith WebMCP: timeWithout WebMCP: solvedWith WebMCP: solved
specification.website: How long should a page's meta description be, according to this spec?5.0s2.8s100%100%
specification.website: What max-age should I put in my HSTS header for production, per this spec?7.1s5.5s100%100%
specification.website: What minimum contrast ratio does this site's spec require for normal-size body text?3.6s2.7s100%100%
specification.website: What INP value does this spec set as the target for good responsiveness?3.3s3.0s100%100%
Steps per question, model turns per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: stepsWith WebMCP: stepsWithout WebMCP: solvedWith WebMCP: solved
specification.website: How long should a page's meta description be, according to this spec?5.73.0100%100%
specification.website: What max-age should I put in my HSTS header for production, per this spec?5.33.0100%100%
specification.website: What minimum contrast ratio does this site's spec require for normal-size body text?4.03.0100%100%
specification.website: What INP value does this spec set as the target for good responsiveness?3.33.0100%100%
Cost per question, USD per task; lower is better. Success rate per arm.
QuestionWithout WebMCP: costWith WebMCP: costWithout WebMCP: solvedWith WebMCP: solved
specification.website: How long should a page's meta description be, according to this spec?$0.0015$0.00033100%100%
specification.website: What max-age should I put in my HSTS header for production, per this spec?$0.0016$0.00049100%100%
specification.website: What minimum contrast ratio does this site's spec require for normal-size body text?$0.0014$0.00053100%100%
specification.website: What INP value does this spec set as the target for good responsiveness?$0.0012$0.00053100%100%

The 5 WebMCP tools specification.website registers

as the agent saw them · 2026-11-08

ToolDescriptionCalled
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({"limit":5,"query":"meta description length"})

search_spec({"limit":5,"query":"HSTS max-age"})

search_spec({"limit":5,"query":"contrast ratio body text"})

search_spec({"limit":5,"query":"INP Interaction to Next Paint responsiveness"})

search_spec({"limit":5,"query":"Core Web Vitals performance targets"})

Called
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({"limit":200,"slug":"hsts"})

get_topic({"slug":"color-contrast"})

Called
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.

–Not called
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.

–Not called
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.

–Not called
  • claude-haiku-5-5, reasoning medium, headless Chrome. Same prompt and step limit in both arms; 3 runs per question and arm.
  • Without WebMCP: a DOM-snapshot agent that reads, clicks and fills.
  • With WebMCP: only the tools the page registers (its own, or webmcpx’s on our test sites).
  • Graded by facts in the answer and page state. No LLM judge.
  • A live site: it ships its own WebMCP tools.
  • 30 questions on 6 sites, 27 of them read-only; the biggest savings come from the sites' own search tools.
  • 3 runs per question and arm: 3 of 3 solved is evidence, not proof of 100%.
  • Time is the agent loop after the page loaded; cost is the model's API usage at dated list prices, cache included.
  • Every failed run says why in the results (bot check, answer not from the page, step limit…).
reproduce it
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
ANTHROPIC_API_KEY=... just bench --model claude-haiku-5-5 --reasoning-effort medium

Kiln & Co local

“Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.”

3.5×

fewer tokens

22k → 6.2k tokens

Tokens per question, tokens per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: tokensWith WebMCP: tokensWithout WebMCP: solvedWith WebMCP: solved
Kiln & Co (local test site): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.22k6.2k100%100%
Kiln & Co (local test site): Add two of the cheapest blue mug to my cart.10k3.9k100%100%
Kiln & Co (local test site): Put the most expensive teapot you sell in my cart.8.7k3.7k100%100%
Time per question, seconds per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: timeWith WebMCP: timeWithout WebMCP: solvedWith WebMCP: solved
Kiln & Co (local test site): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.4.7s3.4s100%100%
Kiln & Co (local test site): Add two of the cheapest blue mug to my cart.4.3s2.5s100%100%
Kiln & Co (local test site): Put the most expensive teapot you sell in my cart.2.7s2.2s100%100%
Steps per question, model turns per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: stepsWith WebMCP: stepsWithout WebMCP: solvedWith WebMCP: solved
Kiln & Co (local test site): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.5.74.0100%100%
Kiln & Co (local test site): Add two of the cheapest blue mug to my cart.3.33.0100%100%
Kiln & Co (local test site): Put the most expensive teapot you sell in my cart.3.03.0100%100%
Cost per question, USD per task; lower is better. Success rate per arm.
QuestionWithout WebMCP: costWith WebMCP: costWithout WebMCP: solvedWith WebMCP: solved
Kiln & Co (local test site): Add one Stoneware Teapot and one Speckled Bowl to my cart, then tell me the cart total.$0.00088$0.00032100%100%
Kiln & Co (local test site): Add two of the cheapest blue mug to my cart.$0.00083$0.00022100%100%
Kiln & Co (local test site): Put the most expensive teapot you sell in my cart.$0.00049$0.00018100%100%

The 4 WebMCP tools Kiln & Co registers

as the agent saw them · 2026-11-08

ToolDescriptionCalled
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({"category":"mug","color":"blue","sort":"price_asc"})

search_products({"category":"teapot","sort":"price_desc"})

Called
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"})

add_to_cart({"sku":"BWL-01"})

add_to_cart({"quantity":2,"sku":"MUG-03"})

add_to_cart({"sku":"TPT-02"})

Called
get_cart

Return the cart: items with quantity and the total in USD.

get_cart({})

Called
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.

–Not called
  • claude-haiku-5-5, reasoning medium, headless Chrome. Same prompt and step limit in both arms; 3 runs per question and arm.
  • Without WebMCP: a DOM-snapshot agent that reads, clicks and fills.
  • With WebMCP: only the tools the page registers (its own, or webmcpx’s on our test sites).
  • Graded by facts in the answer and page state. No LLM judge.
  • A local test site: its tools come from webmcpx.
  • 30 questions on 6 sites, 27 of them read-only; the biggest savings come from the sites' own search tools.
  • 3 runs per question and arm: 3 of 3 solved is evidence, not proof of 100%.
  • Time is the agent loop after the page loaded; cost is the model's API usage at dated list prices, cache included.
  • Every failed run says why in the results (bot check, answer not from the page, step limit…).
reproduce it
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
ANTHROPIC_API_KEY=... just bench --model claude-haiku-5-5 --reasoning-effort medium

Orbit docs local

“By default, how many past releases does Orbit keep for rollback?”

2.2×

fewer tokens

5.4k → 2.4k tokens

Tokens per question, tokens per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: tokensWith WebMCP: tokensWithout WebMCP: solvedWith WebMCP: solved
Orbit docs (local test site): By default, how many past releases does Orbit keep for rollback?5.4k2.4k100%100%
Orbit docs (local test site): Which environment variable makes Orbit read its config file from a different path?5.4k2.4k100%100%
Orbit docs (local test site): My CI step failed with orbit exit code 4. What does that mean?5.5k2.4k100%100%
Orbit docs (local test site): Which rollout strategies can I pick when I run orbit deploy?5.5k2.5k100%100%
Time per question, seconds per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: timeWith WebMCP: timeWithout WebMCP: solvedWith WebMCP: solved
Orbit docs (local test site): By default, how many past releases does Orbit keep for rollback?2.1s2.5s100%100%
Orbit docs (local test site): Which environment variable makes Orbit read its config file from a different path?1.6s1.7s100%100%
Orbit docs (local test site): My CI step failed with orbit exit code 4. What does that mean?1.7s3.7s100%100%
Orbit docs (local test site): Which rollout strategies can I pick when I run orbit deploy?2.3s2.1s100%100%
Steps per question, model turns per run; lower is better. Success rate per arm.
QuestionWithout WebMCP: stepsWith WebMCP: stepsWithout WebMCP: solvedWith WebMCP: solved
Orbit docs (local test site): By default, how many past releases does Orbit keep for rollback?2.02.0100%100%
Orbit docs (local test site): Which environment variable makes Orbit read its config file from a different path?2.02.0100%100%
Orbit docs (local test site): My CI step failed with orbit exit code 4. What does that mean?2.02.0100%100%
Orbit docs (local test site): Which rollout strategies can I pick when I run orbit deploy?2.02.0100%100%
Cost per question, USD per task; lower is better. Success rate per arm.
QuestionWithout WebMCP: costWith WebMCP: costWithout WebMCP: solvedWith WebMCP: solved
Orbit docs (local test site): By default, how many past releases does Orbit keep for rollback?$0.00031$0.00019100%100%
Orbit docs (local test site): Which environment variable makes Orbit read its config file from a different path?$0.0006$0.00015100%100%
Orbit docs (local test site): My CI step failed with orbit exit code 4. What does that mean?$0.0003$0.00017100%100%
Orbit docs (local test site): Which rollout strategies can I pick when I run orbit deploy?$0.00047$0.00019100%100%

The 3 WebMCP tools Orbit docs registers

as the agent saw them · 2026-11-08

ToolDescriptionCalled
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({"limit":5,"query":"past releases rollback default keep"})

search_page({"limit":5,"query":"environment variable config file path"})

search_page({"limit":5,"query":"exit code 4"})

search_page({"limit":5,"query":"orbit deploy rollout strategy"})

Called
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`.

–Not called
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.

–Not called
  • claude-haiku-5-5, reasoning medium, headless Chrome. Same prompt and step limit in both arms; 3 runs per question and arm.
  • Without WebMCP: a DOM-snapshot agent that reads, clicks and fills.
  • With WebMCP: only the tools the page registers (its own, or webmcpx’s on our test sites).
  • Graded by facts in the answer and page state. No LLM judge.
  • A local test site: its tools come from webmcpx.
  • 30 questions on 6 sites, 27 of them read-only; the biggest savings come from the sites' own search tools.
  • 3 runs per question and arm: 3 of 3 solved is evidence, not proof of 100%.
  • Time is the agent loop after the page loaded; cost is the model's API usage at dated list prices, cache included.
  • Every failed run says why in the results (bot check, answer not from the page, step limit…).
reproduce it
git clone https://github.com/webmcpx/webmcpx
cd webmcpx && just setup
ANTHROPIC_API_KEY=... just bench --model claude-haiku-5-5 --reasoning-effort medium