Playwright
[ tools: 24 ][ checks: 11 ][ latency: 14ms ]
84/100(B)
npx -y @playwright/mcp@latest
check breakdown
✓Tools exposed — Server exposed 24 tools.
• browser_close
• browser_resize
• browser_console_messages
• browser_handle_dialog
• browser_evaluate
• browser_file_upload
• browser_drop
• browser_find
• browser_fill_form
• browser_press_key
• browser_type
• browser_navigate
• browser_navigate_back
• browser_network_requests
• browser_network_request
• browser_run_code_unsafe
• browser_take_screenshot
• browser_snapshot
• browser_click
• browser_drag
• browser_hover
• browser_select_option
• browser_tabs
• browser_wait_for
✓Input schemas valid — All tools have a valid JSON-Schema input definition.
!Input schema quality — 5 schema-quality issue(s) across 24 tool(s).
browser_file_upload: no "required" array (which params are mandatory?)
browser_find: no "required" array (which params are mandatory?)
browser_run_code_unsafe: no "required" array (which params are mandatory?)
browser_snapshot: no "required" array (which params are mandatory?)
browser_wait_for: no "required" array (which params are mandatory?)
→ Declare `required` for every schema that has properties, so agents know which params are mandatory.
→ Give every property a `description` and a concrete `type` (avoid bare `{}` placeholders).
!Output schemas — No tools declare an outputSchema.
→ Optional: declare outputSchema for tools with structured results so agents can validate/parse output reliably.
✓Duplicate tool names — All tool names are unique.
✓Tool naming — All tool names use spec-legal characters.
!Descriptions — 1 description issue(s) found.
browser_close: description very short ("Close the page")
→ Descriptions are the model's only guide to when/how to call a tool — treat them as prompt engineering.
→ Describe every tool and every parameter, including units, formats, and constraints.
→ Each tool's description should say something the name doesn't, and should be unique to that tool.
!Tool annotations — Annotation coverage 80% (96/120 hint fields set).
Some tools set a few hints but not all of title/readOnlyHint/destructiveHint/idempotentHint/openWorldHint.
→ Add annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
→ These let clients gate risky calls and give agents/users a friendly display name — optional but valuable.
✓Tool titles — All tools declare a human-readable title.
!Server instructions — No top-level instructions declared.
→ Declare instructions to guide agents on when/how to use this server.
→ Return a non-empty `instructions` string in your InitializeResult — most SDKs let you set this alongside serverInfo.
✓Handshake + list latency — tools/list responded in 14ms.
add the badge
Paste into your README:
[](https://scoremcp.dev/servers/playwright)