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
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.
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.
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.
Findings that measurably degrade tool selection.
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 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 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
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.
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.
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.
| Tool | Tokens | Description | Params | Required | Depth | Annotations |
|---|---|---|---|---|---|---|
browser_take_screenshot | 336 | 123 chars | 6 | 1 | 1 | yes |
browser_fill_form | 254 | 25 chars | 1 | 1 | 3 | yes |
browser_drop | 242 | 135 chars | 4 | 1 | 2 | yes |
browser_find | 221 | 340 chars | 2 | 0 | 1 | yes |
browser_network_request | 217 | 149 chars | 3 | 1 | 1 | yes |
browser_run_code_unsafe | 212 | 124 chars | 2 | 0 | 1 | yes |
browser_click | 204 | 27 chars | 5 | 1 | 2 | yes |
browser_type | 197 | 31 chars | 5 | 2 | 1 | yes |
browser_evaluate | 194 | 49 chars | 4 | 1 | 1 | yes |
browser_network_requests | 194 | 132 chars | 3 | 1 | 1 | yes |
browser_snapshot | 194 | 82 chars | 4 | 0 | 1 | yes |
browser_console_messages | 191 | 28 chars | 3 | 1 | 1 | yes |
browser_webmcp_call | 183 | 89 chars | 3 | 1 | 1 | yes |
browser_drag | 182 | 42 chars | 4 | 2 | 1 | yes |
browser_select_option | 161 | 30 chars | 3 | 2 | 2 | yes |
browser_tabs | 153 | 45 chars | 3 | 1 | 1 | yes |
browser_wait_for | 128 | 64 chars | 3 | 0 | 1 | yes |
browser_hover | 121 | 26 chars | 2 | 1 | 1 | yes |
browser_file_upload | 111 | 28 chars | 1 | 0 | 2 | yes |
browser_handle_dialog | 111 | 15 chars | 2 | 1 | 1 | yes |
browser_press_key | 109 | 27 chars | 1 | 1 | 1 | yes |
browser_resize | 106 | 25 chars | 2 | 2 | 1 | yes |
browser_navigate | 91 | 17 chars | 1 | 1 | 1 | yes |
browser_webmcp_list | 87 | 63 chars | 0 | 0 | 0 | yes |
browser_navigate_back | 78 | 43 chars | 0 | 0 | 0 | yes |
browser_close | 70 | 14 chars | 0 | 0 | 0 | yes |
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.
A fix plan turns these findings into an ordered set of changes with the token saving of each one.
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.