{
  "slug": "chrome-devtools",
  "name": "Chrome DevTools",
  "author": "ChromeDevTools (GitHub)",
  "category": "Browser automation",
  "tier": "checkable",
  "kind": "stdio",
  "packageSpec": "npm:chrome-devtools-mcp@1.12.0",
  "sourceUrl": "https://registry.modelcontextprotocol.io/v0/servers/io.github.ChromeDevTools%2Fchrome-devtools-mcp/versions/latest",
  "repoUrl": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
  "enrichment": {},
  "current": {
    "verdict": "alive",
    "reason": "all_passed",
    "failedChecks": [],
    "untestedTools": 27,
    "checkedAt": "2026-10-29T06:45:47.043Z",
    "methodologyVersion": "1.0.0",
    "serverVersion": "1.12.0",
    "checks": [
      {
        "id": "L0.reachable",
        "detail": "http undefined",
        "status": "pass",
        "durationMs": 3700
      },
      {
        "id": "L0.tls",
        "status": "skipped"
      },
      {
        "id": "L0.initialize",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"protocolVersion\":\"2025-11-25\",\"capabilities\":{\"logging\":{},\"tools\":{\"listChanged\":true}},\"serverInfo\":{\"name\":\"chrome_devtools\",\"title\":\"Chrome DevTools MCP server\",\"version\":\"1.12.0\"}},\"jsonrpc\":\"2.0\",\"id\":1}"
        },
        "durationMs": 3700
      },
      {
        "id": "L0.protocol_version",
        "detail": "server reported \"2025-11-25\"; published versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25",
        "status": "pass"
      },
      {
        "id": "L0.capabilities",
        "detail": "logging, tools",
        "status": "pass"
      },
      {
        "id": "L1.server_info",
        "detail": "chrome_devtools 1.12.0",
        "status": "pass"
      },
      {
        "id": "L1.tools_list",
        "detail": "32 tools",
        "status": "pass"
      },
      {
        "id": "L1.tool_schemas",
        "detail": "32 schemas valid",
        "status": "pass"
      },
      {
        "id": "L1.resources_list",
        "detail": "resources capability not declared",
        "status": "skipped"
      },
      {
        "id": "L1.prompts_list",
        "detail": "prompts capability not declared",
        "status": "skipped"
      },
      {
        "id": "L1.unknown_method",
        "status": "pass",
        "evidence": {
          "raw": "{\"jsonrpc\":\"2.0\",\"id\":3,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}"
        },
        "durationMs": 2
      },
      {
        "id": "L1.envelope",
        "detail": "3 replies valid",
        "status": "pass"
      },
      {
        "id": "L2.call_ok",
        "tool": "click",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "close_page",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "drag",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "emulate",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "evaluate_script",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "fill",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "fill_form",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "get_console_message",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not find Google Chrome executable for channel 'stable' at:\\n - /opt/google/chrome/chrome.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":4}",
          "arguments": {
            "msgid": 1,
            "pageId": 1
          }
        },
        "durationMs": 93
      },
      {
        "id": "L2.bad_input",
        "tool": "get_console_message",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool get_console_message: pageId: Invalid input: expected number, received undefined, msgid: Invalid input: expected number, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":5}",
          "arguments": {}
        },
        "durationMs": 2
      },
      {
        "id": "L2.call_ok",
        "tool": "get_css_styles",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not find Google Chrome executable for channel 'stable' at:\\n - /opt/google/chrome/chrome.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":6}",
          "arguments": {
            "uid": "knot-verified-probe",
            "pageId": 1
          }
        },
        "durationMs": 23
      },
      {
        "id": "L2.bad_input",
        "tool": "get_css_styles",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool get_css_styles: pageId: Invalid input: expected number, received undefined, uid: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":7}",
          "arguments": {}
        },
        "durationMs": 60
      },
      {
        "id": "L2.call_ok",
        "tool": "get_network_request",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "handle_dialog",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "hover",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "lighthouse_audit",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "list_console_messages",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not find Google Chrome executable for channel 'stable' at:\\n - /opt/google/chrome/chrome.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":8}",
          "arguments": {
            "pageId": 1
          }
        },
        "durationMs": 22
      },
      {
        "id": "L2.bad_input",
        "tool": "list_console_messages",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool list_console_messages: pageId: Invalid input: expected number, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":9}",
          "arguments": {}
        },
        "durationMs": 3
      },
      {
        "id": "L2.call_ok",
        "tool": "list_network_requests",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not find Google Chrome executable for channel 'stable' at:\\n - /opt/google/chrome/chrome.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":10}",
          "arguments": {
            "pageId": 1
          }
        },
        "durationMs": 74
      },
      {
        "id": "L2.bad_input",
        "tool": "list_network_requests",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool list_network_requests: pageId: Invalid input: expected number, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":11}",
          "arguments": {}
        },
        "durationMs": 3
      },
      {
        "id": "L2.call_ok",
        "tool": "list_pages",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not find Google Chrome executable for channel 'stable' at:\\n - /opt/google/chrome/chrome.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":12}",
          "arguments": {}
        },
        "durationMs": 16
      },
      {
        "id": "L2.bad_input",
        "tool": "list_pages",
        "detail": "no schema violation can be crafted",
        "status": "skipped"
      },
      {
        "id": "L2.call_ok",
        "tool": "navigate_page",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "new_page",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "performance_analyze_insight",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "performance_start_trace",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "performance_stop_trace",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "press_key",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "resize_page",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "screencast_start",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "screencast_stop",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "select_page",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "take_heapsnapshot",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "take_screenshot",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "take_snapshot",
        "detail": "not_annotated_read_only",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "type_text",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "upload_file",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "wait_for",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.timeout",
        "detail": "5 calls answered within 30000 ms",
        "status": "pass"
      }
    ],
    "metrics": {
      "callMs": [
        93,
        2,
        23,
        60,
        22,
        3,
        74,
        3,
        16
      ],
      "toolsListMs": 20,
      "initializeMs": 3700
    },
    "facts": {
      "authModel": "none",
      "transport": "stdio",
      "capabilities": [
        "logging",
        "tools"
      ],
      "toolAnnotations": {
        "readOnly": 8,
        "unmarked": 24,
        "destructive": 0
      },
      "credentialsInUrl": false
    }
  },
  "l3": {
    "uptime": {
      "24h": null,
      "7d": 1,
      "30d": 1
    },
    "sampleSize": {
      "24h": 0,
      "7d": 1,
      "30d": 1
    },
    "latency": {
      "initialize": {
        "p50": null,
        "p95": null
      },
      "calls": {
        "p50": 22,
        "p95": 93
      }
    },
    "flakiness": null,
    "versionDrift": []
  },
  "history": [
    {
      "startedAt": "2026-10-29T06:45:42.963Z",
      "runKind": "full",
      "l0Ok": true,
      "verdict": "alive"
    }
  ]
}