chrome_devtools
[ tools: 29 ][ checks: 11 ][ latency: 14ms ]
84/100(B)
npx -y chrome-devtools-mcp@latest
check breakdown
✓Tools exposed — Server exposed 29 tools.
• click
• close_page
• drag
• emulate
• evaluate_script
• fill
• fill_form
• get_console_message
• get_network_request
• handle_dialog
• hover
• lighthouse_audit
• list_console_messages
• list_network_requests
• list_pages
• navigate_page
• new_page
• performance_analyze_insight
• performance_start_trace
• performance_stop_trace
• press_key
• resize_page
• select_page
• take_heapsnapshot
• take_screenshot
• take_snapshot
• type_text
• upload_file
• wait_for
✓Input schemas valid — All tools have a valid JSON-Schema input definition.
!Input schema quality — 38 schema-quality issue(s) across 29 tool(s).
click: inputSchema.additionalProperties is not set to false (extra args pass through silently)
close_page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
drag: inputSchema.additionalProperties is not set to false (extra args pass through silently)
emulate: no "required" array (which params are mandatory?)
emulate: inputSchema.additionalProperties is not set to false (extra args pass through silently)
evaluate_script: inputSchema.additionalProperties is not set to false (extra args pass through silently)
fill: inputSchema.additionalProperties is not set to false (extra args pass through silently)
fill_form: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get_console_message: inputSchema.additionalProperties is not set to false (extra args pass through silently)
get_network_request: no "required" array (which params are mandatory?)
get_network_request: inputSchema.additionalProperties is not set to false (extra args pass through silently)
handle_dialog: inputSchema.additionalProperties is not set to false (extra args pass through silently)
hover: inputSchema.additionalProperties is not set to false (extra args pass through silently)
lighthouse_audit: no "required" array (which params are mandatory?)
lighthouse_audit: inputSchema.additionalProperties is not set to false (extra args pass through silently)
list_console_messages: no "required" array (which params are mandatory?)
list_console_messages: inputSchema.additionalProperties is not set to false (extra args pass through silently)
list_network_requests: no "required" array (which params are mandatory?)
list_network_requests: inputSchema.additionalProperties is not set to false (extra args pass through silently)
navigate_page: no "required" array (which params are mandatory?)
navigate_page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
new_page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
performance_analyze_insight: inputSchema.additionalProperties is not set to false (extra args pass through silently)
performance_start_trace: no "required" array (which params are mandatory?)
performance_start_trace: inputSchema.additionalProperties is not set to false (extra args pass through silently)
performance_stop_trace: no "required" array (which params are mandatory?)
performance_stop_trace: inputSchema.additionalProperties is not set to false (extra args pass through silently)
press_key: inputSchema.additionalProperties is not set to false (extra args pass through silently)
resize_page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
select_page: inputSchema.additionalProperties is not set to false (extra args pass through silently)
take_heapsnapshot: inputSchema.additionalProperties is not set to false (extra args pass through silently)
take_screenshot: no "required" array (which params are mandatory?)
take_screenshot: inputSchema.additionalProperties is not set to false (extra args pass through silently)
take_snapshot: no "required" array (which params are mandatory?)
take_snapshot: inputSchema.additionalProperties is not set to false (extra args pass through silently)
type_text: inputSchema.additionalProperties is not set to false (extra args pass through silently)
upload_file: inputSchema.additionalProperties is not set to false (extra args pass through silently)
wait_for: inputSchema.additionalProperties is not set to false (extra args pass through silently)
→ 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).
→ Set `additionalProperties: false` on the top-level inputSchema so models can't silently pass extra, unvalidated arguments.
!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 — 6 description issue(s) found.
click: description adds nothing beyond the tool name ("Clicks on the provided element")
drag: description adds nothing beyond the tool name ("Drag an element onto another element")
hover: description adds nothing beyond the tool name ("Hover over the provided element")
list_pages: description adds nothing beyond the tool name ("Get a list of pages open in the browser.")
resize_page.width: parameter description very short ("Page width")
resize_page.height: parameter description very short ("Page height")
→ 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 20% (29/145 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 — 29 of 29 tool(s) have no title.
• click: no top-level title (or annotations.title)
• close_page: no top-level title (or annotations.title)
• drag: no top-level title (or annotations.title)
• emulate: no top-level title (or annotations.title)
• evaluate_script: no top-level title (or annotations.title)
• fill: no top-level title (or annotations.title)
• fill_form: no top-level title (or annotations.title)
• get_console_message: no top-level title (or annotations.title)
• get_network_request: no top-level title (or annotations.title)
• handle_dialog: no top-level title (or annotations.title)
• hover: no top-level title (or annotations.title)
• lighthouse_audit: no top-level title (or annotations.title)
• list_console_messages: no top-level title (or annotations.title)
• list_network_requests: no top-level title (or annotations.title)
• list_pages: no top-level title (or annotations.title)
• navigate_page: no top-level title (or annotations.title)
• new_page: no top-level title (or annotations.title)
• performance_analyze_insight: no top-level title (or annotations.title)
• performance_start_trace: no top-level title (or annotations.title)
• performance_stop_trace: no top-level title (or annotations.title)
• press_key: no top-level title (or annotations.title)
• resize_page: no top-level title (or annotations.title)
• select_page: no top-level title (or annotations.title)
• take_heapsnapshot: no top-level title (or annotations.title)
• take_screenshot: no top-level title (or annotations.title)
• take_snapshot: no top-level title (or annotations.title)
• type_text: no top-level title (or annotations.title)
• upload_file: no top-level title (or annotations.title)
• wait_for: no top-level title (or annotations.title)
→ Declare a top-level `title` on each tool — it gives clients a friendly display name distinct from the machine-readable `name`.
→ `annotations.title` (the older location) is also accepted, but the top-level `title` field is now the spec-preferred place for it.
!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/chrome-devtools-mcp)