Playwright MCP server tool surface audit

A96/100composite score
Token footprint
~4,349
Tools
26
Findings
4
Scanned

Engine mcp-surface-lint@0.3.3 · reported as Playwright v1.64.0-alpha-2026-09-14

Every conversation with the Playwright MCP server begins with 26 tool definitions already in context — about 4,349 tokens of it. Against the 19 static rules in the catalogue it scores 96 out of 100 — grade A — raising 4 scored findings in 2 of the six categories.

The spread runs from 100/100 for schemas down to 85/100 for surface. It is catalogued here under Developer Tools, alongside other servers agents reach for in the same kind of work.

Token footprint

4,349 tokens is roughly 2% of a 200,000-token window, paid again on every request rather than once per session. That averages 167 tokens per tool definition, counted with the o200k_base encoding.

Compared with the Developer Tools median of 2,797 tokens, Playwright is roughly 55% above.

surface85
naming100
descriptions91
schemas100
annotations100
design100

Findings

Findings are listed by severity; the rule pages explain the reasoning in full.

The largest group is `descriptions/too-short`, with 3 findings. Descriptions under ~20 characters carry no disambiguation signal. The model needs enough context to pick this tool over its neighbours without trial calls. On this surface it fires on `browser_close`, `browser_handle_dialog` and `browser_navigate`.

One finding comes from `surface/tool-budget`. Tool selection accuracy degrades as the surface grows: more near-neighbours to confuse, more tokens spent before the first user message. Fewer, intent-shaped tools outperform one-tool-per-endpoint surfaces. It applies to the surface as a whole rather than to one tool.

warn 4 findings

Findings that measurably degrade tool selection.

Description is 14 chars (minimum 20) — too short to disambiguate.

Descriptions under ~20 characters carry no disambiguation signal. The model needs enough context to pick this tool over its neighbours without trial calls.

Close the page

descriptions/too-shortbrowser_handle_dialog
Description is 15 chars (minimum 20) — too short to disambiguate.

Descriptions under ~20 characters carry no disambiguation signal. The model needs enough context to pick this tool over its neighbours without trial calls.

Handle a dialog

descriptions/too-shortbrowser_navigate
Description is 17 chars (minimum 20) — too short to disambiguate.

Descriptions under ~20 characters carry no disambiguation signal. The model needs enough context to pick this tool over its neighbours without trial calls.

Navigate to a URL

Server exposes 26 tools (warn threshold 20 exceeded). Consider consolidating into fewer intent-shaped tools.

Tool selection accuracy degrades as the surface grows: more near-neighbours to confuse, more tokens spent before the first user message. Fewer, intent-shaped tools outperform one-tool-per-endpoint surfaces.

What this surface does well

4 of the six categories come through clean: naming, schemas, annotations and design. In practice that means the tool names follow one convention end to end, the input schemas are typed tightly enough to constrain what a model sends, read and write operations are machine-distinguishable before a client runs them and the surface is shaped around user intents rather than mirrored REST endpoints.

Tool inventory

Cost is concentrated in `browser_take_screenshot`: 336 tokens, some 8% of everything Playwright ships, while `browser_close` costs 70. Every tool carries a description, ranging from 14 to 340 characters.

All 26 declare annotations, so a client can tell a read from a write before running one. Input schemas average 3 top-level parameters and nest 3 levels deep at their worst, with 3 tools taking no input at all.

All 26 tools as published, heaviest first. Token counts use the o200k_base encoding and are approximate.

Every tool on this surface with its token cost and schema shape.
ToolTokensDescriptionParamsRequiredDepthAnnotations
browser_take_screenshot336123 chars611yes
browser_fill_form25425 chars113yes
browser_drop242135 chars412yes
browser_find221340 chars201yes
browser_network_request217149 chars311yes
browser_run_code_unsafe212124 chars201yes
browser_click20427 chars512yes
browser_type19731 chars521yes
browser_evaluate19449 chars411yes
browser_network_requests194132 chars311yes
browser_snapshot19482 chars401yes
browser_console_messages19128 chars311yes
browser_webmcp_call18389 chars311yes
browser_drag18242 chars421yes
browser_select_option16130 chars322yes
browser_tabs15345 chars311yes
browser_wait_for12864 chars301yes
browser_hover12126 chars211yes
browser_file_upload11128 chars102yes
browser_handle_dialog11115 chars211yes
browser_press_key10927 chars111yes
browser_resize10625 chars221yes
browser_navigate9117 chars111yes
browser_webmcp_list8763 chars000yes
browser_navigate_back7843 chars000yes
browser_close7014 chars000yes

How this compares

Playwright ranks 4 of 5 scanned Developer Tools servers, exactly on the category median of 96.

The closest comparisons in this directory are Filesystem, Chrome DevTools and Context7, which sit nearest on score and face the same kind of surface-design pressure.

Category
Developer Tools
Rank in category
4
Category median score
96
Category median tokens
2,797
Want this surface fixed, not just measured?

A fix plan turns these findings into an ordered set of changes with the token saving of each one.

Get a fix plan

This page is a static analysis of Playwright's published tools/list surface on the date shown. It is not a security review, a performance benchmark, or a judgement of the product behind the surface. Read how the score is computed, or browse every audited server.