BENCHMARK

Same Answers. Fewer Tokens.

Agentic, detection, and performance benchmarks - what an AI agent spends to finish the job on Owl Browser MCP versus the alternatives, how it scores against CreepJS, and how it keeps pace with bare-metal automation tools under load.

What Does the Same Answer Cost?

The same agent CLIs, the same tasks, the same machine - only the browser MCP server changes. Every stack gets the answer right, so correctness is the entry requirement, not the score. What separates them is what the agent had to spend to get there.

1

Owl Browser MCP

v1.3.2 · 20 tools
48.1ktokens per task
100% of runs answered correctly
Cheapest per task
What it cost to get thereall runs
Tool calls per task
2.3
client 2.3 · transport 2.3
Tokens per task
48.1k
Page payload read back
2.2k tokens
Images sent to the model
0 blocks
0 B
Time to first action
6.4s
Wall clock per task
17.2s

Cheap only counts when the answer is right. A stack that quits early looks fast and thrifty on every line above.

2

Chrome DevTools MCP

v1.6.0 · 29 tools
75.8ktokens per task
100% of runs answered correctly
What it cost to get thereall runs
Tool calls per task
3.3
client 3.3 · transport 3.3
Tokens per task
75.8k
Page payload read back
5.2k tokens
Images sent to the model
0 blocks
0 B
Time to first action
6.8s
Wall clock per task
17.6s

Cheap only counts when the answer is right. A stack that quits early looks fast and thrifty on every line above.

3

Playwright MCP

v0.0.79 · 24 tools
82.7ktokens per task
100% of runs answered correctly
What it cost to get thereall runs
Tool calls per task
4.6
client 4.6 · transport 4.6
Tokens per task
82.7k
Page payload read back
4.0k tokens
Images sent to the model
0 blocks
0 B
Time to first action
6.3s
Wall clock per task
19.9s

Cheap only counts when the answer is right. A stack that quits early looks fast and thrifty on every line above.

Task by Task

Correct answers first, then what the run cost (all runs). Averaged across every agent CLI until you filter above.

TaskOwl Browser MCPPlaywright MCPChrome DevTools MCP
Find the cheapest book in the Mystery category
list-extraction
100%correct
4.5calls
92.3ktokens
100%correct
6calls
141.4ktokens
100%correct
4.5calls
119.7ktokens
Read the last item on the last page of a 1000-item catalogue
deep-pagination
100%correct
1.5calls
35.7ktokens
100%correct
4calls
94.2ktokens
100%correct
2calls
49.4ktokens
Read a value out of an HTML product table
table-read
100%correct
1calls
24.4ktokens
100%correct
2calls
38.5ktokens
100%correct
2calls
43.3ktokens
Open a detail page from a listing and read its stock count
detail-drilldown
100%correct
2calls
43.4ktokens
100%correct
4calls
67.0ktokens
100%correct
4calls
99.4ktokens
Fill and submit a six-field form, report the confirmation code
form-fill
100%correct
4calls
68.7ktokens
100%correct
9.5calls
117.4ktokens
100%correct
5.5calls
100.1ktokens
Negative control: report that a figure is not available
negative-control
100%correct
1calls
24.2ktokens
100%correct
2calls
38.0ktokens
100%correct
2calls
42.8ktokens

Scroll the table sideways to compare every stack

Methodology: Driven by qwen/qwen3.6-27b. 5 runs per task, per stack, per agent. Agent CLIs under test: Claude Code, Codex CLI. Identical prompts and tasks on one machine, only the MCP server swapped. Raw per-run answers are published, so the grading can be audited. Owl is handicapped here and it is not adjusted for: it runs as a server the agent reaches over HTTP, so every call pays network latency, while the other two run in-process on the same machine. That is also the trade - one Owl instance serves many agents concurrently, where a local MCP server is one browser for one agent. Figures cover every run in the set. Dollar cost is not reported - the model runs locally, so any figure the agent CLIs print is fabricated from a hosted pricing table. Owl Browser v1.3.2. Last run: August 7, 2026. The harness, the exact prompts and the grading rules are in the benchmark repository; every raw per-run answer, with its expected value and the rule that graded it, is in the report data this page loads.

Fingerprint controls, tested in public

We ran the same fingerprint collector and performance procedure for each automation stack, then published the versions, screenshots, and raw output. Detection on other sites can differ from these results. This suite includes CreepJS, then pushed under load to show stealth costs nothing in speed.

Playwright

baseline

Runs on Linux - cannot spoof platform

Headless
100%
Like Headless
94%
Platform
Linux
GPU
ANGLE (Google, Vulkan 1.3.0 (S...
Fonts
1/51
Devices
0
User Agent
HeadlessChrome
Confidence
moderate
creepjs - fingerprint
Playwright CreepJS screenshot

Puppeteer

baseline

Runs on Linux - cannot spoof platform

Headless
100%
Like Headless
50%
Platform
Linux
GPU
ANGLE (Google, Vulkan 1.3.0 (S...
Fonts
1/51
Devices
0
User Agent
HeadlessChrome
Confidence
moderate
creepjs - fingerprint
Puppeteer CreepJS screenshot

Owl Browser

spoofed

Unique fingerprint per context - each session gets its own identity

Headless
0%
Like Headless
31%
Platform
Windows
GPU
ANGLE (Intel, Intel(R) UHD Gra...
Fonts
5/51
Devices
7
User Agent
Mozilla/5.0 (Windows NT 10.0...
Confidence
high
creepjs - fingerprint
Owl Browser CreepJS screenshot

Fingerprint Uniqueness

Playwright and Puppeteer expose identical device fingerprints - they leak the real machine. Owl Browser generates unique fingerprints per profile at the C++ source level.

CategoryPlaywrightPuppeteerOwl (Windows)Unique?
Canvas
f5ae5edb
f5ae5edb
fdcdbf14
WebGL
208a9379
208a9379
b0017f68
Audio
9048f6b9
9048f6b9
ae05bdc6
Fonts
f936b9a1
f936b9a1
023b83e2
DOMRect
c4c4b540
c4c4b540
8e02378c
SVGRect
cbd2ed1a
cbd2ed1a
cca10e0b
Screen
5ccbceb6
b0313e03
39974c4d
Identical hash - real device leakedUnique hash - properly spoofed

Stealth Has a Cost. Here's How Small It Is.

Playwright and Puppeteer run bare - no fingerprint spoofing, no context isolation, no anti-detection. Every Owl request includes all of that, yet full-cycle times stay competitive. 1000 sequential iterations per browser, same machine, same network. Median times shown.

Cold Start

median (p95)

Creating a browser context (Owl) vs launching a browser process (Playwright/Puppeteer)

Owl
2.9ms
p95: 5.8
Playwright
63.7ms
p95: 83.4
Puppeteer
181.5ms
p95: 212.8

Navigation

median (p95)

Navigate to https://example.com and wait for network idle

Owl
125.5ms
p95: 156.6
Playwright
71.9ms
p95: 128.0
Puppeteer
119.5ms
p95: 154.7

Screenshot

median (p95)

Capture a viewport screenshot

Owl
33.0ms
p95: 85.2
Playwright
79.1ms
p95: 96.4
Puppeteer
96.0ms
p95: 113.0

Close

median (p95)

Close browser context (Owl) or terminate browser process (Playwright/Puppeteer)

Owl
1.6ms
p95: 3.8
Playwright
15.0ms
p95: 24.1
Puppeteer
121.4ms
p95: 140.7

Full Cycle

median (p95)

Create → navigate → screenshot → close

Owl
164.3ms
p95: 195.1
Playwright
234.8ms
p95: 273.6
Puppeteer
522.8ms
p95: 574.9

Methodology: Each browser performs 1000 sequential iterations of: create/launch → navigate to target URL (wait for domcontentloaded) → capture screenshot → close. All times in milliseconds. Playwright and Puppeteer run inside the benchmark container (local process). Owl Browser runs in a separate container and is accessed via REST API over localhost, adding ~5-10ms of network overhead per API call - Owl's real times are faster than shown. Sequential execution, same machine. Owl times include the full cost of stealth - fingerprint generation, per-context isolation, and REST API overhead to an isolated container.

Concurrency Scaling

All sessions launch simultaneously. Each performs a full cycle - create context, navigate, screenshot, and close.

0.0s2.0s4.1s6.1s8.2s10.2s1102550100concurrent sessions0.2s0.4s1.6s2.6s4.7s0.8s0.8s1.4s2.9s5.5s0.5s1.2s2.3s4.0s9.3s
OwlPlaywrightPuppeteer
1 session:Owl 1/1Playwright 1/1Puppeteer 1/1
10 sessions:Owl 10/10Playwright 10/10Puppeteer 10/10
25 sessions:Owl 25/25Playwright 25/25Puppeteer 25/25
50 sessions:Owl 50/50Playwright 50/50Puppeteer 50/50
100 sessions:Owl 100/100Playwright 99/100 (1 failed)Puppeteer 100/100

Methodology: At each concurrency level (1, 10, 25, 50, 100 sessions), all sessions launch simultaneously and each performs: create → navigate (domcontentloaded) → screenshot → close. Playwright and Puppeteer each launch a separate browser process per session. Owl Browser creates lightweight contexts within a single running engine. Total time = wall clock from first launch to last completion.

Run the same tests in your environment

Our published run shows the measured fingerprint and performance results above. It does not guarantee that every detector, site, account, or proxy will accept a session. Clone the harness, reproduce the run, and test the sites that matter to your workflow.

Get Started

Tested by the Olib engineering team·Owl Browser v1.3.0·Playwright (chromium)·Puppeteer (Chrome/145.0.7632.6)·Last run: July 7, 2026

Detection powered by CreepJS · View report generator source code

Methodology maintained by Akram H. S., Founder and CTO · Architecture and limitations