{
  "issues": [
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/975",
      "id": 3946496387,
      "node_id": "I_kwDOPt7f_s7rOsGD",
      "number": 975,
      "title": "tool fill can not work with google.com",
      "user": {
        "login": "russell0430",
        "id": 98450133,
        "node_id": "U_kgDOBd461Q",
        "avatar_url": "https://avatars.githubusercontent.com/u/98450133?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/russell0430",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-16T08:20:40Z",
      "updated_at": "2026-02-16T08:20:40Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nI am build agent with chrome-devtool-mcp. but i when i start chat with ' search today's news on google'. Things wield happened.\nAgent navigate to `google.com` with tool `new_page`,then call `take_snapshot` to get uid of input element ,then call tool `fill` with the uid and text 'today's news'.  \nThe response of fill always fail with   **Failed to interact with the element with uid 18_13. The element did not become interactive within the configured timeout.\\nCause: Could not find option with text**. then agent implement the task with navigate to `google.com/search?q=today'new`\n\ni look into the issue ，and find out when the input has attribute role equal to `combobox` ，the `fill`tool try to find option with the text of tool input ，which is not found in google search page ，and then throw error as below 。 [fill tool](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/src/tools/input.ts#L186-L190) ,[select option](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/src/tools/input.ts#L186-L190)\n\nIs there any way to avoid such thing happen? \n\n### Reproduction\n\n1. use tool `new_page` to google.com\n2. use tool `take_snapshot`to get snapshot and uid of textarea(input) element\n3. use tool `fill` to search something \n4. tool call fail \n\n### Expectation\n\nExpect to search successfully in google.com with mcp\n\n### MCP configuration\n\n_No response_\n\n### Chrome DevTools MCP version\n\nlatest\n\n### Chrome version\n\n_No response_\n\n### Coding agent version\n\n_No response_\n\n### Model version\n\n_No response_\n\n### Chat log\n\n_No response_\n\n### Node version\n\n_No response_\n\n### Operating system\n\nNone\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/975/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/967",
      "id": 3943752816,
      "node_id": "I_kwDOPt7f_s7rEORw",
      "number": 967,
      "title": "docs: instructions to use with codex are not working",
      "user": {
        "login": "curzonpr",
        "id": 83012530,
        "node_id": "MDQ6VXNlcjgzMDEyNTMw",
        "avatar_url": "https://avatars.githubusercontent.com/u/83012530?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/curzonpr",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-15T10:36:17Z",
      "updated_at": "2026-02-15T10:36:35Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nthe readme.md instructions for codex do not work\n\n### Reproduction\n\ninput in cli:\n`> codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest   \n`\noutput:\n`error: unexpected argument 'add' found`\n\n### Expectation\n\n_No response_\n\n### MCP configuration\n\n_No response_\n\n### Chrome DevTools MCP version\n\nlatest\n\n### Chrome version\n\n_No response_\n\n### Coding agent version\n\n_No response_\n\n### Model version\n\n_No response_\n\n### Chat log\n\n_No response_\n\n### Node version\n\n_No response_\n\n### Operating system\n\nNone\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/967/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        968
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/961",
      "id": 3938941600,
      "node_id": "I_kwDOPt7f_s7qx3qg",
      "number": 961,
      "title": "Support console message templates",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-13T20:04:07Z",
      "updated_at": "2026-02-13T20:04:16Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nCurrently if a console log is a template, e.g., `msgid=4 [log] %c %c %c %c %c Phaser v3.90.0 (WebGL | Web Audio) %c https://phaser.io/v390 background: #ff0000 background: #ffff00 background: #00ff00 background: #00ffff color: #ffffff; background: #000000 background: transparent (7 args)` the template is shown as is. \n\n### Describe the solution you'd like\n\nWe should re-use Chrome DevTools frontend logic to resolve the template.\n\n### Describe alternatives you've considered\n\nN/A\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/961/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/955",
      "id": 3937801863,
      "node_id": "I_kwDOPt7f_s7qthaH",
      "number": 955,
      "title": "Update eslint major version to v10 (Blocked by typescript-eslint)",
      "user": {
        "login": "nattallius",
        "id": 47688881,
        "node_id": "MDQ6VXNlcjQ3Njg4ODgx",
        "avatar_url": "https://avatars.githubusercontent.com/u/47688881?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nattallius",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-13T15:44:54Z",
      "updated_at": "2026-02-13T16:09:55Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382275,
        "node_id": "IT_kwDOAKvUJ84AFReD",
        "name": "Task",
        "description": "A specific piece of work",
        "color": "yellow",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nNew major version 10 of eslint was released. But currently it is not yet supported by **typescript-eslint**. [Support](https://github.com/typescript-eslint/typescript-eslint/pull/12057) for this version was added on Feb 13, but it's not yet released.\n\n### Describe the solution you'd like\n\nBump @typescript-eslint/eslint-plugin when the release is ready.\n\n### Describe alternatives you've considered\n\nThis issue is to track the dependency update once the release is available.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/955/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/940",
      "id": 3932252103,
      "node_id": "I_kwDOPt7f_s7qYWfH",
      "number": 940,
      "title": "AI agent does not automatically invoke MCP / performance tools without explicit instruction",
      "user": {
        "login": "madhaviai",
        "id": 43172017,
        "node_id": "MDQ6VXNlcjQzMTcyMDE3",
        "avatar_url": "https://avatars.githubusercontent.com/u/43172017?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/madhaviai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2026-02-12T14:44:52Z",
      "updated_at": "2026-02-13T16:30:01Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nWhen prompting an AI agent to “check LCP” or investigate slow page loads, the agent does not automatically invoke the relevant DevTools MCP performance tools. Tool usage only occurs when explicitly instructed. This seems like a tool discoverability/description issue, and improving tool metadata or prompt-to-tool mapping could make performance debugging more natural.\n\n### Reproduction\n\nChrome DevTools MCP server\n\nAI assistant Cursor IDE invoking MCP tools\n\nTested across multiple prompts related to LCP and performance debugging\n\n### Expectation\n\n<img width=\"585\" height=\"803\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/e09f4fc6-98e8-4666-887a-850acec42599\" />\n<img width=\"583\" height=\"765\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/2fa3f3b0-1139-4bcd-a8d2-014a92f7855e\" />\n\n### MCP configuration\n\n_No response_\n\n### Chrome DevTools MCP version\n\nlatest\n\n### Chrome version\n\n_No response_\n\n### Coding agent version\n\n_No response_\n\n### Model version\n\n_No response_\n\n### Chat log\n\n_No response_\n\n### Node version\n\n_No response_\n\n### Operating system\n\nNone\n\n### Extra checklist\n\n- [x] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/940/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/933",
      "id": 3921761435,
      "node_id": "I_kwDOPt7f_s7pwVSb",
      "number": 933,
      "title": "Bug: Get the currently selected browser tab",
      "user": {
        "login": "tnglemongrass",
        "id": 113173292,
        "node_id": "U_kgDOBr7jLA",
        "avatar_url": "https://avatars.githubusercontent.com/u/113173292?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tnglemongrass",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2026-02-10T14:24:30Z",
      "updated_at": "2026-02-16T10:37:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nAs a user, I'd like to have a simple way to get the current browser tab (content) into my LLM Chat.\n\nExpected workflow:\n- `take_snapshot` (description says ...of the currently selected page...)\n\nActually needed workflow:\n- `list_pages`\n- `select_page` (manually pick the one that is already open in browser)\n- `take_snapshot`\n\nWhy doesn't the expected workflow work?\nThe 'list_pages' tool shows 'selected', but it is not in sync with the actual browser initiall (on startup) and can easily get out-of-sync (when user manually changes tabs). So it often returns content from the wrong page.\n\nUse cases:\n- user reads a relevant docs page (already open)\n- user inspects a failed pipeline run after he got a mail and clicked it (already open)\n- user wants to share information behind a paywall (open and logged in)\n- ...\n\nNote: This is about the scenario where chrome-dev-tools is connected via `--auto-connect` to an already running browser instance, as described in https://github.com/ChromeDevTools/chrome-devtools-mcp?tab=readme-ov-file#configuration.\n\n### Reproduction\n\n1. Open Chrome, open at least two tabs with two different websites.\n2. Open VSCode\n3. As to \"take a snapshot and summarize the page\"\n\n\n### Expectation\n\n- `take_snapshot` should return the page the user is currently looking at, not a different one\n- `list_pages` should show 'selected' tag on the page that is currently open in the browser (e.g. last focused, last visited, or similar)\n\n\n### MCP configuration\n\n```\n{\n\t\"inputs\": [],\n\t\"servers\": {\n\t\t\"chrome-devtools\": {\n\t\t\t\"type\": \"stdio\",\n\t\t\t\"command\": \"npx\",\n\t\t\t\"args\": [\n\t\t\t\t\"chrome-devtools-mcp@latest\",\n\t\t\t\t\"--autoConnect\"\n\t\t\t],\n\t\t\t\"gallery\": \"https://api.mcp.github.com\",\n\t\t\t\"version\": \"0.17.0\"\n\t\t}\n\t}\n}\n```\n\n### Chrome DevTools MCP version\n\n0.17.0\n\n### Chrome version\n\n144.0.7559.133 (Official Build) (64-bit) (cohort: Stable) \n\n### Coding agent version\n\nVSCode 1.109.0 + Github Copilot Chat 0.37.2\n\n### Model version\n\nGPT-4.1\n\n### Chat log\n\n_No response_\n\n### Node version\n\nv24.12.0\n\n### Operating system\n\nWindows\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/933/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/926",
      "id": 3916528631,
      "node_id": "I_kwDOPt7f_s7pcXv3",
      "number": 926,
      "title": "Feature request: Multi-session support for parallel browser instances",
      "user": {
        "login": "RobertWsp",
        "id": 67512895,
        "node_id": "MDQ6VXNlcjY3NTEyODk1",
        "avatar_url": "https://avatars.githubusercontent.com/u/67512895?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/RobertWsp",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "matthiasrohmer",
        "id": 12857772,
        "node_id": "MDQ6VXNlcjEyODU3Nzcy",
        "avatar_url": "https://avatars.githubusercontent.com/u/12857772?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/matthiasrohmer",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "matthiasrohmer",
          "id": 12857772,
          "node_id": "MDQ6VXNlcjEyODU3Nzcy",
          "avatar_url": "https://avatars.githubusercontent.com/u/12857772?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/matthiasrohmer",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 7,
      "created_at": "2026-02-09T13:55:12Z",
      "updated_at": "2026-02-16T15:45:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nThe current MCP server binds to a single Chrome instance for its entire lifetime. This means any MCP client (AI agent, test runner, automation script) can only interact with one browser at a time. To work with multiple browsers, users must start multiple MCP server processes and manage them externally.\n\n## Use Cases\n\n### 1. AI agents researching multiple sources in parallel\n\nThis is the most natural use case given that the MCP server is designed for LLM integration. AI agents frequently need to:\n\n- Open multiple documentation sites simultaneously to cross-reference information\n- Search across different sources (GitHub, Stack Overflow, official docs) in parallel rather than sequentially\n- Compare content across multiple URLs without losing page state\n\nToday, the agent must navigate away from one page to visit another, losing all context. With multiple sessions, it can keep all pages alive and switch between them.\n\n### 2. Multi-user interaction testing\n\nTesting real-time collaborative features requires simulating multiple users:\n\n- **Chat applications**: User A sends a message, verify User B receives it\n- **Collaborative editing**: Two users editing the same document simultaneously\n- **Multiplayer flows**: Testing turn-based or real-time interactions\n\nEach user needs their own isolated browser with separate cookies, auth state, and session storage.\n\n### 3. Authenticated vs unauthenticated comparison\n\nCommon debugging workflow:\n\n- Session A: Logged in as admin\n- Session B: Logged in as regular user\n- Session C: Not logged in\n\nCompare how the same page renders across different auth states without logging in/out repeatedly.\n\n### 4. CI/CD parallel test execution\n\nA single MCP server could serve multiple test runners in a CI pipeline, each getting its own isolated browser. This avoids the overhead of spawning N separate MCP server processes and N separate Chrome instances managed externally.\n\n### 5. Cross-viewport testing\n\nSimultaneously test the same page across different viewport configurations:\n\n- Desktop (1920×1080)\n- Tablet (768×1024)\n- Mobile (375×812)\n\nEach session runs with its own viewport settings, enabling side-by-side responsive testing.\n\n## Proposed API\n\nA minimal approach:\n\n| Tool | Purpose |\n|------|---------|\n| `create_session` | Launch a new Chrome instance, returns a unique `sessionId` |\n| `list_sessions` | List active sessions with metadata |\n| `close_session` | Shut down a specific session |\n\nAll existing tools would accept an optional `sessionId` parameter. If omitted, a default/single session is used (fully backward compatible).\n\n## Prior Art\n\nI have a working implementation in PR #899 that demonstrates this approach. Happy to iterate on the design based on feedback from this discussion.\n\n## Questions for Maintainers\n\n- Are there specific use cases above that resonate more with your roadmap?\n- Would you prefer a different API shape (e.g., session as a resource rather than a tool parameter)?\n- Any concerns about resource management (max sessions, TTL, cleanup) that should be addressed upfront?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/926/reactions",
        "total_count": 9,
        "+1": 7,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 2,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/919",
      "id": 3915464202,
      "node_id": "I_kwDOPt7f_s7pYT4K",
      "number": 919,
      "title": "Configure dialog behavior for script evaluation",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-09T09:47:10Z",
      "updated_at": "2026-02-09T09:58:32Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nSee https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/713#issuecomment-3870526389\n\nIf a script triggers a dialog, it will time out. \n\n### Describe the solution you'd like\n\nWe should automatically handle dialogs during script evaluation and allow configuring this on the tool call.\n\n### Describe alternatives you've considered\n\nN/A\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/919/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/918",
      "id": 3915338163,
      "node_id": "I_kwDOPt7f_s7pX1Gz",
      "number": 918,
      "title": "emulate tool schema uses anyOf, rejected by Claude API",
      "user": {
        "login": "ioku24",
        "id": 238276189,
        "node_id": "U_kgDODjPOXQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/238276189?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ioku24",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 10168911467,
          "node_id": "LA_kwDOPt7f_s8AAAACXh1Gaw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/client-claude",
          "name": "client-claude",
          "color": "7faa9e",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2026-02-09T09:20:53Z",
      "updated_at": "2026-02-09T12:42:38Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nThe `emulate` tool fails when used with Claude Code (and the Claude API in general) because the tool's input schema contains `anyOf`, which the Claude API does not support.\n\n**Error:**\n```\ntools.N.custom.input_schema: input_schema does not support oneOf, allOf, or anyOf\n```\n\n## Root Cause\n\nIn `build/src/tools/emulation.js`, the `geolocation` and `viewport` fields use `.nullable().optional()` on Zod objects:\n\n```js\ngeolocation: zod\n    .object({\n        latitude: zod.number().min(-90).max(90),\n        longitude: zod.number().min(-180).max(180),\n    })\n    .nullable()   // <-- produces anyOf\n    .optional()\n\nviewport: zod\n    .object({\n        width: zod.number().int().min(0),\n        height: zod.number().int().min(0),\n        deviceScaleFactor: zod.number().min(0).optional(),\n        isMobile: zod.boolean().optional(),\n        hasTouch: zod.boolean().optional(),\n        isLandscape: zod.boolean().optional(),\n    })\n    .nullable()   // <-- produces anyOf\n    .optional()\n```\n\nThe bundled `zod-to-json-schema` converter in `third_party/index.js` (line ~22174) translates `.nullable()` on objects to:\n\n```json\n{\n  \"anyOf\": [\n    { \"type\": \"object\", \"properties\": { ... } },\n    { \"type\": \"null\" }\n  ]\n}\n```\n\nNote: `.nullable()` on primitives (like `userAgent: zod.string().nullable()`) is fine — the converter uses `type: [\"string\", \"null\"]` for those. The issue only affects `.nullable()` on object schemas.\n\n## Impact\n\n- **Version affected:** 0.16.0 (latest via npx)\n- **Tool affected:** `emulate` only (the other 25+ tools work fine)\n- **Who's affected:** Anyone using this MCP server with Claude Code or the Claude API\n\n## Suggested Fix\n\nReplace `.nullable().optional()` with `.optional()` and handle `null` clearing logic at the tool handler level. For example:\n\n```js\n// Before:\ngeolocation: zod.object({ ... }).nullable().optional()\n\n// After:\ngeolocation: zod.object({ ... }).optional()\n// Handle \"clear geolocation\" via a separate boolean flag or empty object convention\n```\n\nAlternatively, post-process the generated JSON Schema to replace `anyOf: [{object}, {type: \"null\"}]` with just the object schema marked as optional.\n\n## Environment\n\n- `chrome-devtools-mcp` v0.16.0 (via npx)\n- Claude Code CLI\n- macOS (Apple Silicon)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/918/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/916",
      "id": 3912876336,
      "node_id": "I_kwDOPt7f_s7pOcEw",
      "number": 916,
      "title": "`wait_for`: ability to wait for multiple optional texts (any of them might match)",
      "user": {
        "login": "hybridherbst",
        "id": 2693840,
        "node_id": "MDQ6VXNlcjI2OTM4NDA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2693840?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hybridherbst",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-08T14:47:03Z",
      "updated_at": "2026-02-09T07:56:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nI see chrome-devtools-mcp use wait_for quite a lot, and often in good ways. However, one area it struggles is for long-running processes that might either succeed or fail; it will then wait_for \"Complete\" but the actual message might be \"Error\". I've seen this drive the wait time up (e.g. devtools MCP will assume it's not done and wait another 300 seconds for a process it thinks might be long-running, but has failed after a second already).\n\n### Describe the solution you'd like\n\nAllow wait_for to wait for any term of a provided list, so that devtools mcp can e.g. wait for \"Complete\" or \"Failed\".\n\n### Describe alternatives you've considered\n\nAlternative is very long wait times until it timeouts, and then devtools MCP figures out \"oh, actually it failed\" after 300s or so.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/916/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/915",
      "id": 3912431642,
      "node_id": "I_kwDOPt7f_s7pMvga",
      "number": 915,
      "title": "Chrome-devtools+antigravity startup bug",
      "user": {
        "login": "PieceOfPanic",
        "id": 1810849,
        "node_id": "MDQ6VXNlcjE4MTA4NDk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1810849?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/PieceOfPanic",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-08T09:53:59Z",
      "updated_at": "2026-02-10T17:56:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nUpon startup I get the following text, nomatter if it's a fresh install of both antigravity & chrome-devtools:\n\"2026-02-08 10:49:21.230 [info] I0208 10:49:21.230563 11576 http_helpers.go:196] Failed to make code assist backend request: {\n2026-02-08 10:49:21.231 [info]   \"error\": {\n2026-02-08 10:49:21.231 [info]     \"code\": 404,\n2026-02-08 10:49:21.231 [info]     \"message\": \"Requested entity was not found.\",\n2026-02-08 10:49:21.231 [info]     \"status\": \"NOT_FOUND\"\n2026-02-08 10:49:21.231 [info]   }\n2026-02-08 10:49:21.231 [info] }\n2026-02-08 10:49:21.231 [info] \n2026-02-08 10:49:21.231 [info] E0208 10:49:21.230563 11576 interceptor.go:74] /exa.language_server_pb.LanguageServerService/GetCascadePluginById (unknown): failed to make code assist backend request\"\n\n### Reproduction\n\nit's just there, even on fresh install.\n\n### Expectation\n\n_No response_\n\n### MCP configuration\n\n{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"chrome-devtools-mcp@latest\"]\n    }\n  }\n}\n\n### Chrome DevTools MCP version\n\nlatest, stable.\n\n### Chrome version\n\nVersion 144.0.7559.133 (Official Build) (64-bit)\n\n### Coding agent version\n\nGemini, latest stable(also freshly updated).\n\n### Model version\n\nlatest, stable.\n\n### Chat log\n\n_No response_\n\n### Node version\n\nlatest, stable.\n\n### Operating system\n\nWindows\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/915/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/904",
      "id": 3905887393,
      "node_id": "I_kwDOPt7f_s7ozxyh",
      "number": 904,
      "title": "Identical console messages should be grouped together in the list_console_messages tool",
      "user": {
        "login": "szuend",
        "id": 325588,
        "node_id": "MDQ6VXNlcjMyNTU4OA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/325588?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/szuend",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-06T09:48:09Z",
      "updated_at": "2026-02-10T14:56:49Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nIt is easy to log a message from a hot loop. This results in tons of identical messages.\n\n### Describe the solution you'd like\n\nSimilar to Chrome DevTools, subsequent identical messages should be collapsed and only shown once. A new `[20 times]` prefix/suffix can be added to signify how many of these identical console messages there are.\n\n### Describe alternatives you've considered\n\nBeing careful about logging xD\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/904/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        963
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/903",
      "id": 3905871783,
      "node_id": "I_kwDOPt7f_s7ozt-n",
      "number": 903,
      "title": "The list_console_messages tool should include the source location where a message originated from",
      "user": {
        "login": "szuend",
        "id": 325588,
        "node_id": "MDQ6VXNlcjMyNTU4OA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/325588?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/szuend",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-02-06T09:44:47Z",
      "updated_at": "2026-02-13T20:07:25Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nAt the moment, the user has to use `get_console_message` and look at the stack.\n\n### Describe the solution you'd like\n\nIt would be neat if console messages/uncaught errors include the source-mapped location of where they come from. Its the same as the top-most frame in the stack trace.\n\n### Describe alternatives you've considered\n\nSee above.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/903/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/889",
      "id": 3899101726,
      "node_id": "I_kwDOPt7f_s7oZ5Ie",
      "number": 889,
      "title": "The DevTools MCP is hardcoded to look for Chrome in standard locations",
      "user": {
        "login": "codeweft",
        "id": 4687459,
        "node_id": "MDQ6VXNlcjQ2ODc0NTk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4687459?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/codeweft",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2026-02-05T01:04:03Z",
      "updated_at": "2026-02-16T15:26:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nThis seems to actually be a bug. Most people use mise or scoop for automated installation on windows. This results in chrome being installed in non standard paths. \n\nchrome-devtools - list_pages (MCP)\n  ⎿  Error: Could not find Google Chrome executable for channel 'stable' at:\n      - C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe,\n      - C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe,\n      - C:\\Users\\code\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe,\n      - D:\\Program Files\\Google\\Chrome\\Application\\chrome.exe,\n      - D:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe.\n\nIs there a workaround for this?\n\n### Describe the solution you'd like\n\nauto discover chrome location and use it automatically \n\n### Describe alternatives you've considered\n\nI don't know if you have env support for this. \n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/889/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/879",
      "id": 3892174422,
      "node_id": "I_kwDOPt7f_s7n_d5W",
      "number": 879,
      "title": "Claude errors if the image dimensions exceed 8000 pixels",
      "user": {
        "login": "sebastienkothe",
        "id": 60659186,
        "node_id": "MDQ6VXNlcjYwNjU5MTg2",
        "avatar_url": "https://avatars.githubusercontent.com/u/60659186?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastienkothe",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 10168911467,
          "node_id": "LA_kwDOPt7f_s8AAAACXh1Gaw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/client-claude",
          "name": "client-claude",
          "color": "7faa9e",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 9,
      "created_at": "2026-02-03T16:45:31Z",
      "updated_at": "2026-02-13T15:46:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nWhen using `take_screenshot` on large viewports (e.g., testing responsive design on wide monitors or using `fullPage: true` on long pages), the tool fails with:\n\n```\nAPI Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.7.content.2.image.source.base64.data: At least one of the image dimensions exceed max allowed size: 8000 pixels\"}}\n```\n\nThis happens frequently when testing responsive layouts, making the tool unusable for this common use case.\n\n## Expected behavior\n\nScreenshots should be automatically resized to fit within Claude API limits (max 8000px per dimension) before being sent, preserving aspect ratio.\n\n## Reproduction\n\n1. Open a page in a browser with a large viewport or long scrollable content\n2. Call `take_screenshot` (especially with `fullPage: true`)\n3. Tool fails with the above error\n\n## Suggested fix\n\nResize images before base64 encoding when any dimension exceeds 8000px, preserving aspect ratio. This is a common pattern in similar tools.\n\n## Environment\n\n- MCP: chrome-devtools-mcp (latest via npx)\n- Client: Claude Code\n- OS: macOS",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/879/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/878",
      "id": 3891817104,
      "node_id": "I_kwDOPt7f_s7n-GqQ",
      "number": 878,
      "title": "Screen cast recording",
      "user": {
        "login": "dobesv",
        "id": 327833,
        "node_id": "MDQ6VXNlcjMyNzgzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/327833?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dobesv",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "natorion",
          "id": 7190422,
          "node_id": "MDQ6VXNlcjcxOTA0MjI=",
          "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/natorion",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 6,
      "created_at": "2026-02-03T15:24:33Z",
      "updated_at": "2026-02-14T02:56:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nAllow the agent to record a video of a page.\n\nhttps://pptr.dev/api/puppeteer.page.screencast\n\n### Describe the solution you'd like\n\nhttps://pptr.dev/api/puppeteer.page.screencast\n\n### Describe alternatives you've considered\n\nI did have some success getting the agent to take a lot of screenshots and run ffmpeg itself to create the video. \n\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/878/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        941
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/857",
      "id": 3865448873,
      "node_id": "I_kwDOPt7f_s7mZhGp",
      "number": 857,
      "title": "RFC: GraphQL Support for Chrome DevTools MCP",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9478887856,
          "node_id": "LA_kwDOPt7f_s8AAAACNPxZsA",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/feedback%20wanted",
          "name": "feedback wanted",
          "color": "d93f0b",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-01-28T13:25:47Z",
      "updated_at": "2026-01-30T20:33:46Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\n**_This is an Request For Comments issue. This is a proposal that we would like to get feedback on, before proceeding with implementation. Please add your thoughts and upvotes._**\n=======================\n\nThe current MCP interaction model creates a \"chatty\" and observation-heavy protocol. While the **CLI wrapper** (https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/797) successfully addresses **Action Batching** by allowing agents to execute sequences of commands in a single bash script, agents still face a bottleneck in **Data Orchestration**.\n\nTo diagnose a failure or gather context, an agent currently must perform multiple \"Read\" calls—such as `list_console_messages`, `list_network_requests`, and `take_snapshot`. This leads to:\n\n**Over-fetching:** Agents receive massive JSON blobs with irrelevant metadata, consuming excessive context window tokens.\n\n**Observation Latency:** Multiple round-trips are required to assemble a complete picture of the browser state.\n\n**Disjointed Relationships:** Agents must manually \"join\" related data, such as connecting a console error to the specific network request that triggered it.\n\n\n### Describe the solution you'd like\n\nI would like to discuss the introduction of a `query_devtools` tool that provides a **GraphQL interface** to the browser state.\n\nThis tool would allow agents to act as \"frontends,\" performing high-density, single-turn data fetches where they \"cherry-pick\" only the exact attributes needed from multiple sources like console and network data.\n\n**Example agent-authored query:**\n\n```graphql\n{\n  currentPage {\n    url\n    # Only get errors, and only get the message + stack\n    consoleLogs(level: \"error\") {\n      message\n      stackTrace\n    }\n    # Link network failures to their specific response codes\n    networkRequests(filter: \"failed\") {\n      url\n      status\n      method\n    }\n  }\n}\n\n```\n\n**Key Benefits:**\n\n* **Token Efficiency:** Agents can request specific fields, preventing \"token explosion\" from large, unoptimized resource reads.\n* **Relational Depth:** The schema would allow agents to \"walk\" the graph—for instance, fetching the initiator script source of a failed network request in the same call as the request itself.\n* **Self-Healing Documentation:** Agents can use GraphQL introspection to discover the schema, similar to how they use `--help` for the CLI, reducing hallucinations regarding available data fields.\n\n### Describe alternatives you've considered\n\n\n**MCP Resources:** While the standard MCP Resource spec is excellent for fetching specific \"file-like\" resources, it lacks the ability to filter fields or join multiple data types in a single request, which can lead to the \"chatty\" behavior we are trying to solve.\n\n**Extended CLI Flags:** We could add more complex flags to CLI commands (e.g., `chrome-devtools list_network_requests --include-console-errors`), but this would lead to a bloated interface that is harder for agents to learn and maintain compared to a typed schema.\n\n**Status Quo (Single Tool Calls):** Continuing to rely on granular tool calls keeps the protocol simple but keeps latency high and limits the \"advanced mode\" capabilities of the most capable agents.\n\n\n\n\n### Additional context\n\n### Relationship to the CLI Wrapper\n\nThe GraphQL tool is the **\"Observation\"** counterpart to the CLI's **\"Action\"**.\n\n**The CLI ():** Allows agents to write logic-heavy scripts to perform tasks, such as retrying a form submission if a username is taken.\n\n**The GraphQL Tool (`query_devtools`):** Allows agents to gather the specific, multi-domain data needed to *write* those scripts or to *debug* them when they fail, all in one trip.\n\nTogether, they transform the agent from a \"remote controller\" clicking one button at a time into a \"script writer\" capable of high-level browser orchestration.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/857/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/848",
      "id": 3860335781,
      "node_id": "I_kwDOPt7f_s7mGAyl",
      "number": 848,
      "title": "Network Request Interception and URL Replacement",
      "user": {
        "login": "marco-prontera",
        "id": 50167854,
        "node_id": "MDQ6VXNlcjUwMTY3ODU0",
        "avatar_url": "https://avatars.githubusercontent.com/u/50167854?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/marco-prontera",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-27T12:21:01Z",
      "updated_at": "2026-01-27T12:21:01Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nCurrently there is no automated way through the Chrome DevTools MCP server to intercept and modify network requests. Developers can manually override or redirect resources using the Chrome DevTools UI (e.g., Local Overrides or Response Overrides), but these actions must be done interactively and cannot be scripted or integrated into automated measurement workflows. This becomes a blocker when trying to test development versions of scripts against real production pages.\nThis become a blocker also to automate experiments in CI or lab environments by using built scripts before doing a production release.\nIn this issue I'm referring to script but it could be useful also for others resources as is done in the Chrome DevTools UI.\n\nExample real-world impact: if a production page loads a script at https://bar.foo.com/scriptWeAlreadyHaveInWebsite.js, there is no way via MCP today to replace that with a development version and collect metrics without doing it manually in the browser.\n\n### Describe the solution you'd like\n\nAdd support in the Chrome DevTools MCP server for programmatic network request interception and modification, including:\n\n- Redirect requests to a different URL\n- Override responses with custom content (remote or local file)\n\nSpecifically, the ability to:\n\n- Match a network request (by URL or pattern)\n- Redirect it to a different URL (e.g., dev/newVersion.js)\n- Optionally serve a custom or local file as the response\n\nThis would expose the same functionality found in the DevTools UI (“Override content” / “Local Overrides”) through MCP, enabling automation and tooling scenarios.\n\n### Describe alternatives you've considered\n\nThe only alternative currently available is to manually use Chrome DevTools UI (https://developer.chrome.com/docs/devtools/overrides) or by developing a custom Chrome Extension.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/848/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/835",
      "id": 3855787405,
      "node_id": "I_kwDOPt7f_s7l0qWN",
      "number": 835,
      "title": "Support snapshot diffs",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-26T12:33:12Z",
      "updated_at": "2026-01-26T12:33:12Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nCurrently the tools always return the full page snapshot.\n\n### Describe the solution you'd like\n\nInstead, when the snapshot is delivered in response to an action, we should only produce a diff to the previous snapshot.\n\n### Describe alternatives you've considered\n\nNone\n\n### Additional context\n\nRelated to https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/726",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/835/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/825",
      "id": 3852238342,
      "node_id": "I_kwDOPt7f_s7lnH4G",
      "number": 825,
      "title": "Feature request: Allow persisting remote debugging permission approval",
      "user": {
        "login": "domdomegg",
        "id": 4953590,
        "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/domdomegg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-01-24T22:50:01Z",
      "updated_at": "2026-01-26T15:17:16Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "When using `--autoConnect` with Chrome 144+, every connection attempt shows a permission dialog requiring user approval. It would be helpful to have an option to persist this approval, similar to how USB debugging offers \"Always allow from this computer\".\n\nPossible solutions:\n- A \"Remember my choice\" checkbox in Chrome's dialog\n- A command-line flag to pre-authorize specific clients\n- Token-based authentication that persists",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/825/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/824",
      "id": 3851200979,
      "node_id": "I_kwDOPt7f_s7ljKnT",
      "number": 824,
      "title": "Replace individual input tools with a WebDriver-like API",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-01-24T13:43:15Z",
      "updated_at": "2026-01-27T15:07:33Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nCurrently, we have hover, click and press_key tools which are rather low level and to send multiple of them the client needs to be able to issue multiple tool calls (which might involve multiple LLM round trips). In addition, we support some low level input commands but not all like the perform_actions API.\n\n### Describe the solution you'd like\n\nWebDriver defines the perform actions API https://www.w3.org/TR/webdriver-bidi/#command-input-performActions that allows sending a sequence of actions in one tool call. We can replace our existing low level APIs with an API similar to WebDriver (but integrated with our other concepts like uids). We should not replace higher level APIs though, like fill, fill_form, drag.\n\n### Describe alternatives you've considered\n\nCurrent approach. \n\n### Additional context\n\nWe need to test if the models have any difficulties using the WebDriver like API.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/824/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/808",
      "id": 3841148591,
      "node_id": "I_kwDOPt7f_s7k80av",
      "number": 808,
      "title": "Stop running trace when starting a new trace",
      "user": {
        "login": "jack5github",
        "id": 32806494,
        "node_id": "MDQ6VXNlcjMyODA2NDk0",
        "avatar_url": "https://avatars.githubusercontent.com/u/32806494?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jack5github",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-22T04:09:04Z",
      "updated_at": "2026-01-22T05:20:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nIn an agentic LLM workflow, every step counts towards increasing the load on the AI and its context window. Performance traces are a particularly sore point for LLMs, as only one can be active at any given time. Currently, the MCP server throws an error if attempting to start a new trace when one already exists, even if that trace was from an entirely different conversation completely unrelated to the present one.\n\n### Describe the solution you'd like\n\nRather than throwing an error and interrupting the thought processes of an LLM when running `performance_start_trace`, close any existing performance trace and include a notice that this action happened in the response given by the start tool.\n\n### Describe alternatives you've considered\n\nN/A\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/808/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/806",
      "id": 3839409154,
      "node_id": "I_kwDOPt7f_s7k2LwC",
      "number": 806,
      "title": "take_screenshot captures white background instead of CSS background for transparent canvas elements",
      "user": {
        "login": "drlamer",
        "id": 1286707,
        "node_id": "MDQ6VXNlcjEyODY3MDc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1286707?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/drlamer",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-21T18:02:37Z",
      "updated_at": "2026-01-22T06:51:03Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nWhen using `take_screenshot` on pages with transparent `<canvas>` elements (e.g., Cytoscape.js, Chart.js, Three.js), the screenshot shows a **white background** instead of the actual CSS background color set on the container element.\n\n## Root Cause\n\nThe Chrome DevTools Protocol `Page.captureScreenshot` composites transparent layers against a **white base layer** by default, ignoring CSS backgrounds behind transparent elements.\n\n## Evidence\n\n```javascript\n// DOM inspection shows correct setup:\ncontainerBgColor: \"rgb(15, 23, 42)\"  // Dark slate - correct\ncanvasPixels: { r: 0, g: 0, b: 0, a: 0 }  // Transparent - expected\n\n// But screenshot shows WHITE where it should be dark\n```\n\n- User's browser renders correctly (dark background visible)\n- MCP screenshot shows white background\n- Same page, same DOM, different visual result\n\n## Expected Behavior\n\nScreenshots should capture what the user actually sees in the browser, including CSS backgrounds behind transparent canvas elements.\n\n## Suggested Fix\n\nCall `Emulation.setDefaultBackgroundColorOverride` before `Page.captureScreenshot`:\n\n```javascript\n// Option 1: Add parameter to take_screenshot\ntake_screenshot({ backgroundColor: { r: 15, g: 23, b: 42, a: 255 } })\n\n// Option 2: Auto-detect from page's computed background\nconst bgColor = await getComputedBackgroundColor();\nawait cdp.send('Emulation.setDefaultBackgroundColorOverride', { color: bgColor });\nawait cdp.send('Page.captureScreenshot', {...});\nawait cdp.send('Emulation.setDefaultBackgroundColorOverride', {}); // Reset\n```\n\n## Affected Use Cases\n\n- Network topology visualizations (Cytoscape.js)\n- Data visualization dashboards (Chart.js, D3.js)\n- 3D scenes (Three.js, Babylon.js)\n- Any app using transparent canvas overlays with CSS backgrounds\n- Dark mode applications with canvas elements\n\n## Environment\n\n- chrome-devtools-mcp: latest (via npx)\n- Chrome: 143.x\n- OS: Windows 10\n\n## References\n\n- [Puppeteer issue #344](https://github.com/puppeteer/puppeteer/issues/344) - Same root cause, fixed with `setDefaultBackgroundColorOverride`\n- [CDP Emulation.setDefaultBackgroundColorOverride](https://chromedevtools.github.io/devtools-protocol/tot/Emulation/#method-setDefaultBackgroundColorOverride)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/806/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/797",
      "id": 3829608944,
      "node_id": "I_kwDOPt7f_s7kQzHw",
      "number": 797,
      "title": "RFC: CLI wrapper to enable agent-authored browser scripting",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        },
        "3": {
          "id": 9478887856,
          "node_id": "LA_kwDOPt7f_s8AAAACNPxZsA",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/feedback%20wanted",
          "name": "feedback wanted",
          "color": "d93f0b",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2026-01-19T12:53:18Z",
      "updated_at": "2026-01-28T11:47:42Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nThe current MCP interaction model requires an agent to perform a full read/think/act loop for every single browser action. For complex tasks—like scraping multiple pages or conditional navigation—this is inefficient, slow, and consumes excessive tokens.\n\nAgents currently lack the ability to \"batch\" actions or apply simple logic (like loops or retries) without re-prompting the LLM for every step.\n\n### Describe the solution you'd like\n\nI would like to explore and understand interest in `chrome-devtools-cli`: a command-line interface wrapper for the Chrome DevTools MCP server.\n\nBy exposing MCP capabilities via a CLI, agents can write and execute bash scripts to control the browser. This unlocks powerful workflows:\n\n- Batching & latency reduction: Instead of 10 separate HTTP round-trips, an agent can generate a single script to perform a sequence of actions immediately.\n- Logic & control flow: Agents can utilize standard bash logic (loops, conditionals) to handle tasks without constant re-prompting.\n\nExample agent-authored script:\n```\n#!/bin/bash\nurls=(\"https://example.com/page1\" \"https://example.com/page2\")\n\nfor url in \"${urls[@]}\"; do\n  chrome-devtools-cli navigate_page --url \"$url\"\n  chrome-devtools-cli wait_for --text \"Success\" --timeout 2000\n  chrome-devtools-cli take_screenshot --filePath \"results/$(basename $url).png\"\ndone\n```\n\n### Describe alternatives you've considered\n\n- **Status quo (single tool calls):** We could continue relying on individual tool calls, but this prevents optimization of latency and token usage for repetitive tasks.\n- **Generating Puppeteer/Playwright scripts:** Agents could write raw Node.js scripts, but this requires a heavier runtime environment, and more complex code generation compared to a simple, pre-installed CLI wrapper.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/797/reactions",
        "total_count": 4,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 4,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/775",
      "id": 3816949487,
      "node_id": "I_kwDOPt7f_s7jggbv",
      "number": 775,
      "title": "Connecting to Chrome with suspended/frozen tabs fails (usually with --auto-connect)",
      "user": {
        "login": "ProjectBetelgeuse",
        "id": 8183220,
        "node_id": "MDQ6VXNlcjgxODMyMjA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8183220?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ProjectBetelgeuse",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "OrKoN",
          "id": 399150,
          "node_id": "MDQ6VXNlcjM5OTE1MA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/OrKoN",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 27,
      "created_at": "2026-01-15T10:30:07Z",
      "updated_at": "2026-02-13T19:51:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Update**: see a workaround here https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/775#issuecomment-3762914013\n\n### Description of the bug\n\nI have try to use the opencode and connect it to the MCP. I set it to autoConnect. Updated to Chrome 144 and enabled the Remote debugging. But it always timeout and I don't see any change in the chrome. It output  chrome-devtools_new_page [url=https://developers.chrome.com]. But it didn't open any new page and timed out. \n\nAlso in the doc there is a inconsistance out the autoConnect version support. At some place it said 145+ but for the tutorial of how to autoConnect it said 144+. \n\n### Reproduction\n\n1. Use \"opencode\"\n2. Add MCP to to it. \n`    \"chrome-devtools\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\",\"chrome-devtools-mcp@latest\", \"--autoConnect\", \"--channel=beta\"],\n    }` or\n`    \"chrome-devtools\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\",\"chrome-devtools-mcp@latest\", \"--autoConnect\", \"--channel=stable\"],\n    }` or\n`    \"chrome-devtools\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\",\"chrome-devtools-mcp@latest\", \"--autoConnect\"],\n    }`\n3. Use chrome 144 and toggle the remote debugging. \n4. Tell AI in the opencode to check the performance of https://developers.chrome.com\n\n### Expectation\n\nFor chrome 144+. The autoConnect should work by follow the doc in the readme. \n\n### MCP configuration\n\n    \"chrome-devtools\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\",\"chrome-devtools-mcp@latest\", \"--autoConnect\", \"--channel=stable\"],\n    }\n\n### Chrome DevTools MCP version\n\nv0.13.0\n\n### Chrome version\n\n144.0.7559.60\n\n### Coding agent version\n\nopencode 1.1.21\n\n### Model version\n\nClaude opus 4.5\n\n### Chat log\n\n_No response_\n\n### Node version\n\n24.11.0\n\n### Operating system\n\nmacOS\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/775/reactions",
        "total_count": 5,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 2
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/731",
      "id": 3782675646,
      "node_id": "I_kwDOPt7f_s7hdwy-",
      "number": 731,
      "title": "Add JavaScript and CSS Code Coverage Tracking Tools",
      "user": {
        "login": "yashverma2110",
        "id": 42317408,
        "node_id": "MDQ6VXNlcjQyMzE3NDA4",
        "avatar_url": "https://avatars.githubusercontent.com/u/42317408?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/yashverma2110",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-01-05T19:47:08Z",
      "updated_at": "2026-01-22T06:51:28Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nWhen optimising websites, developers need to identify unused JavaScript and CSS code to reduce bundle sizes and improve page load performance. While Chrome DevTools has a Coverage panel, there's no programmatic way to:\n\n  1. **Capture coverage data via MCP**: AI assistants and automation tools can't access coverage information to provide optimisation recommendations\n  2. **Track coverage across user interactions**: Manual DevTools usage requires keeping the panel open and manually triggering coverage collection\n  3. **Get structured coverage reports**: The DevTools UI doesn't provide machine-readable output for automated analysis\n  4. **Identify third-party vs. internal code waste**: Understanding which unused code is from dependencies vs. application code is crucial for optimisation\n\nWithout programmatic coverage access, AI assistants can't help developers identify dead code, suggest lazy loading opportunities, or recommend bundle splitting strategies based on actual usage patterns\n\n### Describe the solution you'd like\n\nAdd two MCP tools that enable programmatic JavaScript and CSS coverage tracking:\n\n  ### Tool 1: `coverage_start`\n  Begins tracking which JavaScript and CSS code is actually executed/used on the page.\n\n  **Parameters:**\n  - `resetOnNavigation` (default: true): Whether to reset coverage data on page navigation\n  - `includeJS` (default: true): Track JavaScript coverage\n  - `includeCSS` (default: true): Track CSS coverage\n\n  **Usage:**\n  ```javascript\n  // Start tracking both JS and CSS\n  coverage_start()\n\n  // Start tracking only JavaScript\n  coverage_start({ includeJS: true, includeCSS: false })\n```\n\n### Tool 2: coverage_stop\nStops coverage tracking and returns a comprehensive report showing used vs. unused code.\n\n**Parameters**:\n  - `pageSize` (default: 5, max: 5): Results per page for manageable output\n  - `pageIdx` (default: 0): Page number for pagination\n\n  Outputs:\n  - Per-file metrics: URL, total bytes, used bytes, unused bytes, usage percentage\n  - Third-party detection: Automatically identifies external libraries (CDNs, node_modules, vendor bundles)\n  - Sorted by waste: Results ordered by unused bytes (most wasteful files first)\n  - Summary statistics: Total resources, bytes, overall usage percentage\n  - Paginated results: Token-optimized output with navigation hints\n\n  Example output:\n  ## Coverage Report\n\n  ### Summary\n  - Total resources: 15\n  - Total bytes: 2,450,000\n  - Used bytes: 1,230,000\n  - Unused bytes: 1,220,000\n  - Overall usage: 50.2%\n\n  ### JavaScript Coverage\n  | URL | Type | Total Bytes | Used Bytes | Unused Bytes | Usage % |\n  |-----|------|-------------|------------|--------------|---------|\n  | ...vendor.js | 3rd-party | 850,000 | 200,000 | 650,000 | 23.5% |\n  | ...app.js | Internal | 120,000 | 118,000 | 2,000 | 98.3% |\n\n  Typical Workflow:\n\n  1. Navigate to the page to test\n  2. Call coverage_start to begin tracking\n  3. Interact with the page (click buttons, navigate, trigger features)\n  4. Call coverage_stop to get the report\n  5. Analyze results to identify optimization opportunities\n\n  This enables AI assistants to:\n  - Recommend lazy loading for rarely-used code\n  - Identify oversized third-party dependencies\n  - Suggest code splitting based on actual usage patterns\n  - Provide data-driven bundle optimization advice\n\n### Describe alternatives you've considered\n\n1. Manual Chrome DevTools Coverage panel:\n    - Not accessible programmatically by AI assistants\n    - Requires manual operation and copy-paste of results\n    - No machine-readable structured output\n    - Can't be automated or integrated into workflows\n2. Puppeteer Coverage API directly:\n    - Requires developers to write custom scripts\n    - Returns raw data without formatting or analysis\n    - No third-party detection or sorting\n    - Difficult to use for non-technical users or AI assistants\n3. Webpack/Vite bundle analyzers:\n    - Show what's in bundles, not what's actually used at runtime\n    - Static analysis only, no real user interaction data\n    - Separate tooling outside browser environment\n    - Don't capture CSS coverage\n4. Lighthouse unused CSS/JS audits:\n    - Limited to initial page load only\n    - Doesn't track coverage across interactions\n    - No detailed per-file breakdown\n    - Part of larger audit suite, not focused coverage tool\n\n### Additional context\n\nUse cases:\n  - AI-assisted bundle optimization recommendations\n  - Automated performance testing workflows\n  - Identifying candidates for lazy loading\n  - Detecting unused third-party dependencies\n  - Code splitting decision support\n  - Before/after optimization comparisons\n\nToken optimization:\n  - Paginated results prevent massive output dumps\n  - Summary metrics provide overview without details\n  - Short URLs (truncated to last 47 chars)\n  - Compact table format for readability",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/731/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/716",
      "id": 3769931999,
      "node_id": "I_kwDOPt7f_s7gtJjf",
      "number": 716,
      "title": "Accessibility tree/snapshot for a specific DOM element, including whole hierarchy below it (custom \"root\" element)",
      "user": {
        "login": "BogdanCerovac",
        "id": 8626513,
        "node_id": "MDQ6VXNlcjg2MjY1MTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8626513?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/BogdanCerovac",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2025-12-30T11:50:42Z",
      "updated_at": "2026-01-26T07:06:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nWith #363, we have the possibility to extract the whole structure and whole structure alone.\n\nThis is great, but can also cause context \"overflows\" or extreme token usage for complex pages where we perhaps just wanted to check a specific element or a sub-tree of specific elements.\n\n### Describe the solution you'd like\n\nAs discussed in https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/363#issuecomment-3456531920\n\nTo make things flexible and effective, I suggest to have the possibility to \"extract\" only a sub-tree, based on a specific root element that I can define.\n\nFor example - if I want to just get the navigation and not the whole page, I could use the `nav#main-nav` or just `#main-nav` as a root and the MCP would return nav all elements under it.\n\nThat would help me to isolate the results when needed and saved on time, tokens and other resources.\n\n### Describe alternatives you've considered\n\nSurely, we can post-process the whole tree after it is extracted. But that means that we always use a lot of time and tokens and can sometimes get to the limits of context window etc. Especially for smaller LLMs.\n\n### Additional context\n\nIn my experience, as a developer, I often work on components in isolation and less in the context of a full page. This means that getting whole tree all of the time is wasting time and resources and making me less effective.\n\nI guess that most of developers work more on single components than on whole pages, so I think that having the isolated results for a specific component is way more effective. Especially on larg(er) sites with lots of components.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/716/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/698",
      "id": 3750991711,
      "node_id": "I_kwDOPt7f_s7fk5df",
      "number": 698,
      "title": "Enable extension loading when --load-extension is provided",
      "user": {
        "login": "diraneyya",
        "id": 107997002,
        "node_id": "U_kgDOBm_nSg",
        "avatar_url": "https://avatars.githubusercontent.com/u/107997002?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/diraneyya",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-12-21T10:17:25Z",
      "updated_at": "2026-01-23T14:28:03Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Use Case\n\nWe needed to test a browser extension using an AI assistant and chrome-devtools-mcp. The extension had RTL positioning fixes that required testing with actual form fields.\n\n## Current Behavior\n\nWhen using `--chromeArg=\"--load-extension=/path/to/extension\"`, the extension doesn't load because chrome-devtools-mcp launches Chrome with `--disable-extensions` by default, which overrides the `--load-extension` flag.\n\n## Proposed Solution\n\nWhen `--load-extension` is detected in Chrome arguments, automatically set `enableExtensions: true` instead of the default `false`.\n\n## Real-World Impact\n\nThis change would enable:\n- Testing browser extensions during development\n- AI-assisted debugging of extension functionality\n- Automated extension testing workflows\n\n## Current Workaround\n\nWe had to patch the package locally (see [this commit](https://github.com/diraneyya/clients/commit/e5fd062)) which works but isn't ideal for distribution.\n\n## Implementation\n\nCould check for `--load-extension` in the Chrome args and automatically enable extensions when detected, rather than requiring manual patching.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/698/reactions",
        "total_count": 11,
        "+1": 11,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/694",
      "id": 3747481589,
      "node_id": "I_kwDOPt7f_s7fXgf1",
      "number": 694,
      "title": "Support multiple Chrome Profiles",
      "user": {
        "login": "sebastianbenz",
        "id": 380472,
        "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastianbenz",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-19T13:07:58Z",
      "updated_at": "2025-12-19T13:07:58Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nWhen multiple profiles are open at the same time, there's no way to control which profile will be automated by the MCP server. The MCP server will select the default profile as determined by Chrome. \n\n### Describe the solution you'd like\n\nA way to explicitly select a profile when running the MCP server.\n\n### Describe alternatives you've considered\n\n`--profile-directory` can be used on Chrome to specify the default profile (https://superuser.com/questions/377186/how-do-i-start-chrome-using-a-specified-user-profile), this might be a good option (which we should document if it works).\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/694/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        753
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/675",
      "id": 3724072809,
      "node_id": "I_kwDOPt7f_s7d-Ndp",
      "number": 675,
      "title": "[Enhancement] Robust Snapshot Architecture: Dual-Source Accessibility, Defensive Href Extraction & Download Link Detection",
      "user": {
        "login": "JaviMaligno",
        "id": 25660622,
        "node_id": "MDQ6VXNlcjI1NjYwNjIy",
        "avatar_url": "https://avatars.githubusercontent.com/u/25660622?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JaviMaligno",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-12-12T16:33:33Z",
      "updated_at": "2026-01-23T14:29:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Related Issues\n- #363 - Accessibility tree/element(s) snapshot\n- #284 - Download folder configuration for automation\n- Puppeteer [#6311](https://github.com/puppeteer/puppeteer/issues/6311) - URL attribute for links\n\n## Problem Statement\n\nWhile working on browser automation for AI agents, we identified several reliability gaps in snapshot/extraction that affect real-world usage:\n\n1. **Href extraction edge cases** - Some dynamically-rendered links or SPAs don't expose `href` reliably through the accessibility tree alone\n2. **No proactive download identification** - Agents must parse snapshot text manually to find downloadable files\n3. **Single-source accessibility** - Relying solely on Puppeteer's snapshot can miss semantics (as discussed in #363)\n4. **Snapshot fragility** - Individual element failures can break the entire snapshot\n\n## Proposed Improvements\n\nWe've implemented and deployed (Azure production) solutions for these:\n\n### 1. Dual-Fallback Href Extraction\n```javascript\n// Runtime.callFunctionOn with fallback\nreturn this.href || this.getAttribute('href') || '';\n```\nThis handles edge cases where the standard property read fails (related to Puppeteer #6311 discussion).\n\n### 2. Explicit `downloadLinks` Field\n```typescript\ninterface SnapshotResult {\n  // ... existing fields\n  downloadLinks: Array<{\n    url: string;\n    filename: string;\n    extension: string;\n  }>;\n}\n```\nAutomatically identifies downloadable files by extension (`.csv`, `.xlsx`, `.zip`, `.pdf`, `.json`, etc.). Agents no longer need to parse text manually.\n\n### 3. Dual-Source Accessibility Tree\n| Source | Purpose |\n|--------|---------|\n| Puppeteer `page.accessibility.snapshot()` | Semantic structure |\n| CDP `backendNodeId` | Precise DOM element mapping |\n\nThis addresses the gaps @BogdanCerovac identified in #363 - combining semantic accessibility with precise DOM mapping.\n\n### 4. Resilient Error Handling\n```typescript\n// Continue on individual element failures\nfor (const node of nodes) {\n  try {\n    await extractNodeData(node);\n  } catch (e) {\n    console.warn(`Skipping node: ${e.message}`);\n    continue; // Don't fail entire snapshot\n  }\n}\n```\n\n## Implementation\n\nWe have a working implementation deployed in production. Happy to:\n- [ ] Submit a PR with these improvements\n- [ ] Provide more technical details on any specific aspect\n- [ ] Discuss alternative approaches\n\n## Questions for Maintainers\n\n1. Would you prefer these as separate PRs or one consolidated change?\n2. For `downloadLinks` - should this be opt-in via a parameter or always included?\n3. Any concerns about the dual-source approach adding complexity?\n\n/cc @OrKoN",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/675/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/671",
      "id": 3722437680,
      "node_id": "I_kwDOPt7f_s7d3-Qw",
      "number": 671,
      "title": "Make reloading a page a separate tool",
      "user": {
        "login": "jonathanloske",
        "id": 6302908,
        "node_id": "MDQ6VXNlcjYzMDI5MDg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6302908?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jonathanloske",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-12-12T08:04:03Z",
      "updated_at": "2025-12-12T13:42:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nBackground: IMHO, it is usually innocuous for an agent to reload a page but navigating to a new page is a totally different game. Currently, it is not easy to configure access rights for these separately as both these capabilities live under `navigate_page`. Therefore, it would be great if this could be a separate tool.\n\nI am using Claude Code.\n\n### Describe the solution you'd like\n\nTo enhance security, it would be nice if reloading a page would be a separate tool, ie `reload_page`.\n\n### Describe alternatives you've considered\n\nI've tried configuring just the reload functionality in `.claude/settings.json` but to no avail. This might be due to me not knowing how to configure sub-parts of tools.\n\n### Additional context\n\nConfiguring permissions in Claude Code:\n* https://code.claude.com/docs/en/iam#tool-specific-permission-rules\n* https://code.claude.com/docs/en/settings#permission-settings",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/671/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/632",
      "id": 3675194126,
      "node_id": "I_kwDOPt7f_s7bDwMO",
      "number": 632,
      "title": "Unified `capture_debug_bundle` Tool (HAR + Console + Performance + Screenshot)",
      "user": {
        "login": "hamdigaied",
        "id": 33940594,
        "node_id": "MDQ6VXNlcjMzOTQwNTk0",
        "avatar_url": "https://avatars.githubusercontent.com/u/33940594?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hamdigaied",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-11-28T14:59:59Z",
      "updated_at": "2025-12-05T14:47:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nWhen an agent using `chrome-devtools-mcp` encounters a bug, regression, or “suspicious behavior” in the page, it’s often necessary to collect *multiple* types of DevTools data to debug it properly:\n\n- Network behavior (HAR / waterfall).\n- Console errors & warnings.\n- Performance characteristics (long tasks, main thread activity, layout thrashing).\n- Visual context (screenshot, viewport snapshot).\n- Possibly some DOM / storage context.\n\nRight now, an agent (or the host) would need to:\n\n- Call several low-level tools (if exposed) or\n- Rely on custom scripting and CDP calls outside of the MCP server, or\n- Skip collecting this data entirely, which makes handoff to humans or later analysis much harder.\n\nIn contrast, when humans debug in Chrome DevTools, it’s common to “export a HAR”, “take a screenshot”, or “record a performance trace” around the point where the issue occurs and attach it to a bug report.\n\nFor agents, there’s no single, high-level way to say:\n\n> “I’ve hit a problem here — please capture the relevant DevTools artifacts so a human (or another system) can analyze this later.”\n\n### Describe the solution you'd like\n\nIntroduce a **single, high-level tool** (e.g. `capture_debug_bundle`) that collects a configurable set of debugging artifacts from the current page/session and returns them in a structured form.\n\n#### 1. `capture_debug_bundle` tool\n\n- **Inputs (example shape, exact schema flexible):**\n  - `include_network_har: bool` (default: true)\n  - `include_console_logs: bool` (default: true)\n  - `include_performance_trace: bool` (default: false or time‑bounded)\n  - `include_screenshot: bool` (default: true)\n  - `trace_duration_ms: number` (optional; if a mini trace should be captured around the call)\n  - `note: string` (optional, agent’s short description of *why* this bundle is captured)\n\n- **Outputs (example):**\n  - `bundle_id: string`\n  - `artifacts: { ... }` with fields such as:\n    - `network_har` (HAR JSON, or reference/URL to stored HAR)\n    - `console_logs` (structured array: type, message, timestamp, stack)\n    - `performance_trace` (trace JSON or URL to trace file)\n    - `screenshot` (data URL or binary reference / URL)\n  - `metadata` (URL, timestamp, user agent, environment/profile name if available, etc.)\n\nThe server could optionally store these bundles somewhere (file system / configured storage) and return references that the host or a human can later retrieve.\n\n#### 2. Optional helper tools\n\nNot strictly required, but could complement the main tool:\n\n- `list_debug_bundles` → enumerate captured bundles in the current session / time window.\n- `get_debug_bundle(bundle_id)` → re‑fetch a previously captured bundle.\n\nFrom the agent’s perspective, the core flow would be:\n\n1. Detect a failure / anomaly (HTTP 5xx, incorrect UI state, unexpected error).\n2. Call `capture_debug_bundle` with a short note.\n3. Surface the resulting `bundle_id` / artifacts to the user, or attach them to a bug tracking system.\n\n### Describe alternatives you've considered\n\n **Calling multiple low-level tools for each artifact.**  \n  This is possible in theory, but:\n  - It’s easy to forget one (e.g. you capture HAR but not console errors).\n  - It increases complexity for every agent or framework that wants good diagnostics.\n  - There’s no standard “debug package” shape, making host tooling and integrations harder.\n\n- **Relying on external CDP scripts or manual DevTools usage.**  \n  Humans can still open DevTools and export HARs or traces manually, but:\n  - This breaks the autonomous / semi‑autonomous agent workflow.\n  - It makes it hard to automate regression workflows (e.g. nightly tests that automatically attach debug bundles to failures).\n\n- **Logging only text descriptions of failures.**  \n  Better than nothing, but:\n  - Lacks the rich, structured data (network timing, trace events, console stacks) that engineers rely on.\n  - Makes it difficult to reproduce complex issues in distributed or flaky environments.\n\n### Additional context\n\nThis feature would be especially useful for:\n\n- Agents running **automated regression tests** against web apps, where failures need to be triaged by humans later.\n- **Performance and reliability testing** scenarios, where capturing consistent bundles around anomalies is critical.\n- Any workflow where the agent needs to **hand off a detailed “case file”** to a developer or another system.\n\nIt also aligns conceptually with how DevTools is used today: as a hub for collecting rich diagnostic artifacts. Exposing a unified `capture_debug_bundle` at the MCP layer would make it much easier for agents to tap into that power without needing deep knowledge of CDP or managing multiple separate tools.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/632/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/603",
      "id": 3658084968,
      "node_id": "I_kwDOPt7f_s7aCfJo",
      "number": 603,
      "title": "[RFC] Support for MCP Apps (Interactive UI)",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-11-24T10:04:39Z",
      "updated_at": "2025-11-26T22:41:02Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nThe chrome-devtools-mcp server currently exposes DevTools capabilities through text and structured data. While powerful for many automation and debugging tasks, this creates friction when the data is inherently visual (like performance profiles, network waterfalls, or complex DOM structures) AND when the agent needs to gather complex, multi-step configuration from the human user.\n\nCurrently, a human user must describe these complex states in text, which can be verbose and imprecise, or ask the user to manually check the DevTools window, breaking the autonomous workflow.\n\n### Describe the solution you'd like\n\nWe are exploring the implementation of the newly proposed [MCP Apps Extension (SEP-1865)](https://blog.modelcontextprotocol.io/posts/2025-11-21-mcp-apps/) to allow the DevTools server to render interactive user interfaces directly in the host client. We see three main areas where this could apply, and would like to know what you think about this:\n\n## Problem 1: Visualizing High-Density Data (The \"Visualization\" Problem) Some DevTools data is too complex to be useful as raw JSON or text summary.\n\nGoal: \"As an AI agent, I want to show the user a visual flame chart of the performance profile I just recorded, rather than describing the function stacks in text.\"\n\nGoal: \"As an AI agent, I want to render the computed styles of an element in a visual box-model layout so the user can instantly see the padding/margin issues.\"\n\n## Problem 2: Complex Interactive Configuration (The \"Input\" Problem) Setting up specific debugging environments often requires tweaking multiple interdependent settings.\n\nGoal: \"As an AI agent, I need to configure network throttling, user agent, and geolocation simultaneously. A simple UI form would be less error-prone than multiple text-based tool calls.\"\n\nGoal: \"As an AI agent, I want to select a specific DOM element for inspection by having the user click on a visual representation or list, rather than guessing CSS selectors.\"\n\n## Problem 3: Live Monitoring (The \"Dashboard\" Problem) Agents often need to \"watch\" something while performing actions.\n\nGoal: \"As an AI agent, I want to provide a live view of the Network tab's filtered requests while I trigger actions on the page, so the user can see 404s as they happen.\"\n\n## Request for feedback \n\n*We are posting this to gauge community interest in adding UI capabilities to the Chrome DevTools MCP server.*\n\nDoes this capability (Interactive UI for DevTools) seem useful to you? (Please add a 👍 reaction to this issue if you would find this useful!)\n\nWhich specific DevTools panels would you most like to see embedded/visualized? (e.g., Network, Elements/Styles, Console, Performance, Application/Storage)\n\nHow do you envision the workflow? (Would you prefer the Agent to pop up a UI automatically when it hits a complex task, or would you ask for it explicitly like \"Show me the network log\"?)\n\nAre there security concerns? (Given that DevTools has deep access to the browser, do you have specific concerns about rendering this data in an MCP App iframe?)\n\n### Describe alternatives you've considered\n\n- Generating static screenshots of DevTools (lacks interactivity).\n- Outputting raw JSON and hoping the Host application has a native way to render it (lacks standardization).\n- Continuing to rely on text descriptions (loses critical visual context).\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/603/reactions",
        "total_count": 4,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 2
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/590",
      "id": 3648553841,
      "node_id": "I_kwDOPt7f_s7ZeINx",
      "number": 590,
      "title": "Dynamic Browser Connection Switching via `switch_browser` Tool",
      "user": {
        "login": "elijahr",
        "id": 153711,
        "node_id": "MDQ6VXNlcjE1MzcxMQ==",
        "avatar_url": "https://avatars.githubusercontent.com/u/153711?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/elijahr",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-11-20T18:33:57Z",
      "updated_at": "2026-01-12T10:27:14Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nYes. The chrome-devtools-mcp server currently requires the browser connection URL to be hardcoded at initialization time through command-line arguments (`--browserUrl` or `--wsEndpoint`) or via the MCP client's\nconfiguration file. This creates several critical limitations that make the MCP unusable for many real-world development workflows.\n\n### The Core Problems:\n\n**1. Dynamic Port Allocation**\n\nMany browser automation tools use dynamic port allocation where the actual port number isn't known until runtime. Since I don't know the port until after the tool starts, it's impossible to configure the MCP server connection URL ahead of time. \n\n**2. Multi-Session Workflow Constraints**\n\nWhen the browser connection is hardcoded at MCP server startup, only one coding session can effectively use the MCP server at a time. To switch between different browser instances, I must:\n1. Exit the MCP client entirely (claude code CLI)\n2. Manually edit the JSON configuration file with the MCP command line args\n3. Restart the client\n4. Manually resume my previous conversation/session\n\nThis workflow is disruptive and time-consuming for what should be a simple operation.\n\n**3. Real-World Impact**\n\nMy specific workflow involves using Claude Code with Cypress tests. When I start a Cypress test session, Chrome DevTools opens on a random port.\n\n### Analogies to Illustrate the Limitation:\n\nThis is like a phone that requires you to specify who you're going to call before turning it on, and can only call that one person until you restart the phone with a different number configured, or a GPS that requires you to enter your destination before starting your car, and won't let you change destinations mid-trip. If you need to make a detour or change plans, you'd have to pull over, turn off the car, reconfigure the GPS, and restart.\n\n### Describe the solution you'd like\n\nA `switch_browser` tool that accepts a browser connection URL as a parameter, allowing MCP clients to dynamically connect to different browser instances during a session.\n\n**Proposed Tool Signature:**\n\n```json\n{\n  \"name\": \"switch_browser\",\n  \"parameters\": {\n    \"url\": \"http://127.0.0.1:9222\",  // or ws://... endpoint\n    \"timeout\": 10000  // optional, defaults to 10000ms\n  }\n}\n```\n\nKey Capabilities:\n- Disconnect from current browser (if any)\n- Connect to a new browser instance via HTTP URL or WebSocket endpoint\n- Support both http:// URLs (auto-converted to WebSocket) and direct ws:// endpoints\n- Configurable timeout to prevent infinite hangs when browsers are unreachable\n- Maintain backward compatibility (existing workflows unchanged)\n\nWorkflow This Enables:\n1. Start Claude Code (or any MCP client) with the MCP server in --no-launch mode\n2. Run my Cypress tests (or any browser-launching tool)\n3. Use switch_browser to connect to the active Chrome DevTools instance\n4. Debug, iterate, and switch between different test sessions seamlessly\n5. No restarts, no config file editing, no session interruption\n\nBenefits:\n- Adapts to dynamic port allocation from automation tools\n- Enables multi-session debugging workflows\n- Provides runtime flexibility analogous to a web browser's address bar\n- Makes chrome-devtools-mcp more friendly to tools like Cypress, Playwright, and containerized browsers\n\n### Describe alternatives you've considered\n\n**Alternative: Static Port Configuration**\n\nWe could assign predetermined fixed ports to our various browser tools and put corresponding instances of `chrome-devtools-mcp` in the MCP client config:\n\n```json\n{\n  \"chrome-devtools-9222\": { \"args\": [\"--browserUrl=http://127.0.0.1:9222\"] },\n  \"chrome-devtools-9223\": { \"args\": [\"--browserUrl=http://127.0.0.1:9223\"] },\n  \"chrome-devtools-9224\": { \"args\": [\"--browserUrl=http://127.0.0.1:9224\"] }\n}\n```\n\nWhy this approach does not work:\n- Not always possible to control port allocation\n- Increases config complexity\n- Extra context tokens, extra subprocesses\n- Prevents running multiple browser instances simultaneously without config changes\n- Still requires restarting the MCP client to add new ports\n\n### Additional context\n\nI've already implemented this feature in PR #582\n\nThe implementation includes:\n\n- Proper timeout handling with AbortController to prevent infinite hangs\n- Support for both HTTP URLs (auto-converted to WebSocket via /json/version endpoint) and direct WebSocket endpoints\n- Test coverage\n- Full backward compatibility - no breaking changes to existing workflows\n- Documentation updates",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/590/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/584",
      "id": 3644740898,
      "node_id": "I_kwDOPt7f_s7ZPlUi",
      "number": 584,
      "title": "Add Dockerfile",
      "user": {
        "login": "kgprs",
        "id": 222140758,
        "node_id": "U_kgDODT2ZVg",
        "avatar_url": "https://avatars.githubusercontent.com/u/222140758?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kgprs",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-19T23:10:50Z",
      "updated_at": "2025-11-19T23:10:50Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nI'd like to add this server to the Docker MCP Catalog but it requires a Docker image. Related PR here: https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/573\n\n### Describe the solution you'd like\n\nAdd a Dockerfile to the repo\n\n### Describe alternatives you've considered\n\nNo alternatives\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/584/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/578",
      "id": 3642845393,
      "node_id": "I_kwDOPt7f_s7ZIWjR",
      "number": 578,
      "title": "Add usage pattern",
      "user": {
        "login": "0x1355",
        "id": 4979897,
        "node_id": "MDQ6VXNlcjQ5Nzk4OTc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4979897?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/0x1355",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "sebastianbenz",
        "id": 380472,
        "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastianbenz",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "sebastianbenz",
          "id": 380472,
          "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
          "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebastianbenz",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 6,
      "created_at": "2025-11-19T13:54:02Z",
      "updated_at": "2026-02-10T14:30:29Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nIn about 30% of the sessions I tried, agents had difficulty figuring out the right usage pattern at the beginning, burning a lot of tokens unnecessarily. \n\nThe most recent session, from a Claude Code agent: \n\n# --------------------------------------------------------------------------\n\n> It seemed to take you a while to figure out how to use the mcp tool correctly. Is that the case? Do you have instructions from the MCP server on how to use the tools? \n\n● Yes, it took me a while. Looking at my tool definitions, I have the function signatures and parameters for the MCP chrome-devtools tools, but they don't explain the usage \n  pattern:\n\n  What the tool docs tell me:\n  - take_snapshot() - \"Take a text snapshot of the currently selected page\"\n  - click(uid) - \"Clicks on the provided element\" with \"uid: The uid of an element on the page from the page content snapshot\"\n\n  What the tool docs DON'T tell me:\n  1. Each action (click, fill, etc.) automatically returns a new snapshot with updated UIDs\n  2. You should use the UIDs from the most recently returned snapshot, not from a manually taken snapshot\n  3. Taking manual snapshots too frequently will cause UIDs to go stale\n  4. The correct pattern is: take snapshot → use UIDs from that snapshot OR from action responses → only take new snapshot when you need to see changed state\n\n  I had to figure this out through trial and error - kept getting \"stale snapshot\" errors until I realized each action was returning fresh UIDs that I should be using.\n\n  The tool documentation describes what each function does, but not how to use them together as a pattern. Is there additional documentation or instructions from the MCP\n  server that I should be seeing?\n\n\n### Describe the solution you'd like\n\nSome usage pattern instructions on the server?\n\n### Describe alternatives you've considered\n\nI am adding that to my custom system prompt for now. \n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/578/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/566",
      "id": 3633110762,
      "node_id": "I_kwDOPt7f_s7YjN7q",
      "number": 566,
      "title": "Is it possible to use the Recorder tool?",
      "user": {
        "login": "johnhuxin",
        "id": 207691905,
        "node_id": "U_kgDODGEggQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/207691905?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/johnhuxin",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-11-17T12:22:57Z",
      "updated_at": "2025-11-22T02:33:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nIs it possible to use the Recorder tool?\n\n### Describe the solution you'd like\n\nCan use the Recorder tool, just like the chrome-devtools.\n\n### Describe alternatives you've considered\n\nNo\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/566/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/553",
      "id": 3627755545,
      "node_id": "I_kwDOPt7f_s7YOygZ",
      "number": 553,
      "title": "Stealth mode to circumvent bot detection",
      "user": {
        "login": "ibac03",
        "id": 174834558,
        "node_id": "U_kgDOCmvDfg",
        "avatar_url": "https://avatars.githubusercontent.com/u/174834558?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ibac03",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 12,
      "created_at": "2025-11-15T01:38:44Z",
      "updated_at": "2026-01-08T12:43:04Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Being Blocked by bot detection.\n\nTill date I was using this MCP server programatically with open ai agents SDK to create an AI agent.  \n\nI avoided bot detection while running in headless with the following config - \n\n\"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx -y chrome-devtools-mcp@latest\",\n      \"env\": {},\n      \"args\": [\n        \"--headless=true\",\n        \"--isolated=true\",\n        \"--viewport=1280x900\",\n        \"--chromeArg=--disable-blink-features=AutomationControlled\",\n        \"--chromeArg=--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\"\n      ]\n    }\n\nBut now those websites have updated their bot measures and even with \"--headless=false\" this config triggers a bot response.\n\n\n### Describe the solution you'd like\n\nZFC Digital's puppeteer-real-browser package is stealthy and avoids bot triggers. \n\nSo is there any way to get the mcp server to use/rely on that package to avoid bot detection? Or is there any other way to configure the chromedevtools mcp server to avoid bot measures?\n\nAny advice is greatly appreciated.\n\n### Describe alternatives you've considered\n\nThere is another mcp literally called the puppeteer-real-browser-mcp-server which does not trigger bot measures but is not as reliable as the ChromeDevTools mcp. \n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/553/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/509",
      "id": 3579455673,
      "node_id": "I_kwDOPt7f_s7VWii5",
      "number": 509,
      "title": "Could you add to Readme a description how to run Chrome MCP with Codex under WSL?",
      "user": {
        "login": "it-sha",
        "id": 54891989,
        "node_id": "MDQ6VXNlcjU0ODkxOTg5",
        "avatar_url": "https://avatars.githubusercontent.com/u/54891989?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/it-sha",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "OrKoN",
          "id": 399150,
          "node_id": "MDQ6VXNlcjM5OTE1MA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/OrKoN",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 9,
      "created_at": "2025-11-02T11:33:01Z",
      "updated_at": "2026-02-13T08:46:46Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382278,
        "node_id": "IT_kwDOAKvUJ84AFReG",
        "name": "Bug",
        "description": "An unexpected problem or behavior",
        "color": "red",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-07-26T10:24:48Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nThe best solution I have found https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/131#issuecomment-3417555953\n\nIt works with Claude Code but not with Codex\n\n\n### Reproduction\n\n1. Set codex config.toml \n```\n[mcp_servers.chrome-devtools]\ncommand = \"npx\"\nargs = [\n    \"chrome-devtools-mcp@latest\",\n    \"--executablePath\",\n    \"/home/max/chrome/chrome/linux-141.0.7390.122/chrome-linux64/chrome\",\n    \"--no-sandbox\",\n    \"--disable-setuid-sandbox\",\n    \"--categoryPerformance=false\",\n    \"--categoryEmulation=false\",\n    \"--categoryNetwork=false\",\n]\n```\n2. Run mcp \nSee error\n```\nCalled chrome-devtools.new_page({\"timeout\":120000,\"url\":\"https://ya.ru\"})\n  └ Missing X server to start the headful browser. Either set headless to true or use xvfb-run to run your Puppeteer script.\n```\n\n### Expectation\n\n_No response_\n\n### MCP configuration\n\n[mcp_servers.chrome-devtools]\ncommand = \"npx\"\nargs = [\n    \"chrome-devtools-mcp@latest\",\n    \"--executablePath\",\n    \"/home/max/chrome/chrome/linux-141.0.7390.122/chrome-linux64/chrome\",\n    \"--no-sandbox\",\n    \"--disable-setuid-sandbox\",\n    \"--categoryPerformance=false\",\n    \"--categoryEmulation=false\",\n    \"--categoryNetwork=false\",\n]\n\n### Chrome DevTools MCP version\n\n0.9.0\n\n### Chrome version\n\nchrome/linux-141.0.7390.122/chrome-linux64\n\n### Coding agent version\n\nOpenAI Codex (v0.53.0)\n\n### Model version\n\n_No response_\n\n### Chat log\n\n_No response_\n\n### Node version\n\n_No response_\n\n### Operating system\n\nNone\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/509/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/491",
      "id": 3565204258,
      "node_id": "I_kwDOPt7f_s7UgLMi",
      "number": 491,
      "title": "Identify specific long tasks within the main thread for a specific third party",
      "user": {
        "login": "simeon-uxify",
        "id": 176488168,
        "node_id": "U_kgDOCoT-6A",
        "avatar_url": "https://avatars.githubusercontent.com/u/176488168?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/simeon-uxify",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "jackfranklin",
        "id": 193238,
        "node_id": "MDQ6VXNlcjE5MzIzOA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/193238?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jackfranklin",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "jackfranklin",
          "id": 193238,
          "node_id": "MDQ6VXNlcjE5MzIzOA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/193238?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jackfranklin",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 1,
      "created_at": "2025-10-29T10:02:27Z",
      "updated_at": "2025-10-29T10:35:29Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nI usually use the Chrome Dev Tools to analyze third party scripts, specifically the longest tasks in the main thread. I analyze the JS of the third-parties and try to identify the performance bottlenecks.\n\n### Describe the solution you'd like\n\nI'd like to quickly identify such long tasks, the specific points in the JS script which caused them, and see recommendations how to fix them.\n\n### Describe alternatives you've considered\n\nMy alternative for the moment is to do it manually, but if I can do it with the help of an LLM, it could save me some time.\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/491/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/484",
      "id": 3558019331,
      "node_id": "I_kwDOPt7f_s7UExED",
      "number": 484,
      "title": "If the mcp launches  an instance it should expose some way to close the browser",
      "user": {
        "login": "connorosborn-sf",
        "id": 235566822,
        "node_id": "U_kgDODgp25g",
        "avatar_url": "https://avatars.githubusercontent.com/u/235566822?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/connorosborn-sf",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 5,
      "created_at": "2025-10-27T18:17:31Z",
      "updated_at": "2025-11-19T09:22:18Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nRight now there is no way to close the browser (via mcp) that is launched via mcp. Close page will refuse to close the only page.\n\n### Describe the solution you'd like\n\nExpose to the mcp a way to close the browsers it launched\n\n### Describe alternatives you've considered\n\nUsing os utils to close manually\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/484/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/473",
      "id": 3553465898,
      "node_id": "I_kwDOPt7f_s7TzZYq",
      "number": 473,
      "title": "Expose accessibility findings from lighthouse",
      "user": {
        "login": "BogdanCerovac",
        "id": 8626513,
        "node_id": "MDQ6VXNlcjg2MjY1MTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8626513?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/BogdanCerovac",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-10-26T08:17:25Z",
      "updated_at": "2025-11-11T06:50:54Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nAs Lighthouse provides some limited automatic accessibility testing I would like to see it in the MCP as well. It is always an option to use other, specialized MCPs for accessibility needs, but I think offering Lighthouse accessibility testing results directly in Chrome DevTools MCP could be beneficial to awareness and even helping with suggestions for basic fixes.\n\n### Describe the solution you'd like\n\nAs a minimum, tools would get a section called Accessibility that would have at least two tools:\n\n1. getting the accessibility **score** for a page (as per https://developer.chrome.com/docs/lighthouse/accessibility/scoring) - I am aware that scores are not representing the whole situation as per limitations of automatic tests, but it would be useful to get at least a hint that the score represents.\n2. getting **accessibility audit details** - a list of errors and impacted code / DOM elements - so that AI can try to come with fix suggestions.\n\n### Describe alternatives you've considered\n\nUsing snapshot tool does not offer insights into automatically detected issues, so the only alternative now is to use a specialized MCP for accessibility.\n\n### Additional context\n\nI am using/testing multiple other accessibility oriented MCPs now, but if I consider people just starting with accessibility - it would be a great start and better to have something than nothing.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/473/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/408",
      "id": 3525583807,
      "node_id": "I_kwDOPt7f_s7SJCO_",
      "number": 408,
      "title": "Cookie management support",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9478887856,
          "node_id": "LA_kwDOPt7f_s8AAAACNPxZsA",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/feedback%20wanted",
          "name": "feedback wanted",
          "color": "d93f0b",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-10-17T10:52:47Z",
      "updated_at": "2025-10-29T06:09:13Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\n**_FEEDBACK WANTED_**\n\n### 1. Problem Statement\n\nAI agents are currently \"state-blind.\" They cannot see, modify, or delete one of the most common forms of client-side state: **browser cookies**.\n\nThis is a major debugging roadblock. An agent cannot diagnose or solve entire classes of problems related to:\n* Authentication (e.g., missing session cookies)\n* A/B testing or feature flags (e.g., `feature_flag_beta=on`)\n* User preferences (e.g., `theme=dark`)\n\nWithout access to cookies, the AI is forced to *guess* about the application's state or ask the human to manually open DevTools, which defeats the purpose of an autonomous AI assistant.\n\n### 2. Problems We Want to Solve\n\nWe believe there are three primary problems that AI agents face when dealing with cookies. We'd like to know how often you encounter these.\n\n**Problem 1: Inspecting State (The \"Read\" Problem)**\nAn agent needs to read existing cookies to understand the current application state.\n* **Goal:** \"I need to know if a `session_token` cookie exists and what its value is to understand why the user is seeing a '401 Unauthorized' error.\"\n* **Goal:** \"I need to check the value of the `feature_flag` cookie to confirm my hypothesis about why a component is not visible.\"\n\n**Problem 2: Simulating State (The \"Write/Edit\" Problem)**\nAn agent needs to set or modify cookies to test different application states or scenarios.\n* **Goal:** \"I need to test the 'dark mode' feature. The easiest way is to set the `theme` cookie to `dark` and reload the page.\"\n* **Goal:** \"I need to see if the new beta feature works. I want to *add* a new cookie `beta_user=true`.\"\n\n**Problem 3: Resetting State (The \"Delete\" Problem)**\nAn agent needs to delete cookies to return the application to a \"clean\" or default state for reproducible debugging.\n* **Goal:** \"I want to debug the 'first-time user' login flow. To do this, I must clear all session cookies for the current domain.\"\n* **Goal:** \"The user's preferences seem corrupt. I want to delete the `user_settings` cookie and have them start fresh.\"\n\n---\n\n### 3. Key Use Cases (As Problems)\n\n* **As an...** AI agent debugging a login issue, **I want to inspect all cookies** for the current domain to see if the `session_token` is missing, expired, or malformed.\n* **As an...** AI agent testing a new feature, **I want to set a cookie** `feature_flag_x=true` and reload the page to see if the new UI appears.\n* **As an...** AI agent trying to reproduce a bug, **I want to delete all cookies** for this domain to ensure I am testing the application from a clean, logged-out state.\n* **As an...** AI agent diagnosing a UI bug, **I want to modify the `user_prefs` cookie** to test how the app behaves with different settings (e.g., `lang=es`).\n\n---\n\n### 4. Feedback Requested\n\nWe are posting this to validate which cookie-related problems are most important. We would love to know:\n\n* **Does this capability (AI-driven cookie management) seem useful to you?**\n    * *(Please add a 👍 reaction to this issue if you would find this useful!)*\n* **Which of these problems is your highest priority?**\n    * *(Please help us rank them: 1. Inspecting, 2. Editing, 3. Deleting)*\n* **How important is it to support `HttpOnly` cookies?**\n    * *(These are often used for authentication tokens, e.g., `session_id`, and are *not* visible to client-side JavaScript. Is support for these a \"must-have\" for you?)*\n* **What is your primary use case for this?**\n    * *(Is it mostly for debugging authentication? Toggling feature flags? Or resetting state?)*\n* **Are there other state-related problems (e.g., Local Storage, Session Storage) that are just as, or more, important than cookies?**\n\n### Describe the solution you'd like\n\ns/o\n\n### Describe alternatives you've considered\n\ns/o\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/408/reactions",
        "total_count": 8,
        "+1": 7,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 1,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/407",
      "id": 3525560407,
      "node_id": "I_kwDOPt7f_s7SI8hX",
      "number": 407,
      "title": "Interactive debugging support",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9478887856,
          "node_id": "LA_kwDOPt7f_s8AAAACNPxZsA",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/feedback%20wanted",
          "name": "feedback wanted",
          "color": "d93f0b",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-10-17T10:47:49Z",
      "updated_at": "2025-11-24T21:00:37Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\n**_FEEDBACK WANTED_**\n\n### 1. Problem Statement\n\nAI agents (like those in Gemini CLI, Cursor, etc.) are becoming very effective at static analysis—reading code, understanding logic, and proposing changes.\n\nCurrently, an AI's only method for runtime debugging is to:\n1.  Read the source code and form a hypothesis.\n2.  Add `console.log` statements.\n3.  Run the app and read the console output.\n4.  Remove the `console.log` statements.\n\nThis \"printf debugging\" workflow is slow, intrusive (can create \"heisenbugs\"), and token-inefficient. Most importantly, it fails to solve entire classes of complex bugs related to application state, silent errors, or race conditions.\n\n---\n\n### 2. Problems We Want to Solve\n\nWe believe there are three main categories of problems that AI agents currently cannot solve. We would like to know which of these are the most painful.\n\n**Problem 1: Non-Intrusive Inspection (The \"Logpoint\" Problem)**\nAn agent needs to verify a hypothesis by inspecting a variable's value at a specific line of code *without* modifying the source files.\n* **Goal:** \"I need to know the value of `movie.id` on `MovieCard.vue:129` when the user clicks the button.\"\n\n**Problem 2: Discovering \"Unknown Unknowns\" (The \"Event-Breakpoint\" Problem)**\nAn agent needs to find the *unknown line of code* that is responsible for a *known runtime event*.\n* **Goal (Exceptions):** \"A silent `try...catch` is hiding an error. I need to find the *exact line* that threw the error and inspect the local variables *at that moment*, before the call stack is lost.\"\n* **Goal (DOM):** \"Something is adding a `disabled` attribute to my button, but I don't know what. I need to find the *exact line of JavaScript* that modified the DOM, even if it's hidden inside a framework's rendering logic.\"\n* **Goal (Events):** \"A generic `click` listener is firing by mistake. I need to find *which* listener is the culprit.\"\n\n**Problem 3: Deep Forensic Analysis (The \"Breakpoint\" Problem)**\nWhen a hypothesis is wrong, an agent needs to do a full \"forensic\" analysis.\n* **Goal:** \"My hypothesis was wrong. I need to **pause execution** on a specific line, **inspect the entire call stack and all local variables (scope)**, and then step forward to understand the application's flow.\"\n\n**Foundational Requirement:** All these problems must be solved in the context of the **authored source code** (e.g., `.ts`, `.vue`), not the bundled/minified output. Any solution *must* handle source maps transparently.\n\n---\n\n### 3. Key Use Cases (As Problems)\n\n* **As an...** AI agent debugging a silent `try...catch` error, **I want to know what the local variables were** at the *moment* the error was thrown, before the stack is unwound.\n* **As an...** AI agent debugging a UI bug, **I want to find the exact line of JavaScript** that is incorrectly adding the `disabled` attribute to my button, even if it's hidden inside a framework's rendering logic.\n* **As an...** AI agent debugging a complex bug, **I want to pause execution** on a specific line, **inspect the entire call stack and all local variables**, and then step forward to understand the application's flow.\n* **As an...** AI agent, **I want to confirm my hypothesis** that `movie.id` is `undefined` by logging its value on a specific line, *without* having to modify the file.\n\n---\n\n### 4. Feedback Requested\n\nWe are posting this to validate our assumptions before designing a solution. We would love to know:\n\n* **Does this capability (runtime debugging for AI) seem useful to you?**\n    * *(Please add a 👍 reaction to this issue if you would find this useful!)*\n* **Which of the problems described above is the most painful or high-value for you?**\n    * *(Please help us rank them! e.g., \"1. Problem 2 (Exceptions), 2. Problem 1 (Logpoints), 3. Problem 3 (Stepping)\")*\n* **What is your \"80/20\"?**\n    * *(Our research suggests \"non-intrusive logging\" (Problem 1) would be the 80% use case. Do you agree? Or is full interactive pausing (Problem 3) more critical?)*\n* **How do you *currently* work around these limitations?**\n    * *(Are you manually adding `console.log` statements? Or do you take over from the AI and use DevTools yourself?)*\n* **What did we miss?**\n    * *(Are there other runtime debugging scenarios or problems that your AI agent faces?)*\n\n### Describe the solution you'd like\n\ns/o\n\n### Describe alternatives you've considered\n\ns/o\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/407/reactions",
        "total_count": 8,
        "+1": 8,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/406",
      "id": 3525493222,
      "node_id": "I_kwDOPt7f_s7SIsHm",
      "number": 406,
      "title": "Add memory analysis tools for heap snapshots",
      "user": {
        "login": "natorion",
        "id": 7190422,
        "node_id": "MDQ6VXNlcjcxOTA0MjI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/natorion",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9478887856,
          "node_id": "LA_kwDOPt7f_s8AAAACNPxZsA",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/feedback%20wanted",
          "name": "feedback wanted",
          "color": "d93f0b",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-10-17T10:32:59Z",
      "updated_at": "2026-01-27T20:45:39Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\n_**FEEDBACK  WANTED**_\n\n### 1. Problem Statement\n\nThe MCP server currently provides excellent tools for performance tracing (e.g., `performance_start_trace`), which allows an AI agent to analyze runtime performance, LCP, TBT, etc.\n\nHowever, there is **no equivalent capability for memory debugging**. An AI agent cannot investigate memory leaks, detached DOM nodes, or object allocation patterns. This is a significant gap, as memory issues are a critical class of web performance problems.\n\nA full heap snapshot file is far too large for an AI agent to process, so we need tools that run the analysis on the server and return a small, actionable JSON summary.\n\n### 2. Proposed Feature\n\nThis feature would introduce a new set of tools to the MCP server, enabling an AI to request heap analysis and comparison.\n\n#### Tool 1: Analyze Current Heap\n\n* **`memory_analyze_heap()`**\n    * **Action:** Takes a snapshot of the current heap.\n    * **Analysis:** *Immediately* analyzes it on the server for common memory issues.\n    * **Returns:** A structured JSON summary of the *current* state.\n    * **Example JSON Response:**\n        ```json\n        {\n          \"total_heap_size\": 12345678,\n          \"detached_dom_nodes\": 15,\n          \"top_objects_by_retained_size\": [\n            { \"constructor\": \"(string)\", \"count\": 1024, \"retained_size\": 2048576 },\n            { \"constructor\": \"MyCustomObject\", \"count\": 50, \"retained_size\": 1024567 },\n            { \"constructor\": \"(array)\", \"count\": 800, \"retained_size\": 800123 }\n          ]\n        }\n        ```\n\n#### Tool 2: Diff/Comparison Workflow\n\nTo find leaks caused by a specific action, a comparison workflow is needed.\n\n1.  **`memory_start_diff()`**\n    * **Action:** Takes a \"baseline\" heap snapshot and stores it temporarily on the server.\n    * **Returns:** A `diff_id` (e.g., `\"diff-abc-123\"`).\n\n2.  **`memory_stop_diff(diff_id: string)`**\n    * **Action:** Takes a \"final\" heap snapshot.\n    * **Analysis:** Compares this new snapshot *on the server* against the baseline snapshot identified by `diff_id`.\n    * **Returns:** A structured JSON summary of the *differences* (the delta).\n    * **Example JSON Response:**\n        ```json\n        {\n          \"diff_id\": \"diff-abc-123\",\n          \"heap_size_delta\": 512345,\n          \"new_detached_dom_nodes\": 5,\n          \"object_deltas\": [\n            { \"constructor\": \"ModalComponent\", \"delta\": 1, \"retained_size_delta\": 45678 },\n            { \"constructor\": \"(string)\", \"delta\": 50, \"retained_size_delta\": 10240 }\n          ]\n        }\n        ```\n\n### 3. Key Use Cases\n\n* **As a...** developer debugging a new feature, **I want to...** ask the AI to \"call `memory_start_diff()`, then click the 'Open Modal' button, then call `memory_stop_diff()`, and tell me if `new_detached_dom_nodes` is greater than 0,\" **so that I can...** quickly find UI-related memory leaks.\n* **As a...** developer, **I want to...** ask the AI to \"run this user flow, then call `memory_analyze_heap()` and list the top 3 objects by retained size,\" **so that I can...** identify which objects are consuming the most memory.\n* **As a...** QA engineer, **I want to...** have the AI run a test that \"calls `memory_start_diff()`, adds 100 items to a list, then calls `memory_stop_diff()`,\" **so that I can...** verify that the memory increase (`object_deltas`) is reasonable and expected.\n\n---\n\n### 4. Feedback Requested\n\nWe are posting this idea to gather community feedback and track interest. We would love to know:\n\n* **Would you use this feature?**\n    * *(Please add a 👍 reaction to this issue if you would find this useful!)*\n* **Does this `start_diff` / `stop_diff` workflow make sense for programmatic analysis?**\n* **What key information would you want in the `memory_analyze_heap()` summary?**\n    * *(e.g., Are 'detached DOM nodes' and 'top objects' the most important?)*\n* **What key information would you want in the `memory_stop_diff()` delta summary?**\n    * *(e.g., Is the delta for `retained_size` the most critical metric for you?)*\n\n### Describe the solution you'd like\n\ns/o\n\n### Describe alternatives you've considered\n\ns/o\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/406/reactions",
        "total_count": 20,
        "+1": 20,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/403",
      "id": 3522774754,
      "node_id": "I_kwDOPt7f_s7R-Ubi",
      "number": 403,
      "title": "Support for Canvas/WebGL Interaction Beyond DOM Elements",
      "user": {
        "login": "epeles",
        "id": 17453962,
        "node_id": "MDQ6VXNlcjE3NDUzOTYy",
        "avatar_url": "https://avatars.githubusercontent.com/u/17453962?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/epeles",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-10-16T17:15:02Z",
      "updated_at": "2026-01-02T11:22:50Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nI'm trying to use Chrome Devtools MCP to test a Three.js-based 3D application, but I've encountered a limitation where the MCP cannot interact with the canvas content itself - only with DOM elements.\n\n### **Current Behavior**\n- The `<canvas>` element itself is in the DOM and can be found\n- However, the actual 3D content rendered **on** the canvas (3D models, objects, interactive elements) cannot be interacted with\n- Neither JavaScript evaluation tools nor mouse position tools seem to work for clicking specific coordinates on the canvas\n\n\n\n### Describe the solution you'd like\n\nIt would be helpful to have a way to:\n1. Click at specific X/Y coordinates on the canvas (not just DOM elements)\n2. Interact with the canvas content through pixel coordinates\n3. Potentially use `page.mouse.click(x, y)` or similar low-level mouse interactions\n\n### Describe alternatives you've considered\n\nIs this a known limitation of the MCP architecture, or is there a workaround I'm missing? Can the MCP:\n- Use coordinate-based clicking (e.g., `browser_mouse_click` with pixel coordinates)?\n- Execute Chrome Devtools low-level mouse API (e.g., `page.mouse.click(x, y)`)?\n- Interact with canvas elements beyond just finding them in the DOM?\n\n### Additional context\n\n_No response_",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/403/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/383",
      "id": 3513808530,
      "node_id": "I_kwDOPt7f_s7RcHaS",
      "number": 383,
      "title": "Expose error stack traces in list_console_messages (feasibility question)",
      "user": {
        "login": "Scoheart",
        "id": 78343795,
        "node_id": "MDQ6VXNlcjc4MzQzNzk1",
        "avatar_url": "https://avatars.githubusercontent.com/u/78343795?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Scoheart",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-10-14T12:54:49Z",
      "updated_at": "2025-10-14T16:54:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nToday list_console_messages returns plain console text without the error stack trace. When combining logs with LLM-based debugging, the model often can’t determine which file and line actually failed. This forces extra manual steps, guesswork, and back-and-forth context gathering—overall, not an elegant debugging experience.\n\n### Describe the solution you'd like\n\nAt a high level (no design details): the ability to optionally obtain error stack traces alongside messages returned by list_console_messages. The goal is to let tools/LLMs immediately map an error to the concrete file/function/line so they can provide accurate, actionable fixes. \n\n### Describe alternatives you've considered\n\nManually fetching stacks via separate DevTools/diagnostic calls and correlating them with console messages. This adds complexity, latency, and token cost.\n\n### Additional context\n\nThis capability would significantly improve automated triage and remediation in MCP-based workflows by enabling precise source localization rather than plain-text analysis.\n\nOpen questions for maintainers:\n- Does the underlying layer already capture or have access to stacks for error messages?\n- If yes, is exposing them in `list_console_messages` feasible?\n- If not, are there known technical/security/size constraints or an alternative path we should consider?\n\nThanks for considering!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/383/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/367",
      "id": 3509730413,
      "node_id": "I_kwDOPt7f_s7RMjxt",
      "number": 367,
      "title": "return all pages when click web element",
      "user": {
        "login": "kober-basket",
        "id": 52108005,
        "node_id": "MDQ6VXNlcjUyMTA4MDA1",
        "avatar_url": "https://avatars.githubusercontent.com/u/52108005?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kober-basket",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-10-13T11:46:52Z",
      "updated_at": "2025-10-17T13:37:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Description of the bug\n\nClicking an element may open a new page. If the list of pages is not returned, the model cannot perceive that a new page has opened and will therefore assume that the click action did not take effect. Returning the list of open pages can effectively solve this problem.\n\n\n<img width=\"3718\" height=\"1881\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/a138e057-4a38-4331-953c-8f6e350f4adb\" />\n\n\n\n### Reproduction\n\n_No response_\n\n### Expectation\n\n_No response_\n\n### MCP configuration\n\n_No response_\n\n### Node version\n\n_No response_\n\n### Chrome version\n\n_No response_\n\n### Coding agent version\n\n_No response_\n\n### Model version\n\n_No response_\n\n### Chat log\n\n_No response_\n\n### Operating system\n\nNone\n\n### Extra checklist\n\n- [ ] I want to provide a PR to fix this bug",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/367/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        964
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/344",
      "id": 3505450774,
      "node_id": "I_kwDOPt7f_s7Q8O8W",
      "number": 344,
      "title": "Is it possible to call the zoom in/out function of chrome browser",
      "user": {
        "login": "stevenlee001",
        "id": 6789741,
        "node_id": "MDQ6VXNlcjY3ODk3NDE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6789741?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/stevenlee001",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-10-11T08:42:22Z",
      "updated_at": "2026-02-13T09:52:22Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI need to zoom out the current browser window to 80%, I can do it from chrome menu zoom manually, but cannot do it via MCP server prompt\n**Describe the solution you'd like**\nto do this by prompt directly, such as zoom out to 80%\n\n**Describe alternatives you've considered**\n\nI have tried similar prompt, it uses javascript document.body.style.zoom=80%, the result is not the same as chrome zoom out function, not good enough to fill in all my page content\n\n**Additional context**\nOther alternatives should be good as well",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/344/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/316",
      "id": 3495532628,
      "node_id": "I_kwDOPt7f_s7QWZhU",
      "number": 316,
      "title": "Allow switching execution context to Dedicated Workers",
      "user": {
        "login": "tobiu",
        "id": 1177434,
        "node_id": "MDQ6VXNlcjExNzc0MzQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1177434?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tobiu",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-10-08T13:49:04Z",
      "updated_at": "2025-10-10T11:34:14Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi there,\n\nFirst off, thank you for the `mcp-server` project. It's a fantastic tool and a great starting point for programmatic browser interaction.\n\nWe are integrating `mcp-server` into the [Neo.mjs framework](https://github.com/neomjs/neo) workflow to give our AI development agent, Gemini 2.5 Pro, the ability to 'see' and interact with the UI. While working on this integration, the agent itself identified this limitation and helped draft this feature request.\n\nOur framework is built on an \"Off the Main Thread\" (OMT) architecture, where nearly all application logic runs inside workers. This creates a challenge for debugging that we believe `mcp-server` is uniquely positioned to solve.\n\n**The Problem:**\nThe standard Chrome DevTools UI provides a dropdown that allows developers to switch the console's execution context between the main thread and any active workers. This is essential for debugging, as it allows for direct interaction with the global scope of each thread.\n\nCurrently, the `mcp-server` appears to be bound to the main thread's execution context. While some error messages from dedicated workers might bubble up, it's impossible to interact with the worker's scope. For example, we can't run a command like `Neo.get('my-component-id')` to inspect a live object that exists only within the worker.\n\n**Proposed Feature:**\nCould a mechanism be introduced to replicate the context-switching functionality of the real DevTools?\n\nIdeally, this would involve:\n1.  An API to list all available execution contexts (e.g., main thread, dedicated worker 1, dedicated worker 2).\n2.  An API to set the active execution context for the `mcp-server` connection.\n\nOnce the context is switched to a specific worker, all subsequent `Runtime.evaluate` calls would execute within that worker's global scope. This would provide the powerful, interactive debugging experience needed for modern, multi-threaded web applications.\n\nWe believe this feature would unlock a new level of debugging and automation for any project that leverages dedicated workers.\n\nWe'd be happy to provide more details on our use case or assist in testing. Thanks for considering this!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/316/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/284",
      "id": 3485400064,
      "node_id": "I_kwDOPt7f_s7PvvwA",
      "number": 284,
      "title": "can we add a download folder to config for automating some download task.",
      "user": {
        "login": "2017jw",
        "id": 34635475,
        "node_id": "MDQ6VXNlcjM0NjM1NDc1",
        "avatar_url": "https://avatars.githubusercontent.com/u/34635475?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/2017jw",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-10-06T01:26:11Z",
      "updated_at": "2025-10-07T09:20:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "while run automated download task, using default download folder can sometimes be annoying. It is better to add download folder to config so we can go to this specific download folder for files downloaded. Thanks. To run a chrome mannualy from command line can also do this.\n\nI don't know if Chrome DevTools can access the download list and if yes, add a  tool to get download history  could be more direct to handle automation.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/284/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/268",
      "id": 3483094204,
      "node_id": "I_kwDOPt7f_s7Pm8y8",
      "number": 268,
      "title": "A tool to \"Select an element in the page to inspect it\"",
      "user": {
        "login": "jjkavalam",
        "id": 4114293,
        "node_id": "MDQ6VXNlcjQxMTQyOTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4114293?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jjkavalam",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 23,
      "created_at": "2025-10-04T02:51:50Z",
      "updated_at": "2026-02-03T07:14:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 1,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n\n`Select an element in the page to inspect it` could arguably be the most used Chrome Dev Tools \"tool\".\n\nThis allows the (human) programmer to focus on just that part of the DOM he is interested in. On the other hand, most tools we put in the hands of AI agents today always give back the full DOM. The AI is then forced to first filter out all the irrelevant parts leading to the context window filling up extremely fast, and the agent loop slowing down a lot.\n\n**Describe the solution you'd like**\n\nIf this MCP server could implement something like `Select an element in the page to inspect it`, we can give the AI agents the same efficient method of inspecting the DOM.\n\nI would imagine the AI can send an annotated screenshot as input; with a suitably coloured bounding box to indicate the region of the page the AI hopes to inspect.\n\n**Describe alternatives you've considered**\n\nAlternative solutions include a tool that allows the AI to specify a CSS selector, and the tool will return the DOM rooted at the corresponding element (instead of the whole page). But this does mean the selector be identified somehow first, which may not be easy. Working with a screenshot and placing a bounding box on the region of interest could be markedly more easy in certain cases.\n\n**Additional context**\n\nThe `Select an element in the page to inspect it` tool in Chrome Dev Tools: <img width=\"462\" height=\"348\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/08d01e20-361e-4907-b726-e01951568b04\" />",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/268/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/243",
      "id": 3473960098,
      "node_id": "I_kwDOPt7f_s7PEGyi",
      "number": 243,
      "title": "Actions that result in a navigation should report the new page URL in the response",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-10-01T14:54:37Z",
      "updated_at": "2026-01-23T12:56:46Z",
      "closed_at": null,
      "author_association": "COLLABORATOR",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "We have the waiting logic to detect navigations and wait till they finish but we never report the navigated page URL back to the client. We should do it so that there is no need to re-query the pages list.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/243/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/239",
      "id": 3473423513,
      "node_id": "I_kwDOPt7f_s7PCDyZ",
      "number": 239,
      "title": "Feature Request: Support Allowed Origins & Blocked Origins list options",
      "user": {
        "login": "sakupi01",
        "id": 74392116,
        "node_id": "MDQ6VXNlcjc0MzkyMTE2",
        "avatar_url": "https://avatars.githubusercontent.com/u/74392116?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sakupi01",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 5,
      "created_at": "2025-10-01T12:47:31Z",
      "updated_at": "2026-02-13T13:24:03Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n\nWhen adopting browser automation MCPs in a corporate environment, considering security is especially crucial. Any possibility of automatic/unintentional access to unknown/malicious content can be a reason for preventing adoption. \nPlaywright MCP, for example, has `--allowed-origins` & `--blocked-origins` to filter in/out which contents the MCP is allowed to access. This gives us more certainty on which content the tool will access, and this can bring a good reason to use the browser automation tool corporate-wide.\nFor example, we can restrict access except to localhost.\n\n**Describe the solution you'd like**\nLike Playwright MCP, providing CLI options to filter origins the MCP server can access (e.g. localhost only) prevents unintended navigation to unauthorized or potentially malicious sites while maintaining safe internal tool usage.\n\nPlaywright uses [`context.route()`](https://github.com/microsoft/playwright/blob/main/packages/playwright/src/mcp/browser/context.ts#L194-L206), which internally relies on the same CDP methods in the identical way as Pupeteer [` page.setRequestInterception()`](https://github.com/puppeteer/puppeteer/blob/48902651782c712a90cba51e913f1adf78933766/packages/puppeteer-core/src/cdp/Page.ts#L530) does.\n\n- https://github.com/microsoft/playwright/blob/main/packages/playwright-core/src/server/chromium/crNetworkManager.ts#L155\n-  https://github.com/puppeteer/puppeteer/blob/48902651782c712a90cba51e913f1adf78933766/packages/puppeteer-core/src/cdp/NetworkManager.ts#L312\n\n\n**Additional context**\n- [microsoft/playwright-mcp: Playwright MCP server](https://github.com/microsoft/playwright-mcp?tab=readme-ov-file#configuration)\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/239/reactions",
        "total_count": 16,
        "+1": 16,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/214",
      "id": 3467205356,
      "node_id": "I_kwDOPt7f_s7OqVrs",
      "number": 214,
      "title": "Support iframe performance",
      "user": {
        "login": "tdhanjun",
        "id": 102640056,
        "node_id": "U_kgDOBh4puA",
        "avatar_url": "https://avatars.githubusercontent.com/u/102640056?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tdhanjun",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "jackfranklin",
        "id": 193238,
        "node_id": "MDQ6VXNlcjE5MzIzOA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/193238?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jackfranklin",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "jackfranklin",
          "id": 193238,
          "node_id": "MDQ6VXNlcjE5MzIzOA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/193238?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jackfranklin",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 2,
      "created_at": "2025-09-30T01:39:46Z",
      "updated_at": "2026-01-23T12:56:08Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I'm not sure if this mcp could collect the performance with iframe content? \n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/214/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/153",
      "id": 3454616880,
      "node_id": "I_kwDOPt7f_s7N6UUw",
      "number": 153,
      "title": "Feature Request: Add Save to File for take_snapshot and evaluate_script tools",
      "user": {
        "login": "brian-ln",
        "id": 1584456,
        "node_id": "MDQ6VXNlcjE1ODQ0NTY=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1584456?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/brian-ln",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 8,
      "created_at": "2025-09-25T18:09:16Z",
      "updated_at": "2026-01-23T12:55:47Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI am unable to save off screenshots using the *chrome-devtools-mcp* server. Sometimes I also get too many token errors on tool results.\n\n**Describe the solution you'd like**\nAdd a save to file optional parameter to tools that return images  (_take_screenshot_) or large amounts of data  (_take_snapshot_, _evaluate_script_) .\n\nThe [mcp-chrome](https://github.com/hangwin/mcp-chrome/) server (and several others) supports saving images as files using the *asPng* optional parameter.\n\n*From the [mcp-chrome](https://github.com/hangwin/mcp-chrome/) server:*\n```json\n{\n    name: TOOL_NAMES.BROWSER.SCREENSHOT,\n    description:\n      'Take a screenshot of the current page or a specific element(if you want to see the page, recommend to use chrome_get_web_content first)',\n    inputSchema: {\n      type: 'object',\n      properties: {\n        name: { type: 'string', description: 'Name for the screenshot, if saving as PNG' },\n        selector: { type: 'string', description: 'CSS selector for element to screenshot' },\n        width: { type: 'number', description: 'Width in pixels (default: 800)' },\n        height: { type: 'number', description: 'Height in pixels (default: 600)' },\n        storeBase64: {\n          type: 'boolean',\n          description:\n            'return screenshot in base64 format (default: false) if you want to see the page, recommend set this to be true',\n        },\n        fullPage: {\n          type: 'boolean',\n          description: 'Store screenshot of the entire page (default: true)',\n        },\n        savePng: {\n          type: 'boolean',\n          description:\n            'Save screenshot as PNG file (default: true)，if you want to see the page, recommend set this to be false, and set storeBase64 to be true',\n        },\n      },\n      required: [],\n    },\n  },\n```\n\n**Describe alternatives you've considered**\nClaude code can't (or won't) let me save the _[Image]_ data returned from the tool call to _take_screenshot_...\n\n**Additional context**\nThe [mcp-chrome](https://github.com/hangwin/mcp-chrome/) server (and others) also support returning images as base 64 content using the _storeBase64_ optional parameter.\n",
      "closed_by": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/153/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": "reopened",
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/131",
      "id": 3451374168,
      "node_id": "I_kwDOPt7f_s7Nt8pY",
      "number": 131,
      "title": "Access chrome while in WSL environment",
      "user": {
        "login": "ljmerza",
        "id": 4085765,
        "node_id": "MDQ6VXNlcjQwODU3NjU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4085765?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ljmerza",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "OrKoN",
          "id": 399150,
          "node_id": "MDQ6VXNlcjM5OTE1MA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/OrKoN",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 51,
      "created_at": "2025-09-25T00:27:29Z",
      "updated_at": "2026-02-12T14:05:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n\nCodex works far better in a linux based environment thus it's generally recommended if yo are on windows to use WSL. The problem here is this MCP only tries to look for chrome inside the WSL instead of the host system.\n\n**Describe the solution you'd like**\n\nThe MCP server would know it's in WSL and use the host system's chrome\n\n**Describe alternatives you've considered**\n\nCan use codex for windows but it's not officially supported.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n",
      "closed_by": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/131/reactions",
        "total_count": 22,
        "+1": 22,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": "reopened",
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/96",
      "id": 3447351443,
      "node_id": "I_kwDOPt7f_s7NemiT",
      "number": 96,
      "title": "Feature Request: Support for browser extension development and debugging",
      "user": {
        "login": "keleus",
        "id": 38204020,
        "node_id": "MDQ6VXNlcjM4MjA0MDIw",
        "avatar_url": "https://avatars.githubusercontent.com/u/38204020?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/keleus",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "sebastianbenz",
        "id": 380472,
        "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastianbenz",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "sebastianbenz",
          "id": 380472,
          "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
          "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebastianbenz",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 18,
      "created_at": "2025-09-24T02:41:12Z",
      "updated_at": "2026-01-23T12:55:28Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Goals\n\nThe primary goals of these new tools is to enable Chrome Extension debugging for AI Assistants:\n\n*   Manage the extension lifecycle (install, reload, …)\n*   Ability to inspect and debug extension components, such as service workers, side panel, and popups.\n*   Simulate extension user interactions (e.g. click the extension action, …)\n\n## Example prompts\n\n*   <code>Install my extension and open https://example.com. Find out why the reading time is not injected into the page below the first heading.</code>\n*   <code>Why does my extension not show a summary of https://example.com in the sidepanel when clicking the extension action?</code>\n*   <code>When selecting the first heading on https://example.com, opening my extension popup and clicking \"translate text\" the translation is not displayed in the popup. Why?</code>\n\n## Use cases\n\n1. Load an extension while in development\n2. Debug extensions via console logs for extension pages (side panel, tabs, popup, offscreen document) and extension context (content scripts, service worker)\n3. Inspect extension state by evaluating scripts in extension pages and contexts\n4. Test an extension by triggering an extension action \n5. Test an extension by simulating user input on extension pages\n\n## Features\n\nThe following tools should be added to the Chrome DevTools MCP server:\n\n### Extension Management\n\n*   `list_extensions`: Lists all installed extensions, including their name, ID, version, and enabled status.\n*   `install_extension`: Installs an extension.\n    *   Existing CDP method: Extensions.loadUnpacked\n*   `uninstall_extension`: Uninstalls an enabled extension.\n    *   Existing CDP method: Extensions.uninstall\n*   `reload_extension`: Reloads an extension to apply any changes.\n\n### Extension Debugging\n\n*   Update `list_pages` to return a list of [active extension contexts](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-getContexts) (sidepanel, popup, extension page, service worker, offscreen document). See also [Support extensions execution contexts · Issue #1215 · puppeteer/puppeteer](https://github.com/puppeteer/puppeteer/issues/1215) \n    *   Existing CDP event: Runtime.executionContextCreated\n*   Update `select_page` to also support extensions contexts\n*   Update `evaluate_script` to also support script execution in an extension context\n*   Update `list_console_messages` to also support console logs from an extension context\n\n### Extension Interaction\n\n*   `click_extension_icon`: Simulates a click on an extension's browser action or page action icon.\n    *   Note: Once the extension's popup is open, CDP already exposes the popup as a target, so we can inspect it just like a page.\n*   `click_extension_context_menu`: Simulates a click on an extension’s context menu entry.\n*   All [input automation tools](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md#input-automation) need to be able to work in an extension context (sidepanel, popup, extension tab page)\n\n## Constraints\n\n*   Token usage should not increase when extension debugging is not enabled.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/96/reactions",
        "total_count": 59,
        "+1": 48,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 8,
        "eyes": 3
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/86",
      "id": 3446303685,
      "node_id": "I_kwDOPt7f_s7NamvF",
      "number": 86,
      "title": "Feature Request: Support for computed styles",
      "user": {
        "login": "jitterbox",
        "id": 6708273,
        "node_id": "MDQ6VXNlcjY3MDgyNzM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6708273?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jitterbox",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 9264663447,
          "node_id": "LA_kwDOPt7f_s8AAAACKDeLlw",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 9342247638,
          "node_id": "LA_kwDOPt7f_s8AAAACLNdi1g",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/collecting-feedback",
          "name": "collecting-feedback",
          "color": "aaaaaa",
          "default": false,
          "description": null
        },
        "2": {
          "id": 9347676469,
          "node_id": "LA_kwDOPt7f_s8AAAACLSo5NQ",
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/labels/confirmed",
          "name": "confirmed",
          "color": "99d416",
          "default": false,
          "description": ""
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 8,
      "created_at": "2025-09-23T18:40:37Z",
      "updated_at": "2026-01-23T12:55:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": {
        "id": 1382282,
        "node_id": "IT_kwDOAKvUJ84AFReK",
        "name": "Feature",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-01-25T12:54:42Z",
        "updated_at": "2024-10-08T09:21:44Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Summary\nPlease add first-class support for retrieving computed CSS styles through the Chrome DevTools MCP server. Today the MCP surface lets an AI agent inspect DOM/attributes and take screenshots, but it cannot read the browser’s computed styles, which are essential for reliable layout/debugging automation.\n\n### Why this matters\n- LLMs need ground-truth layout data (final box model, visibility, z-index, display/position, resolved colors/margins/paddings) to diagnose “element not visible,” overlap, off-screen placement, or cascade/specificity issues.\n- Visual diffs alone miss subtle regressions (1–2px shifts, collapsed margins, inherited font changes).\n- Computed styles enable deterministic before/after comparisons during HMR or CI visual checks.\n\n### Requested capabilities (minimum viable)\n- Get computed styles for a node: resolved values for all properties (option to filter list).\n- Get box model metrics: content/padding/border/margin, client/offset/bounding rect, device-pixel-rounded values.\n- Visibility diagnostics: isVisible (accounting for display/visibility/opacity/clip/path, 0×0, off-viewport, overflow hidden).\n- Inheritance/precedence hints: which rule “wins” (selector + stylesheet URL/line), optional list of overridden declarations.\n- Batch mode: request multiple node IDs in one call for perf.\n- Diff helper (optional): server returns changed computed properties between two snapshots.\n\n### Sketch of API (illustrative)\n- `dom.getComputedStyles({ nodeId, properties?: string[] }) -> { computed: Record<string,string>, sourceMap?: RuleOrigin[] }`\n- `dom.getBoxModel({ nodeId }) -> { content, padding, border, margin, clientRect, boundingRect }`\n- `dom.getVisibility({ nodeId }) -> { isVisible, reasons: string[] }`\n- `dom.getComputedStylesBatch({ nodeIds: string[] }) -> {...}`\n\n### Example use cases\n\n- **Verify a fix:** “Confirm the button’s clickable area is ≥44×44 CSS px and vertically centered in its parent.”\n- **Root-cause:** “Why is .toast not visible after CSS changes?” (visibility + winning rule).\n- **Regression diff in CI:** “List computed properties that changed for #header vs. previous build.”\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/86/reactions",
        "total_count": 7,
        "+1": 7,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    }
  ],
  "pulls": [
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/977",
      "id": 3290110354,
      "node_id": "PR_kwDOPt7f_s7EGxmS",
      "number": 977,
      "state": "open",
      "locked": false,
      "title": "feat: cli",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": null,
      "created_at": "2026-02-16T13:54:51Z",
      "updated_at": "2026-02-16T15:03:02Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "5f1bf08f203c6f4fcedef11705eb016814b75d32",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "ChromeDevTools:orkon/cli",
        "ref": "orkon/cli",
        "sha": "3e5be36457fdaedaf6498d9d3a0d9b7b8bf440d0",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "5e5b746b663fccbf011dc2c64eac2c2c12b6cb0a",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/977"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/977"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/977"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/977/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/977/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/977/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/3e5be36457fdaedaf6498d9d3a0d9b7b8bf440d0"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/976",
      "id": 3289882761,
      "node_id": "PR_kwDOPt7f_s7EF6CJ",
      "number": 976,
      "state": "open",
      "locked": false,
      "title": "chore: add vague performance request scenario",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "gemini-2.5-flash does not seem to fail.",
      "created_at": "2026-02-16T12:53:11Z",
      "updated_at": "2026-02-16T13:11:09Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "aa87dd6fca7ab1ad2bd67d3fc5864d36a893d225",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "natorion",
          "id": 7190422,
          "node_id": "MDQ6VXNlcjcxOTA0MjI=",
          "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/natorion",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "ChromeDevTools:orkon/add-vague-scenario",
        "ref": "orkon/add-vague-scenario",
        "sha": "c11e3b7748f10816738c94dc356051693f578e47",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "5e5b746b663fccbf011dc2c64eac2c2c12b6cb0a",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/976"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/976"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/976"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/976/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/976/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/976/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/c11e3b7748f10816738c94dc356051693f578e47"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/970",
      "id": 3288754028,
      "node_id": "PR_kwDOPt7f_s7EBmds",
      "number": 970,
      "state": "open",
      "locked": false,
      "title": "fix: apply pagination to network request output",
      "user": {
        "login": "AI-Reviewer-QS",
        "id": 255312808,
        "node_id": "U_kgDODzfDqA",
        "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/AI-Reviewer-QS",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Network request pagination was cosmetic-only: the header showed \"Showing 1-10 of 30\" but all requests were rendered in both text and structured content\n- The `format()` method computed pagination on raw requests but then iterated over all pre-built `NetworkFormatter` instances from `handle()`, ignoring the paginated subset\n- Fixed by applying pagination to the formatter array directly, matching the pattern already used correctly by console message pagination\n- Also removed a redundant re-fetch of raw network requests in `format()` since the formatters from `handle()` already contain the filtered data\n\n## Test plan\n- [x] Existing pagination tests updated to verify correct paginated output\n- [x] `returns first page by default` - now only includes 10 of 30 requests\n- [x] `returns subsequent page when pageIdx provided` - shows correct page slice\n- [x] `handles invalid page number by showing first page` - shows first page subset\n- [x] All other McpResponse tests continue to pass",
      "created_at": "2026-02-16T07:34:20Z",
      "updated_at": "2026-02-16T08:52:25Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "85c4db38fd3f2de27c00e9033c27c3f6d910261d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "nroscino",
          "id": 230381409,
          "node_id": "U_kgDODbtXYQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/230381409?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/nroscino",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "AI-Reviewer-QS:fix/network-request-pagination",
        "ref": "fix/network-request-pagination",
        "sha": "98486ad208c32ec767376dae088db75b22cfab80",
        "user": {
          "login": "AI-Reviewer-QS",
          "id": 255312808,
          "node_id": "U_kgDODzfDqA",
          "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/AI-Reviewer-QS",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158999656,
          "node_id": "R_kgDORRTuaA",
          "name": "chrome-devtools-mcp",
          "full_name": "AI-Reviewer-QS/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "AI-Reviewer-QS",
            "id": 255312808,
            "node_id": "U_kgDODzfDqA",
            "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/AI-Reviewer-QS",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/AI-Reviewer-QS/chrome-devtools-mcp",
          "created_at": "2026-02-16T07:24:51Z",
          "updated_at": "2026-02-16T07:24:51Z",
          "pushed_at": "2026-02-16T07:43:53Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3365,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/970"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/970"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/970"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/970/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/970/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/970/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/98486ad208c32ec767376dae088db75b22cfab80"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/969",
      "id": 3288734444,
      "node_id": "PR_kwDOPt7f_s7EBhrs",
      "number": 969,
      "state": "open",
      "locked": false,
      "title": "fix: guard error handler against non-object thrown values",
      "user": {
        "login": "AI-Reviewer-QS",
        "id": 255312808,
        "node_id": "U_kgDODzfDqA",
        "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/AI-Reviewer-QS",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- The `in` operator throws a `TypeError` when its right-hand operand is not an object\n- In the tool execution error handler, both `'message' in err` and `'cause' in err` crash if the caught value is a primitive (null, string, number, undefined)\n- Added `typeof err === 'object'` checks before using the `in` operator to ensure primitive thrown values are safely converted to strings\n\n## Reproduction\n```js\ntry {\n  throw null; // or throw \"some string\", throw 42\n} catch (err) {\n  'message' in err; // TypeError: Cannot use 'in' operator to search for 'message' in null\n}\n```\n\n## Test plan\n- [ ] Verify tool error handling with `throw null`\n- [ ] Verify tool error handling with `throw \"string\"`\n- [ ] Verify tool error handling with `throw 42`\n- [ ] Verify tool error handling with standard `throw new Error(\"msg\")` still works\n- [ ] Verify error with `cause` property still includes cause message",
      "created_at": "2026-02-16T07:27:28Z",
      "updated_at": "2026-02-16T08:53:25Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "f0fd470830459df70bb69618d45eefa67383f54f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "AI-Reviewer-QS:fix/error-handler-primitive-values",
        "ref": "fix/error-handler-primitive-values",
        "sha": "3c5d2734e62badbcb499a1d4bdf3ed1db581118a",
        "user": {
          "login": "AI-Reviewer-QS",
          "id": 255312808,
          "node_id": "U_kgDODzfDqA",
          "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/AI-Reviewer-QS",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158999656,
          "node_id": "R_kgDORRTuaA",
          "name": "chrome-devtools-mcp",
          "full_name": "AI-Reviewer-QS/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "AI-Reviewer-QS",
            "id": 255312808,
            "node_id": "U_kgDODzfDqA",
            "avatar_url": "https://avatars.githubusercontent.com/u/255312808?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/AI-Reviewer-QS",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/AI-Reviewer-QS/chrome-devtools-mcp",
          "created_at": "2026-02-16T07:24:51Z",
          "updated_at": "2026-02-16T07:24:51Z",
          "pushed_at": "2026-02-16T07:43:53Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3365,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/969"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/969"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/969"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/969/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/969/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/969/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/3c5d2734e62badbcb499a1d4bdf3ed1db581118a"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/968",
      "id": 3288572676,
      "node_id": "PR_kwDOPt7f_s7EA6ME",
      "number": 968,
      "state": "open",
      "locked": false,
      "title": "docs: fix Codex MCP add instructions",
      "user": {
        "login": "liuxiaopai-ai",
        "id": 73659136,
        "node_id": "MDQ6VXNlcjczNjU5MTM2",
        "avatar_url": "https://avatars.githubusercontent.com/u/73659136?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/liuxiaopai-ai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Fixes #967.\n\n- Update README Codex install command to use `npx -y` (matches the recommended config and avoids interactive prompts).\n- Add a quick verification step (`codex mcp list`).\n- Document the common `error: unexpected argument 'add' found` case (older Codex CLIs) and provide a `.codex/config.toml` fallback snippet.\n- Add the same troubleshooting note to docs/troubleshooting.md.",
      "created_at": "2026-02-16T06:21:57Z",
      "updated_at": "2026-02-16T13:55:14Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "de877983e5d6859a7583880dfe84971a9169d85f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "liuxiaopai-ai:docs/fix-codex-mcp-add",
        "ref": "docs/fix-codex-mcp-add",
        "sha": "74fcf9d394aa45ca754e2b46b62efefbee44bcb5",
        "user": {
          "login": "liuxiaopai-ai",
          "id": 73659136,
          "node_id": "MDQ6VXNlcjczNjU5MTM2",
          "avatar_url": "https://avatars.githubusercontent.com/u/73659136?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/liuxiaopai-ai",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1156859836,
          "node_id": "R_kgDORPRHvA",
          "name": "chrome-devtools-mcp",
          "full_name": "liuxiaopai-ai/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "liuxiaopai-ai",
            "id": 73659136,
            "node_id": "MDQ6VXNlcjczNjU5MTM2",
            "avatar_url": "https://avatars.githubusercontent.com/u/73659136?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/liuxiaopai-ai",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/liuxiaopai-ai/chrome-devtools-mcp",
          "created_at": "2026-02-13T06:09:54Z",
          "updated_at": "2026-02-13T06:09:54Z",
          "pushed_at": "2026-02-16T13:54:51Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2679,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "5e5b746b663fccbf011dc2c64eac2c2c12b6cb0a",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/968"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/968"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/968"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/968/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/968/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/968/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/74fcf9d394aa45ca754e2b46b62efefbee44bcb5"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        9,
        967
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/966",
      "id": 3286296339,
      "node_id": "PR_kwDOPt7f_s7D4OcT",
      "number": 966,
      "state": "open",
      "locked": false,
      "title": "feat(consoleFormat): resolve console template specifiers in messages",
      "user": {
        "login": "Bupalchow",
        "id": 136565586,
        "node_id": "U_kgDOCCPTUg",
        "avatar_url": "https://avatars.githubusercontent.com/u/136565586?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Bupalchow",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "- Added `formatConsoleMessage` to resolve template specifiers using Chrome DevTools-style formatting.\r\n- ConsoleFormatter now applies the template and shows substituted text.",
      "created_at": "2026-02-15T07:40:28Z",
      "updated_at": "2026-02-16T08:14:01Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "24c0f90a655ca0540c1aea77bcd7f52f3d959155",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Bupalchow:feat/consoleFormat",
        "ref": "feat/consoleFormat",
        "sha": "4050ef37d87be5f7fc6ed9d88ebaac59fbd12ee6",
        "user": {
          "login": "Bupalchow",
          "id": 136565586,
          "node_id": "U_kgDOCCPTUg",
          "avatar_url": "https://avatars.githubusercontent.com/u/136565586?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Bupalchow",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158339206,
          "node_id": "R_kgDORQrahg",
          "name": "chrome-devtools-mcp",
          "full_name": "Bupalchow/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "Bupalchow",
            "id": 136565586,
            "node_id": "U_kgDOCCPTUg",
            "avatar_url": "https://avatars.githubusercontent.com/u/136565586?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Bupalchow",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/Bupalchow/chrome-devtools-mcp",
          "created_at": "2026-02-15T07:32:38Z",
          "updated_at": "2026-02-15T07:32:39Z",
          "pushed_at": "2026-02-15T07:32:50Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3358,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/966"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/966"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/966"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/966/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/966/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/966/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/4050ef37d87be5f7fc6ed9d88ebaac59fbd12ee6"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/965",
      "id": 3285265711,
      "node_id": "PR_kwDOPt7f_s7D0S0v",
      "number": 965,
      "state": "open",
      "locked": false,
      "title": "fix(mcp): improve tool invocation reliability for agents",
      "user": {
        "login": "madhaviai",
        "id": 43172017,
        "node_id": "MDQ6VXNlcjQzMTcyMDE3",
        "avatar_url": "https://avatars.githubusercontent.com/u/43172017?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/madhaviai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Addresses cases where DevTools MCP tools were not consistently picked up from natural language prompts by improving tool descriptions and metadata.\r\n\r\nValidation:\r\nTested locally across multiple prompts related to LCP and page performance.\r\nMCP tools were selected more consistently after the description updates.\r\n\r\nRefs #940",
      "created_at": "2026-02-14T20:03:45Z",
      "updated_at": "2026-02-16T14:31:04Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "77423894572ee3fc90682a926a28bccd3c9e459f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "madhaviai:fix/940-improve-mcp-invocation",
        "ref": "fix/940-improve-mcp-invocation",
        "sha": "6f91f6aab815e1ef88ea150fa019f8c8e2059242",
        "user": {
          "login": "madhaviai",
          "id": 43172017,
          "node_id": "MDQ6VXNlcjQzMTcyMDE3",
          "avatar_url": "https://avatars.githubusercontent.com/u/43172017?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/madhaviai",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1154577884,
          "node_id": "R_kgDORNF13A",
          "name": "chrome-devtools-mcp",
          "full_name": "madhaviai/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "madhaviai",
            "id": 43172017,
            "node_id": "MDQ6VXNlcjQzMTcyMDE3",
            "avatar_url": "https://avatars.githubusercontent.com/u/43172017?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/madhaviai",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/madhaviai/chrome-devtools-mcp",
          "created_at": "2026-02-10T14:48:43Z",
          "updated_at": "2026-02-10T14:48:43Z",
          "pushed_at": "2026-02-14T20:02:29Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2679,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/965"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/965"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/965"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/965/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/965/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/965/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/6f91f6aab815e1ef88ea150fa019f8c8e2059242"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        9
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/964",
      "id": 3284240466,
      "node_id": "PR_kwDOPt7f_s7DwYhS",
      "number": 964,
      "state": "open",
      "locked": false,
      "title": "fix(input): include page list when click opens new tab",
      "user": {
        "login": "SucRunBug",
        "id": 124331973,
        "node_id": "U_kgDOB2knxQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SucRunBug",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\nFixes a UX gap where `click`/`click_at` can open a new tab but the tool response doesn't include updated page context, making it hard for agents to detect that navigation happened in a new page.\r\n\r\nCloses #367.\r\n\r\n## What changed\r\n\r\n- Updated `/Users/yanmai/Downloads/MCP 测试/chrome-devtools-mcp/src/tools/input.ts`:\r\n  - `click`: listens for `popup` during the action and calls `response.setIncludePages(true)` if a new tab/window is opened.\r\n  - `click_at`: same behavior as `click`.\r\n  - Ensures popup listeners are cleaned up in `finally` blocks.\r\n\r\n- Updated `/Users/yanmai/Downloads/MCP 测试/chrome-devtools-mcp/tests/tools/input.test.ts`:\r\n  - Added `includes pages if click opens a new tab`\r\n  - Added `includes pages if click at coordinates opens a new tab`\r\n\r\n## Why this approach\r\n\r\n- Keeps existing behavior unchanged for normal clicks.\r\n- Only includes page list when a new page is actually opened, minimizing response noise.\r\n\r\n## Validation\r\n\r\n- `npm run typecheck`\r\n- `npx eslint src/tools/input.ts tests/tools/input.test.ts`\r\n- Targeted tests for the new scenarios and related click flows\r\n",
      "created_at": "2026-02-14T10:02:32Z",
      "updated_at": "2026-02-14T10:02:35Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "0dee3684081cc5509ace1ab75a2230c50b4aed7f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "SucRunBug:codex/issue-367-click-open-pages",
        "ref": "codex/issue-367-click-open-pages",
        "sha": "27534329505ceb38dcb9764aac580d1f1a86a3c6",
        "user": {
          "login": "SucRunBug",
          "id": 124331973,
          "node_id": "U_kgDOB2knxQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/SucRunBug",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1157762335,
          "node_id": "R_kgDORQINHw",
          "name": "chrome-devtools-mcp",
          "full_name": "SucRunBug/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "SucRunBug",
            "id": 124331973,
            "node_id": "U_kgDOB2knxQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/SucRunBug",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/SucRunBug/chrome-devtools-mcp",
          "created_at": "2026-02-14T08:55:20Z",
          "updated_at": "2026-02-14T08:55:20Z",
          "pushed_at": "2026-02-14T09:23:34Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2681,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/964"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/964"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/964"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/964/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/964/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/964/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/27534329505ceb38dcb9764aac580d1f1a86a3c6"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        367
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/963",
      "id": 3284123172,
      "node_id": "PR_kwDOPt7f_s7Dv74k",
      "number": 963,
      "state": "open",
      "locked": false,
      "title": "feat(console): group consecutive identical console messagesfeat(console): group consecutive identical console messages",
      "user": {
        "login": "SucRunBug",
        "id": 124331973,
        "node_id": "U_kgDOB2knxQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SucRunBug",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\n- Group consecutive identical messages in `list_console_messages`.\r\n- Add `[N times]` suffix in text output for collapsed duplicates.\r\n- Add `occurrences` to structured console message output when duplicates are collapsed.\r\n- Add test coverage for grouped duplicate console messages.\r\n\r\nCloses #904.\r\n\r\n## Changes\r\n\r\n- `/Users/yanmai/Downloads/MCP 测试/chrome-devtools-mcp/src/McpResponse.ts`\r\n  - Added grouping/formatting logic for consecutive identical console messages.\r\n- `/Users/yanmai/Downloads/MCP 测试/chrome-devtools-mcp/tests/tools/console.test.ts`\r\n  - Added `groups consecutive identical messages` test.\r\n\r\n## Validation\r\n\r\n- `npm run typecheck`\r\n- `npx eslint src/McpResponse.ts tests/tools/console.test.ts`\r\n- `PUPPETEER_EXECUTABLE_PATH='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' npm run test:no-build -- --test-name-pattern='groups consecutive identical messages' tests/tools/console.test.ts`\r\n- `PUPPETEER_EXECUTABLE_PATH='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' npm run test:no-build -- --test-name-pattern='adds console messages when the setting is true' tests/McpResponse.test.ts`\r\n",
      "created_at": "2026-02-14T08:57:10Z",
      "updated_at": "2026-02-16T12:47:17Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "71137d7eaabec12f076916ac044bf97a24c9b003",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "SucRunBug:codex/issue-904-group-console-messages",
        "ref": "codex/issue-904-group-console-messages",
        "sha": "b2ea06a6d8b325e01207e0fa41347618cfe92a9c",
        "user": {
          "login": "SucRunBug",
          "id": 124331973,
          "node_id": "U_kgDOB2knxQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/SucRunBug",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1157762335,
          "node_id": "R_kgDORQINHw",
          "name": "chrome-devtools-mcp",
          "full_name": "SucRunBug/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "SucRunBug",
            "id": 124331973,
            "node_id": "U_kgDOB2knxQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/124331973?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/SucRunBug",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/SucRunBug/chrome-devtools-mcp",
          "created_at": "2026-02-14T08:55:20Z",
          "updated_at": "2026-02-14T08:55:20Z",
          "pushed_at": "2026-02-14T09:23:34Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2681,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/963"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/963"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/963"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/963/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/963/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/963/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/b2ea06a6d8b325e01207e0fa41347618cfe92a9c"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        9,
        904
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/960",
      "id": 3282422289,
      "node_id": "PR_kwDOPt7f_s7DpcoR",
      "number": 960,
      "state": "open",
      "locked": false,
      "title": "feat(list_console_messages): include source-mapped location of messages",
      "user": {
        "login": "kopalg20",
        "id": 144939959,
        "node_id": "U_kgDOCKObtw",
        "avatar_url": "https://avatars.githubusercontent.com/u/144939959?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kopalg20",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "I implemented async fetching of source-mapped locations for console messages and uncaught errors.\r\n\r\n- list_console_messages remains fast and non-blocking.\r\n\r\n- get_console_message returns detailed stack traces with resolved source-mapped top frames.\r\n\r\n- Verified with 3000+ simulated errors; performance remains acceptable.\r\n\r\nThis addresses the request to show the source-mapped location for errors directly, without having to manually parse the stack trace.\r\n\r\nMade the changes in src/formatters/ConsoleFormatter.ts\r\n\r\n<img width=\"647\" height=\"436\" alt=\"Screenshot 2026-02-14 012632\" src=\"https://github.com/user-attachments/assets/d013e633-009a-44b0-be55-599cd48d1f22\" />\r\n<img width=\"698\" height=\"500\" alt=\"Screenshot 2026-02-14 012622\" src=\"https://github.com/user-attachments/assets/b85867dc-183b-4c57-8381-ceb999ad4e14\" />\r\n",
      "created_at": "2026-02-13T19:58:58Z",
      "updated_at": "2026-02-13T20:49:15Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "c0ee36649237b27d35058238c65aea1c7b583783",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "kopalg20:fix-async-source-map-fetch",
        "ref": "fix-async-source-map-fetch",
        "sha": "19ba41186a6875eafc2873a1eb93ab824478ebe9",
        "user": {
          "login": "kopalg20",
          "id": 144939959,
          "node_id": "U_kgDOCKObtw",
          "avatar_url": "https://avatars.githubusercontent.com/u/144939959?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/kopalg20",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1157364464,
          "node_id": "R_kgDORPv68A",
          "name": "chrome-devtools-mcp",
          "full_name": "kopalg20/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "kopalg20",
            "id": 144939959,
            "node_id": "U_kgDOCKObtw",
            "avatar_url": "https://avatars.githubusercontent.com/u/144939959?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/kopalg20",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/kopalg20/chrome-devtools-mcp",
          "created_at": "2026-02-13T18:26:31Z",
          "updated_at": "2026-02-13T18:26:31Z",
          "pushed_at": "2026-02-13T20:46:53Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2681,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/960"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/960"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/960"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/960/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/960/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/960/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/19ba41186a6875eafc2873a1eb93ab824478ebe9"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/958",
      "id": 3281932176,
      "node_id": "PR_kwDOPt7f_s7Dnk-Q",
      "number": 958,
      "state": "open",
      "locked": false,
      "title": "feat: --minimal mode with maximum token savings",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "- navigate\r\n- run js\r\n- take screenshot\r\n\r\nThat's it. Basic functionality for a low token price.",
      "created_at": "2026-02-13T18:00:40Z",
      "updated_at": "2026-02-16T08:55:18Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "494aedfedd6163ed930389ce569dcd22d6fd1044",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "natorion",
          "id": 7190422,
          "node_id": "MDQ6VXNlcjcxOTA0MjI=",
          "avatar_url": "https://avatars.githubusercontent.com/u/7190422?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/natorion",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "ChromeDevTools:orkon/minimal",
        "ref": "orkon/minimal",
        "sha": "3396207ad9b49783c80496712875121bffaf7e9d",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8d765c0aef7bbcd476c7e7fbe9ea63ee26cf4fa6",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/958"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/958"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/958"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/958/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/958/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/958/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/3396207ad9b49783c80496712875121bffaf7e9d"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/941",
      "id": 3277021149,
      "node_id": "PR_kwDOPt7f_s7DU1_d",
      "number": 941,
      "state": "open",
      "locked": false,
      "title": "feat: add screencast recording tools (closes #878)",
      "user": {
        "login": "dobesv",
        "id": 327833,
        "node_id": "MDQ6VXNlcjMyNzgzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/327833?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dobesv",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\nAdds `screencast_start` and `screencast_stop` MCP tools that allow agents to record a video of a page using Puppeteer's `page.screencast()` API.\r\n\r\nOnly enabled if the command line option `--experimental-screencast` is provided\r\n\r\nCloses #878.\r\n\r\n## New Tools\r\n\r\n### `screencast_start`\r\nStarts recording a screencast (video) of the selected page in mp4 format.\r\n\r\n| Parameter | Type | Default | Description |\r\n|-----------|------|---------|-------------|\r\n| `path` | string (optional) | temp file | Output file path |\r\n\r\n### `screencast_stop`\r\nStops the active recording and reports the saved file path.\r\n\r\n## Design\r\n\r\n- **Start/stop pair** following the `performance_start_trace` / `performance_stop_trace` pattern\r\n- **State management** via `getScreenRecorder()` / `setScreenRecorder()` on the Context interface\r\n- **Category**: `DEBUGGING` (alongside `take_screenshot`)\r\n- **ffmpeg dependency**: Clear error message when ffmpeg is not installed\r\n- **Temp file fallback**: When no `path` is provided, creates a temp file with the correct extension\r\n",
      "created_at": "2026-02-12T16:26:05Z",
      "updated_at": "2026-02-16T16:29:11Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "67960f940cf99aa77a9d37845e74b3287cb2503e",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "dobesv:feat/screencast-recording",
        "ref": "feat/screencast-recording",
        "sha": "277fe0d91dce5176fc84920dc04641678bdd2856",
        "user": {
          "login": "dobesv",
          "id": 327833,
          "node_id": "MDQ6VXNlcjMyNzgzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/327833?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/dobesv",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1156392233,
          "node_id": "R_kgDORO0lKQ",
          "name": "chrome-devtools-mcp",
          "full_name": "dobesv/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "dobesv",
            "id": 327833,
            "node_id": "MDQ6VXNlcjMyNzgzMw==",
            "avatar_url": "https://avatars.githubusercontent.com/u/327833?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/dobesv",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/dobesv/chrome-devtools-mcp",
          "created_at": "2026-02-12T15:44:57Z",
          "updated_at": "2026-02-12T15:44:57Z",
          "pushed_at": "2026-02-16T16:26:52Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2552,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "5e5b746b663fccbf011dc2c64eac2c2c12b6cb0a",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/941"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/941"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/941"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/941/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/941/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/941/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/277fe0d91dce5176fc84920dc04641678bdd2856"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        8,
        878
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/899",
      "id": 3252409902,
      "node_id": "PR_kwDOPt7f_s7B29Yu",
      "number": 899,
      "state": "open",
      "locked": false,
      "title": "feat: add multi-session support for concurrent Chrome instances",
      "user": {
        "login": "RobertWsp",
        "id": 67512895,
        "node_id": "MDQ6VXNlcjY3NTEyODk1",
        "avatar_url": "https://avatars.githubusercontent.com/u/67512895?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/RobertWsp",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdd multi-session support allowing multiple independent Chrome browser instances to run simultaneously, each identified by a unique `sessionId`. This enables parallel browser automation workflows (e.g., testing multiple pages side-by-side, comparing environments) without needing multiple MCP server processes.\n\n## Motivation\n\nThe current architecture supports only a single Chrome browser instance per server. This limits use cases where an MCP client needs to interact with multiple browser contexts concurrently — for example, comparing two web pages, running parallel test suites, or managing multiple authenticated sessions.\n\n## Changes\n\n### New files\n- **`src/SessionManager.ts`** — Core session lifecycle manager with per-session `Mutex`, auto-purge on browser disconnect, orphan prevention, and graceful shutdown\n- **`src/tools/session.ts`** — Three new tools: `create_session`, `list_sessions`, `close_session`\n- **`tests/SessionManager.test.ts`** — 17 E2E tests covering creation, retrieval, listing, closing, parallel isolation, mutex serialization, auto-purge, and shutdown rejection\n\n### Modified files\n- **`src/main.ts`** — Replaced singleton `browser`/`context` with `SessionManager`. Added `registerBrowserTool()` wrapper that transparently injects `sessionId` into every existing tool's Zod schema and resolves the correct session's `McpContext` — **original tool handlers remain unmodified**\n- **`src/tools/categories.ts`** — Added `SESSION` category\n- **`src/tools/tools.ts`** — Registered session tools, exported `sessionToolNames` set\n\n## Design decisions\n\n- **Transparent injection**: Existing tool handlers are NOT modified. `registerBrowserTool()` wraps each tool, injecting `sessionId` into the schema and resolving the correct `McpContext` before calling the unmodified handler\n- **`isolated: true` forced**: All sessions use isolated Chrome profiles to prevent conflicts\n- **Per-session Mutex**: Tools within the same session are serialized; different sessions run in parallel\n- **In-memory state**: Zero disk state — sessions are tracked in a `Map<string, SessionInfo>`\n- **Safety check**: Throws at startup if any tool defines its own `sessionId` schema (prevents conflicts)\n\n## Error handling\n\n- Orphan Chrome processes prevented: if `McpContext.from()` fails after `launch()`, the browser is closed\n- Race condition on close: `closeSession()` acquires the session mutex before closing\n- Signal handling: `process.once('SIGINT'/'SIGTERM')` with `#shuttingDown` guard and 10s timeout\n- Disconnected sessions auto-purge via `browser.on('disconnected')`\n- All catch blocks use `instanceof Error` (no unsafe `err?.message`)\n\n## Test results\n\n```\n▶ SessionManager (17 tests)\n  ✔ creates a session and returns session info\n  ✔ assigns label when provided\n  ✔ generates unique session IDs\n  ✔ rejects creation when shutting down\n  ✔ returns session by ID\n  ✔ throws for unknown session ID\n  ✔ throws and purges for disconnected browser\n  ✔ returns empty list when no sessions\n  ✔ returns all active sessions\n  ✔ closes and removes session\n  ✔ throws for unknown session ID\n  ✔ handles already-disconnected browser gracefully\n  ✔ closes all sessions\n  ✔ two sessions can navigate to different URLs independently\n  ✔ closing one session does not affect another\n  ✔ per-session mutex serializes within session but allows cross-session parallelism\n  ✔ removes session when browser disconnects unexpectedly\n✔ 17 pass, 0 fail\n```\n\n## Breaking changes\n\nAll existing browser tools now require a mandatory `sessionId` parameter. Clients must call `create_session` first to obtain a session ID before using any other tool.",
      "created_at": "2026-02-05T23:46:46Z",
      "updated_at": "2026-02-09T13:55:21Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "RobertWsp:feat/multi-session-support",
        "ref": "feat/multi-session-support",
        "sha": "a9432bd391c53995b192c218d47006954033170d",
        "user": {
          "login": "RobertWsp",
          "id": 67512895,
          "node_id": "MDQ6VXNlcjY3NTEyODk1",
          "avatar_url": "https://avatars.githubusercontent.com/u/67512895?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/RobertWsp",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1150997955,
          "node_id": "R_kgDORJrVww",
          "name": "chrome-devtools-mcp",
          "full_name": "RobertWsp/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "RobertWsp",
            "id": 67512895,
            "node_id": "MDQ6VXNlcjY3NTEyODk1",
            "avatar_url": "https://avatars.githubusercontent.com/u/67512895?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/RobertWsp",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/RobertWsp/chrome-devtools-mcp",
          "created_at": "2026-02-05T23:45:53Z",
          "updated_at": "2026-02-05T23:45:53Z",
          "pushed_at": "2026-02-05T23:49:25Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3573,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "d4592664142c7dccf89da7d9c43a60df72f1ec23",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/899"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/899"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/899"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/899/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/899/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/899/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/a9432bd391c53995b192c218d47006954033170d"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/869",
      "id": 3234463561,
      "node_id": "PR_kwDOPt7f_s7Ayf9J",
      "number": 869,
      "state": "open",
      "locked": false,
      "title": "docs: Add AdaL to supported coding agents",
      "user": {
        "login": "liyin2015",
        "id": 14322677,
        "node_id": "MDQ6VXNlcjE0MzIyNjc3",
        "avatar_url": "https://avatars.githubusercontent.com/u/14322677?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/liyin2015",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdds [AdaL](https://sylph.ai/) to the list of supported coding agents in the description.\n\n## About AdaL\n\nAdaL is a self-evolving AI coding agent with:\n- Native MCP server support (compatible with all MCP servers)\n- Claude Code skills/plugins compatibility\n- Advanced agentic capabilities for research and software engineering\n\n**Links:**\n- Website: https://sylph.ai/\n- Docs: https://docs.sylph.ai/\n- Discord: https://discord.com/invite/ezzszrRZvT\n\n🌸 Generated with [AdaL](https://github.com/adal-cli/)",
      "created_at": "2026-02-02T01:35:38Z",
      "updated_at": "2026-02-02T01:35:44Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "645fa8e12069c0be89750447b1727a43f6b70445",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "liyin2015:add-adal",
        "ref": "add-adal",
        "sha": "5fe3744ad711beb692d6159e520a95971de7fe6f",
        "user": {
          "login": "liyin2015",
          "id": 14322677,
          "node_id": "MDQ6VXNlcjE0MzIyNjc3",
          "avatar_url": "https://avatars.githubusercontent.com/u/14322677?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/liyin2015",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1147602631,
          "node_id": "R_kgDORGcGxw",
          "name": "chrome-devtools-mcp",
          "full_name": "liyin2015/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "liyin2015",
            "id": 14322677,
            "node_id": "MDQ6VXNlcjE0MzIyNjc3",
            "avatar_url": "https://avatars.githubusercontent.com/u/14322677?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/liyin2015",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/liyin2015/chrome-devtools-mcp",
          "created_at": "2026-02-02T01:31:48Z",
          "updated_at": "2026-02-02T01:31:48Z",
          "pushed_at": "2026-02-02T01:32:42Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3218,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "1c14c0e40276ccddb62e3f49b24ea933daa23bc4",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/869"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/869"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/869"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/869/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/869/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/869/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/5fe3744ad711beb692d6159e520a95971de7fe6f"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/833",
      "id": 3208935384,
      "node_id": "PR_kwDOPt7f_s6_RHfY",
      "number": 833,
      "state": "open",
      "locked": false,
      "title": "feat: add token optimization parameters (maxLength, selector, image resizing)",
      "user": {
        "login": "semikolon",
        "id": 13872,
        "node_id": "MDQ6VXNlcjEzODcy",
        "avatar_url": "https://avatars.githubusercontent.com/u/13872?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/semikolon",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdds token optimization features inspired by fast-playwright-mcp, addressing concerns raised in #340, #726, and #716.\n\n## Changes\n\n### Snapshot optimization\n- `maxLength` parameter - truncates snapshot with notice when exceeded\n- `selector` parameter - limits snapshot to CSS selector subtree (addresses #716)\n\n### Screenshot optimization  \n- `maxWidth`/`maxHeight` parameters - resizes images maintaining aspect ratio\n- Uses `sharp` library for image processing\n\n## Files changed\n- `src/tools/snapshot.ts` - added maxLength, selector params\n- `src/tools/screenshot.ts` - added maxWidth, maxHeight params\n- `src/utils/image-processor.ts` - new image processing utility\n- `src/McpResponse.ts` - selector filtering logic\n- `src/tools/ToolDefinition.ts` - extended SnapshotParams\n\n## Token savings\nThese features allow agents to dramatically reduce context usage on large pages by:\n- Truncating verbose snapshots to a max length\n- Focusing on specific page sections via CSS selector\n- Compressing screenshots before base64 encoding",
      "created_at": "2026-01-25T23:15:11Z",
      "updated_at": "2026-01-30T16:45:08Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "semikolon:feature/token-optimization",
        "ref": "feature/token-optimization",
        "sha": "bebd8b1ee4d86d7a5223d2fef105c92264f993ec",
        "user": {
          "login": "semikolon",
          "id": 13872,
          "node_id": "MDQ6VXNlcjEzODcy",
          "avatar_url": "https://avatars.githubusercontent.com/u/13872?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/semikolon",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1142071842,
          "node_id": "R_kgDORBKiIg",
          "name": "chrome-devtools-mcp",
          "full_name": "semikolon/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "semikolon",
            "id": 13872,
            "node_id": "MDQ6VXNlcjEzODcy",
            "avatar_url": "https://avatars.githubusercontent.com/u/13872?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/semikolon",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/semikolon/chrome-devtools-mcp",
          "created_at": "2026-01-25T22:45:21Z",
          "updated_at": "2026-01-25T22:45:21Z",
          "pushed_at": "2026-01-25T23:33:17Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2657,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8e215e3a14b3d8dc995314b4626103fa36c60abd",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/833"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/833"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/833"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/833/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/833/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/833/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/bebd8b1ee4d86d7a5223d2fef105c92264f993ec"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        7
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/831",
      "id": 3208271719,
      "node_id": "PR_kwDOPt7f_s6_Oldn",
      "number": 831,
      "state": "open",
      "locked": false,
      "title": "feat: integrate Lighthouse audits",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "This PR adds tool to perform navigation and snapshot audits using Lighthouse for Accessibility, SEO and Best practices. For performance audits existing tools can be used.",
      "created_at": "2026-01-25T12:20:41Z",
      "updated_at": "2026-02-16T14:35:25Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "649677bfb2127267b49771a67b0eeebaef95d33d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "zyzyzyryxy",
          "id": 31672205,
          "node_id": "MDQ6VXNlcjMxNjcyMjA1",
          "avatar_url": "https://avatars.githubusercontent.com/u/31672205?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/zyzyzyryxy",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "paulirish",
          "id": 39191,
          "node_id": "MDQ6VXNlcjM5MTkx",
          "avatar_url": "https://avatars.githubusercontent.com/u/39191?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/paulirish",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "ChromeDevTools:orkon/lighthouse",
        "ref": "orkon/lighthouse",
        "sha": "c2a6db4d567d14c5dc3ed1232d86db9e713d3804",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "fd0a9193b37be4c5cda21dc4904093c7b58d61be",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/831"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/831"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/831"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/831/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/831/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/831/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/c2a6db4d567d14c5dc3ed1232d86db9e713d3804"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/823",
      "id": 3206319324,
      "node_id": "PR_kwDOPt7f_s6_HIzc",
      "number": 823,
      "state": "open",
      "locked": false,
      "title": "feat: add WebAuthn virtual authenticator tools",
      "user": {
        "login": "ed-lepedus-thenvoi",
        "id": 244485532,
        "node_id": "U_kgDODpKNnA",
        "avatar_url": "https://avatars.githubusercontent.com/u/244485532?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ed-lepedus-thenvoi",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds 7 new tools exposing the Chrome DevTools Protocol WebAuthn domain for virtual authenticator testing:\n\n| Tool | Description |\n|------|-------------|\n| `webauthn_enable` | Enable virtual authenticator environment |\n| `webauthn_add_authenticator` | Add CTAP2/U2F virtual authenticator |\n| `webauthn_remove_authenticator` | Remove virtual authenticator |\n| `webauthn_get_credentials` | List registered credentials |\n| `webauthn_add_credential` | Pre-seed a credential |\n| `webauthn_clear_credentials` | Clear all credentials |\n| `webauthn_set_user_verified` | Toggle user verification state |\n\n## Use Case\n\nEnables automated testing of WebAuthn/passkey flows without physical security keys or platform authenticators (Touch ID, Windows Hello). Useful for:\n- E2E testing of passkey registration and authentication\n- CI/CD pipelines that need to test WebAuthn flows\n- Development workflows where hardware authenticators aren't available\n\n## Implementation\n\n- Uses Puppeteer's internal `_client()` API to access CDP session (same pattern as performance tools)\n- Follows existing tool patterns with `defineTool()` and Zod schemas\n- Includes user-friendly error messages for common failure modes\n- All 295 tests passing, linting clean\n\n## Testing\n\nVerified E2E on webauthn.io - successfully completed passkey registration and authentication flows using virtual authenticator.\n\n🤖 Generated with [Claude Code](https://claude.ai/code)",
      "created_at": "2026-01-24T10:28:13Z",
      "updated_at": "2026-01-24T13:34:27Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "d7e78c84fb45297c9cea1c97d09d127fb1d12634",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "ed-lepedus-thenvoi:feat/webauthn-support",
        "ref": "feat/webauthn-support",
        "sha": "ba7e900207f7c61f2ae38f7af73edce55d26faa4",
        "user": {
          "login": "ed-lepedus-thenvoi",
          "id": 244485532,
          "node_id": "U_kgDODpKNnA",
          "avatar_url": "https://avatars.githubusercontent.com/u/244485532?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ed-lepedus-thenvoi",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1141100826,
          "node_id": "R_kgDORAPRGg",
          "name": "chrome-devtools-mcp",
          "full_name": "ed-lepedus-thenvoi/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ed-lepedus-thenvoi",
            "id": 244485532,
            "node_id": "U_kgDODpKNnA",
            "avatar_url": "https://avatars.githubusercontent.com/u/244485532?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ed-lepedus-thenvoi",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/ed-lepedus-thenvoi/chrome-devtools-mcp",
          "created_at": "2026-01-24T08:45:29Z",
          "updated_at": "2026-01-24T08:45:29Z",
          "pushed_at": "2026-01-24T10:37:54Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2468,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 1,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 1,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "4b8e9f287572e0a95c30b5ca612acf08bf79595b",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/823"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/823"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/823"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/823/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/823/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/823/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/ba7e900207f7c61f2ae38f7af73edce55d26faa4"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/815",
      "id": 3200392009,
      "node_id": "PR_kwDOPt7f_s6-whtJ",
      "number": 815,
      "state": "open",
      "locked": false,
      "title": "feat: snapshot diff",
      "user": {
        "login": "OrKoN",
        "id": 399150,
        "node_id": "MDQ6VXNlcjM5OTE1MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/399150?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/OrKoN",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": null,
      "created_at": "2026-01-22T18:03:47Z",
      "updated_at": "2026-01-22T19:42:18Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "fd2dd6b2c5d55523259ae01a860ee39fe7b2a385",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "ChromeDevTools:orkon/diff",
        "ref": "orkon/diff",
        "sha": "d73aba393df1195f6a8a2b588da18e8809289c14",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "a6cd2cd3f2bd823f0e044d7796fd8ff2c100cda3",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/815"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/815"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/815"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/815/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/815/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/815/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/d73aba393df1195f6a8a2b588da18e8809289c14"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/778",
      "id": 3177859762,
      "node_id": "PR_kwDOPt7f_s69akqy",
      "number": 778,
      "state": "open",
      "locked": false,
      "title": "fix: use correct wording for HTTP status codes",
      "user": {
        "login": "Lightning00Blade",
        "id": 34244704,
        "node_id": "MDQ6VXNlcjM0MjQ0NzA0",
        "avatar_url": "https://avatars.githubusercontent.com/u/34244704?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Lightning00Blade",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "We should match what the HTTP status codes are done in normal scenarios as this may confuse the AI.\r\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status",
      "created_at": "2026-01-15T15:57:41Z",
      "updated_at": "2026-01-15T17:12:37Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "690a8dcd4f13f1b7c2514cda861cce7109d694ba",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "ChromeDevTools:fix-http-status",
        "ref": "fix-http-status",
        "sha": "235e2f315c68c92c51878f2e79359588823bdeb9",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "49c7ac41d5d218156ed8e63ca7864e8d94eb606d",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/778"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/778"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/778"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/778/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/778/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/778/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/235e2f315c68c92c51878f2e79359588823bdeb9"
        }
      },
      "author_association": "COLLABORATOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/753",
      "id": 3164881000,
      "node_id": "PR_kwDOPt7f_s68pEBo",
      "number": 753,
      "state": "open",
      "locked": false,
      "title": "feat: add --profile-directory option to specify Chrome profile",
      "user": {
        "login": "Yasindu20",
        "id": 89267432,
        "node_id": "MDQ6VXNlcjg5MjY3NDMy",
        "avatar_url": "https://avatars.githubusercontent.com/u/89267432?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Yasindu20",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\nAdds support for specifying which Chrome profile to use via a new `--profile-directory` CLI option.\r\n\r\n## Motivation\r\nUsers often need to:\r\n- Test with different browser profiles that have specific extensions installed\r\n- Maintain separate contexts for different projects\r\n- Use profiles with pre-configured settings or logged-in accounts\r\n\r\nCurrently, there's no way to specify which profile Chrome should use when launched by the MCP server.\r\n\r\n## Changes\r\n- ✅ Added `--profile-directory` CLI option with kebab-case alias\r\n- ✅ Updated `BrowserOptions` interface to include `profileDirectory` property\r\n- ✅ Connected CLI argument to Chrome's `--profile-directory` launch flag\r\n- ✅ Added documentation in README.md with usage examples\r\n- ✅ Included in the auto-generated options documentation\r\n\r\n## Usage Example\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"chrome-devtools\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\r\n        \"chrome-devtools-mcp@latest\",\r\n        \"--profile-directory=Profile 1\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOr via command line:\r\n```bash\r\nnpx chrome-devtools-mcp --profile-directory=\"Profile 1\"\r\n```\r\n\r\n- [x] Documentation generated correctly with `npm run docs`\r\n- [x] format with  `npm run format`\r\n\r\n## Related Issues\r\nFixes #694",
      "created_at": "2026-01-12T08:08:23Z",
      "updated_at": "2026-02-16T12:06:14Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "sebastianbenz",
          "id": 380472,
          "node_id": "MDQ6VXNlcjM4MDQ3Mg==",
          "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebastianbenz",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Yasindu20:support-multiple-chrome-profiles",
        "ref": "support-multiple-chrome-profiles",
        "sha": "6744657d89061c7d950a6653aef0d42fc2ed4959",
        "user": {
          "login": "Yasindu20",
          "id": 89267432,
          "node_id": "MDQ6VXNlcjg5MjY3NDMy",
          "avatar_url": "https://avatars.githubusercontent.com/u/89267432?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Yasindu20",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1131987372,
          "node_id": "R_kgDOQ3jBrA",
          "name": "chrome-devtools-mcp",
          "full_name": "Yasindu20/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "Yasindu20",
            "id": 89267432,
            "node_id": "MDQ6VXNlcjg5MjY3NDMy",
            "avatar_url": "https://avatars.githubusercontent.com/u/89267432?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Yasindu20",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/Yasindu20/chrome-devtools-mcp",
          "created_at": "2026-01-11T04:48:47Z",
          "updated_at": "2026-01-11T04:48:47Z",
          "pushed_at": "2026-01-13T16:39:16Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2140,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "8f3fcf65826d99bb175e331fc659b985e6d2da42",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/753"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/753"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/753"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/753/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/753/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/753/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/6744657d89061c7d950a6653aef0d42fc2ed4959"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        6,
        694
      ]
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/712",
      "id": 3131848013,
      "node_id": "PR_kwDOPt7f_s66rDVN",
      "number": 712,
      "state": "open",
      "locked": false,
      "title": "feat(tool-page): support visit pages with header",
      "user": {
        "login": "clChenLiang",
        "id": 13596193,
        "node_id": "MDQ6VXNlcjEzNTk2MTkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/clChenLiang",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "support to visit some page with special headers",
      "created_at": "2025-12-27T03:03:04Z",
      "updated_at": "2026-01-21T07:27:43Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "clChenLiang:feat/setheaders-in-tools",
        "ref": "feat/setheaders-in-tools",
        "sha": "b7d8ab4f1883ffd1f6cb0fa0256dd721eb0325d5",
        "user": {
          "login": "clChenLiang",
          "id": 13596193,
          "node_id": "MDQ6VXNlcjEzNTk2MTkz",
          "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/clChenLiang",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1117937911,
          "node_id": "R_kgDOQqJg9w",
          "name": "chrome-devtools-mcp",
          "full_name": "clChenLiang/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "clChenLiang",
            "id": 13596193,
            "node_id": "MDQ6VXNlcjEzNTk2MTkz",
            "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/clChenLiang",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/clChenLiang/chrome-devtools-mcp",
          "created_at": "2025-12-17T03:14:32Z",
          "updated_at": "2025-12-24T03:28:42Z",
          "pushed_at": "2026-01-21T07:23:26Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2046,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "28b8ff816461760c82e9b19b70f288bc7fa2fa38",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/712"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/712"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/712"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/712/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/712/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/712/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/b7d8ab4f1883ffd1f6cb0fa0256dd721eb0325d5"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/692",
      "id": 3113402277,
      "node_id": "PR_kwDOPt7f_s65kr-l",
      "number": 692,
      "state": "open",
      "locked": false,
      "title": "feat: support adding extra headers to mcp for each request",
      "user": {
        "login": "clChenLiang",
        "id": 13596193,
        "node_id": "MDQ6VXNlcjEzNTk2MTkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/clChenLiang",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "In test scenarios, \r\nthe test environment of the production domain is typically used, which is usually distinguished by headers. \r\nThis merge request supports adding headers parameters when accessing the test environment of a project.",
      "created_at": "2025-12-18T11:41:22Z",
      "updated_at": "2026-01-02T12:13:55Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "clChenLiang:main",
        "ref": "main",
        "sha": "92ee7056a23d9cd0b9c99a94d3439509dd8a0cbc",
        "user": {
          "login": "clChenLiang",
          "id": 13596193,
          "node_id": "MDQ6VXNlcjEzNTk2MTkz",
          "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/clChenLiang",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1117937911,
          "node_id": "R_kgDOQqJg9w",
          "name": "chrome-devtools-mcp",
          "full_name": "clChenLiang/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "clChenLiang",
            "id": 13596193,
            "node_id": "MDQ6VXNlcjEzNTk2MTkz",
            "avatar_url": "https://avatars.githubusercontent.com/u/13596193?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/clChenLiang",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/clChenLiang/chrome-devtools-mcp",
          "created_at": "2025-12-17T03:14:32Z",
          "updated_at": "2025-12-24T03:28:42Z",
          "pushed_at": "2026-01-21T07:23:26Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2046,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "28b8ff816461760c82e9b19b70f288bc7fa2fa38",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/692"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/692"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/692"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/692/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/692/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/692/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/92ee7056a23d9cd0b9c99a94d3439509dd8a0cbc"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/685",
      "id": 3105978303,
      "node_id": "PR_kwDOPt7f_s65IXe_",
      "number": 685,
      "state": "open",
      "locked": false,
      "title": "feat(screenshot): add full-page screenshot support for iframes",
      "user": {
        "login": "absarasw",
        "id": 51747444,
        "node_id": "MDQ6VXNlcjUxNzQ3NDQ0",
        "avatar_url": "https://avatars.githubusercontent.com/u/51747444?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/absarasw",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Add ability to capture full-page screenshots of iframe content by\r\ntemporarily expanding the iframe to reveal all scrollable content.\r\n\r\nChanges:\r\n- Add `iframeUid` parameter to explicitly target an iframe for capture\r\n- Auto-detect main content iframe when `fullPage=true` is used\r\n- Temporarily expand iframe dimensions to capture full scrollable content\r\n- Restore original iframe styles after screenshot capture\r\n- Add proper element handle disposal for better memory management\r\n\r\nThis enables capturing complete iframe content (like embedded editors or\r\ncontent frames) that would otherwise be clipped to the visible viewport.",
      "created_at": "2025-12-16T11:24:31Z",
      "updated_at": "2026-01-27T09:44:47Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "0b406f11ea4aa0d57aef79b010516d8dd1587417",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "absarasw:screenshot-tool-enhancement",
        "ref": "screenshot-tool-enhancement",
        "sha": "4019ebc132e8c602a9d2680bfcb3bb2de09288f3",
        "user": {
          "login": "absarasw",
          "id": 51747444,
          "node_id": "MDQ6VXNlcjUxNzQ3NDQ0",
          "avatar_url": "https://avatars.githubusercontent.com/u/51747444?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/absarasw",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1117459768,
          "node_id": "R_kgDOQpsVOA",
          "name": "chrome-devtools-mcp",
          "full_name": "absarasw/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "absarasw",
            "id": 51747444,
            "node_id": "MDQ6VXNlcjUxNzQ3NDQ0",
            "avatar_url": "https://avatars.githubusercontent.com/u/51747444?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/absarasw",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/absarasw/chrome-devtools-mcp",
          "created_at": "2025-12-16T10:45:29Z",
          "updated_at": "2025-12-16T10:45:29Z",
          "pushed_at": "2026-01-27T09:44:45Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2509,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "d7568881ba4aa0e2c10dc6148fd0ef941fee10d5",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/685"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/685"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/685"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/685/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/685/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/685/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/4019ebc132e8c602a9d2680bfcb3bb2de09288f3"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/639",
      "id": 3063176849,
      "node_id": "PR_kwDOPt7f_s62lF6R",
      "number": 639,
      "state": "open",
      "locked": false,
      "title": "feat: add performance_analyze_file tool",
      "user": {
        "login": "miyanaga",
        "id": 554106,
        "node_id": "MDQ6VXNlcjU1NDEwNg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/554106?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/miyanaga",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "This adds a new tool `performance_analyze_file` that lets you analyze trace files from the local filesystem.\n\n## Why\nCurrently, you can only analyze traces recorded live with `performance_start_trace`. But sometimes you already have trace files from Lighthouse, Chrome DevTools export, or other sources that you want to analyze.\n\n## What\n- Added `performance_analyze_file` tool that takes a file path and parses the trace\n- The analyzed trace is stored so you can use `performance_analyze_insight` to get details\n- Added tests for success, file not found, and invalid JSON cases\n\n## Testing\n```\nnpm run test\n```\nAll tests pass.",
      "created_at": "2025-12-02T11:34:21Z",
      "updated_at": "2026-01-12T10:24:19Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "ideamans:performance_analyze_file",
        "ref": "performance_analyze_file",
        "sha": "b601b779d3c6419aea4f6ca9d015c84977eb3462",
        "user": {
          "login": "ideamans",
          "id": 1811138,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjE4MTExMzg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1811138?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ideamans",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1108173258,
          "node_id": "R_kgDOQg1hyg",
          "name": "chrome-devtools-mcp",
          "full_name": "ideamans/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ideamans",
            "id": 1811138,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjE4MTExMzg=",
            "avatar_url": "https://avatars.githubusercontent.com/u/1811138?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ideamans",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/ideamans/chrome-devtools-mcp",
          "created_at": "2025-12-02T05:51:42Z",
          "updated_at": "2025-12-02T05:51:42Z",
          "pushed_at": "2025-12-02T08:26:21Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 2048,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "d8921453c77a1c0815059fb9bc72c0cd769a7bd4",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/639"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/639"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/639"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/639/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/639/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/639/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/b601b779d3c6419aea4f6ca9d015c84977eb3462"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/582",
      "id": 3027089531,
      "node_id": "PR_kwDOPt7f_s60bbh7",
      "number": 582,
      "state": "open",
      "locked": false,
      "title": "feat: add switch_browser tool with noLaunch CLI option",
      "user": {
        "login": "elijahr",
        "id": 153711,
        "node_id": "MDQ6VXNlcjE1MzcxMQ==",
        "avatar_url": "https://avatars.githubusercontent.com/u/153711?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/elijahr",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds the ability to dynamically switch between browser instances at runtime, with support for both HTTP and WebSocket connection URLs and configurable connection timeouts.\r\n\r\nNew Features:\r\n- switch_browser tool for connecting to different browser instances\r\n- --noLaunch CLI flag to start without auto-launching a browser\r\n- Timeout parameter with 10-second default for connection attempts\r\n- Automatic HTTP to WebSocket URL conversion\r\n- Support for ws://, wss://, http://, and https:// protocols\r\n\r\nImplementation:\r\n- Created src/context.ts to manage browser context lifecycle\r\n- Created src/config.ts to break dependency cycles\r\n- Added getBrowser/setBrowser helpers for better testability\r\n- Added disconnectBrowser() to safely close browser connections\r\n- Proper timeout cleanup to prevent resource leaks\r\n- Comprehensive error handling with proper Error type checks\r\n\r\nTesting:\r\n- 6 new integration tests with actual browser instances\r\n- Tests verify browser disconnection, connection switching, and error handling\r\n- All tests use headless mode for CI compatibility\r\n- Proper test isolation with independent browser instances per test\r\n\r\nDocumentation:\r\n- Updated README.md with new tool and CLI option\r\n- Auto-generated tool reference documentation\r\n- Updated release-please configuration",
      "created_at": "2025-11-19T19:25:37Z",
      "updated_at": "2025-12-01T15:54:02Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "elijahr:feat/switch-browser-tool",
        "ref": "feat/switch-browser-tool",
        "sha": "820b14517dcbe49ffcfa4b3d8560c480c3ca3307",
        "user": {
          "login": "elijahr",
          "id": 153711,
          "node_id": "MDQ6VXNlcjE1MzcxMQ==",
          "avatar_url": "https://avatars.githubusercontent.com/u/153711?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/elijahr",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1099451579,
          "node_id": "R_kgDOQYhMuw",
          "name": "chrome-devtools-mcp",
          "full_name": "elijahr/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "elijahr",
            "id": 153711,
            "node_id": "MDQ6VXNlcjE1MzcxMQ==",
            "avatar_url": "https://avatars.githubusercontent.com/u/153711?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/elijahr",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/elijahr/chrome-devtools-mcp",
          "created_at": "2025-11-19T02:25:23Z",
          "updated_at": "2025-11-19T02:25:23Z",
          "pushed_at": "2025-11-20T05:37:45Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 1838,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "6f9182f4b60f1f6ff8d321fec35545712828686e",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/582"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/582"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/582"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/582/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/582/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/582/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/820b14517dcbe49ffcfa4b3d8560c480c3ca3307"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/459",
      "id": 2940922796,
      "node_id": "PR_kwDOPt7f_s6vSuus",
      "number": 459,
      "state": "open",
      "locked": false,
      "title": "feat: add --transport flag and support for running the MCP server via HTTP",
      "user": {
        "login": "viktormarinho",
        "id": 56888067,
        "node_id": "MDQ6VXNlcjU2ODg4MDY3",
        "avatar_url": "https://avatars.githubusercontent.com/u/56888067?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/viktormarinho",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": null,
      "created_at": "2025-10-23T15:21:04Z",
      "updated_at": "2025-12-08T05:34:38Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "viktormarinho:main",
        "ref": "main",
        "sha": "94b8207a4d929f78b309bafb5ea9763cd8723956",
        "user": {
          "login": "viktormarinho",
          "id": 56888067,
          "node_id": "MDQ6VXNlcjU2ODg4MDY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/56888067?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/viktormarinho",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1081990418,
          "node_id": "R_kgDOQH3dEg",
          "name": "chrome-devtools-mcp",
          "full_name": "viktormarinho/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "viktormarinho",
            "id": 56888067,
            "node_id": "MDQ6VXNlcjU2ODg4MDY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/56888067?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/viktormarinho",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": true,
          "url": "https://api.github.com/repos/viktormarinho/chrome-devtools-mcp",
          "created_at": "2025-10-23T15:18:46Z",
          "updated_at": "2025-10-23T15:20:36Z",
          "pushed_at": "2025-10-23T15:20:32Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 1608,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "ChromeDevTools:main",
        "ref": "main",
        "sha": "ad307f6c2d7bcf9217a842de321ca4966f3672e9",
        "user": {
          "login": "ChromeDevTools",
          "id": 11260967,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
          "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ChromeDevTools",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1054793726,
          "node_id": "R_kgDOPt7f_g",
          "name": "chrome-devtools-mcp",
          "full_name": "ChromeDevTools/chrome-devtools-mcp",
          "private": false,
          "owner": {
            "login": "ChromeDevTools",
            "id": 11260967,
            "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
            "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ChromeDevTools",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Chrome DevTools for coding agents",
          "fork": false,
          "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
          "created_at": "2025-09-11T10:39:55Z",
          "updated_at": "2026-02-17T02:43:27Z",
          "pushed_at": "2026-02-16T15:03:01Z",
          "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
          "size": 3433,
          "stargazers_count": 25644,
          "watchers_count": 25644,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": true,
          "forks_count": 1513,
          "archived": false,
          "disabled": false,
          "open_issues_count": 85,
          "license": {
            "key": "apache-2.0",
            "name": "Apache License 2.0",
            "spdx_id": "Apache-2.0",
            "url": "https://api.github.com/licenses/apache-2.0",
            "node_id": "MDc6TGljZW5zZTI="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {
            "0": "browser",
            "1": "chrome",
            "2": "chrome-devtools",
            "3": "debugging",
            "4": "devtools",
            "5": "mcp",
            "6": "mcp-server",
            "7": "puppeteer"
          },
          "visibility": "public",
          "forks": 1513,
          "open_issues": 85,
          "watchers": 25644,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/459"
        },
        "html": {
          "href": "https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/459"
        },
        "issue": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/459"
        },
        "comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/issues/459/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/459/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/pulls/459/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp/statuses/94b8207a4d929f78b309bafb5ea9763cd8723956"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    }
  ],
  "discussions": [
    {
      "id": "D_kwDOPt7f_s4AkJBo",
      "number": 962,
      "title": "🚀 PLG Analysis Insights for chrome-devtools-mcp",
      "body": "Hi! I'm building [skene-growth](https://github.com/SkeneTechnologies/skene-growth), a PLG analysis tool, and ran it on **Browser Debugging & Performance Tool** to see what insights it could surface.\n\nI noticed you're using TypeScript. The tool identified some interesting patterns in the codebase:\n\n## 🎯 Growth Opportunities (6 detected)\n\n**Telemetry Analytics System** (in `ClearcutLogger.ts`)\n  _Enables data-driven decisions through comprehensive telemetry collection including tool usage, server lifecycle, and daily active user tracking_\n  - Add user journey analytics to track tool sequences and identify conversion funnels\n  - Implement cohort analysis using daily active tracking to measure retention\n  - Add performance dashboards showing tool latency and error rates for optimization\n\n**Performance Tracing System** (in `performance.ts`)\n  _Drives user engagement through comprehensive performance analysis and Core Web Vitals reporting that provides actionable insights_\n  - Add performance benchmarking and comparison features to encourage regular usage\n  - Implement performance alerts and notifications to drive re-engagement\n  - Create shareable performance reports for team collaboration and viral growth\n\n**Network Request Analysis** (in `network.ts`)\n  _Facilitates debugging and optimization workflows through detailed network request inspection and analysis_\n  - Add network request templates and mocking capabilities for testing scenarios\n  - Implement request/response diff comparison for API versioning workflows\n  - Add collaborative features for sharing network traces with team members\n\n## 🔍 Potential Gaps (9 identified)\n\n**User Authentication & Accounts** (high priority)\n  _No user authentication system limits user personalization, data persistence, and team collaboration features that are essential for enterprise adoption_\n\n**Onboarding & Tutorial System** (high priority)\n  _Missing guided onboarding flows and interactive tutorials could lead to high abandonment rates for new users unfamiliar with debugging tools_\n\n**Team Collaboration Features** (high priority)\n  _No sharing mechanisms for debugging sessions, performance reports, or network traces limits viral growth potential among development teams_\n\n---\n\n**About the analysis:** This was generated by [skene-growth](https://github.com/SkeneTechnologies/skene-growth), an open-source tool I'm building that analyzes codebases for PLG opportunities by looking at:\n- Existing features with growth potential\n- Architecture patterns that enable viral loops\n- Missing features that could accelerate adoption\n\nHope some of these insights are interesting! This is just what the analysis surfaced—take what's useful, ignore the rest.",
      "created_at": "2026-02-13T21:33:27Z",
      "updated_at": "2026-02-13T21:33:27Z",
      "category": {
        "name": "General",
        "emoji": ":speech_balloon:"
      },
      "answer": null,
      "user": {
        "login": "teekoo5",
        "avatar_url": "https://avatars.githubusercontent.com/u/5706882?u=92a28160dfc25de2127219718be7f6e4978fd2a9&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AjlTH",
      "number": 749,
      "title": "🐋 Can this dev-tools MCP work via Docker instead of locally installed node?",
      "body": "👋🏻 G'Day CDT! \r\n\r\nThank you kindly for providing this tool.\r\n\r\nIn the [Requirements ](https://github.com/ChromeDevTools/chrome-devtools-mcp?tab=readme-ov-file#requirements)and [Getting Started](https://github.com/ChromeDevTools/chrome-devtools-mcp?tab=readme-ov-file#getting-started) documentation it suggests that node _needs to be installed locally_. Putting aside language wars, etc .. is it possible that this MCP tool can be provided as a Docker image? I'm really really new to MCP's so I apologize if this cannot be _technically_ possible.\r\n\r\nKeep up the awesome work! 🎉\r\n\r\n\r\nEDIT: I'm guessing that the complexity here could be because\r\n- dev-tools actually runs a chrome instance / connects to an _existing_ instance\r\n- really hard for docker to 'punch out' of it's instance and then connect to the local machine + start a chrome instance, etc\r\n\r\nI _hoping_ hard doesn't mean _impossible_",
      "created_at": "2026-01-10T03:00:23Z",
      "updated_at": "2026-01-24T19:32:44Z",
      "category": {
        "name": "General",
        "emoji": ":speech_balloon:"
      },
      "answer": null,
      "user": {
        "login": "PureKrome",
        "avatar_url": "https://avatars.githubusercontent.com/u/899878?v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4Ajxqi",
      "number": 817,
      "title": "50+ developer badges on developer profile",
      "body": "G.dev/austinedfizer \n",
      "created_at": "2026-01-23T06:58:17Z",
      "updated_at": "2026-01-23T06:58:17Z",
      "category": {
        "name": "Show and tell",
        "emoji": ":raised_hands:"
      },
      "answer": null,
      "user": {
        "login": "austinedfizer-lab",
        "avatar_url": "https://avatars.githubusercontent.com/u/235693043?v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AjXUo",
      "number": 701,
      "title": "White list navigation",
      "body": "In order to mitigate security concerns with giving an LLM access to browser navigation it would be nice if there was a whitelist option where the navigate request could be restricted to whatever URLs the user wants to give the LLM access to.",
      "created_at": "2025-12-22T03:25:49Z",
      "updated_at": "2026-01-12T08:57:14Z",
      "category": {
        "name": "Ideas",
        "emoji": ":bulb:"
      },
      "answer": null,
      "user": {
        "login": "jordaniwoodtaylor",
        "avatar_url": "https://avatars.githubusercontent.com/u/31978907?u=d9fb5280f3ff9269a7c64ca1bac4b285ff2e14c8&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4Air40",
      "number": 506,
      "title": "Brave Browser Support",
      "body": "Since Brave is built on Chromium, will this work with Brave browser as well?",
      "created_at": "2025-10-31T12:01:06Z",
      "updated_at": "2026-01-10T20:10:09Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": null,
      "user": {
        "login": "JiriAtZartico",
        "avatar_url": "https://avatars.githubusercontent.com/u/177237944?u=9f72cfa16d479d3f4007317dbafaff93186f7fd4&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AiGX5",
      "number": 94,
      "title": "chrome-devtools mcp not installed in CursorAI",
      "body": "I installed chrome-devtools mcp on CursorAI, but it says \"No tools, prompts, or resources.\" What could be the problem?\r\n\r\nEnvironment\r\n```\r\nnode: v22.19.0\r\nnpm: v10.9.3\r\n```\r\n\r\nmcp.json\r\n```\r\n{\r\n  \"mcpServers\": {\r\n     \"chrome-devtools\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"chrome-devtools-mcp@latest\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n<img width=\"545\" height=\"60\" alt=\"스크린샷 2025-09-24 오전 10 09 47\" src=\"https://github.com/user-attachments/assets/4230f3b1-c8ec-46ee-a6a3-1ee73dc4e27e\" />\r\n",
      "created_at": "2025-09-24T01:09:56Z",
      "updated_at": "2026-01-09T13:35:39Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": null,
      "user": {
        "login": "eodingJunggyoo",
        "avatar_url": "https://avatars.githubusercontent.com/u/159886849?v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4Ai0s9",
      "number": 544,
      "title": "HTTP transport",
      "body": "how do we enable the HTTP transport for the Chrome DevTools MCP server? I need to connect to it over the network instead of stdio. Thanks!\r\n\r\n",
      "created_at": "2025-11-11T09:59:42Z",
      "updated_at": "2026-01-09T13:33:47Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": null,
      "user": {
        "login": "qaqab",
        "avatar_url": "https://avatars.githubusercontent.com/u/74885738?u=734dcdf95301a357670ce2320986fc7fb3872dbc&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4Ai03r",
      "number": 545,
      "title": "Cursor implementation and browser console logging",
      "body": "Is this supposed to work with logging the existing chrome browser instance outside cursor or the built-in browser? not working with neither of the two on my end",
      "created_at": "2025-11-11T13:45:33Z",
      "updated_at": "2026-01-09T13:32:31Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": null,
      "user": {
        "login": "reddere",
        "avatar_url": "https://avatars.githubusercontent.com/u/111050360?u=3285d3bb63e1a27fcecc7a944b41d89329c36713&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AiGJi",
      "number": 82,
      "title": "Authenticated pages",
      "body": "Is there any guidance on how to deal with authenticated pages?\r\n\r\nI think the ideal scenario would be some sort of config where we could set a cookie to be used by the chrome session opened by the MCP.\r\nMaybe for now until we get something like that we can add instructions to our AI tool to go to the login page of our app and authenticate using some test credentials. The downside is that I believe it would need to authenticate for every new chrome session the MCP opens, which could be slow and resource consuming.\r\n\r\nbtw, thanks for the team working on this MCP. I believe it's gonna help a lot",
      "created_at": "2025-09-23T17:55:57Z",
      "updated_at": "2026-01-12T08:56:27Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": {
        "id": "DC_kwDOPt7f_s4A69J2",
        "body": "`--auto-connect` is likely the solution you are looking for. see https://github.com/ChromeDevTools/chrome-devtools-mcp#configuration"
      },
      "user": {
        "login": "lebreRafael",
        "avatar_url": "https://avatars.githubusercontent.com/u/13899924?u=e369c3ee2dc23d78e49e5a93352616eb9809e1c5&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AjjbZ",
      "number": 736,
      "title": "fetching website gives me ssl error",
      "body": "i try to fetch a webpage on a server on the local network such as http://192.168.1.110:8000 but get an error from claude code trying the chrome devtools mcp \r\n\r\n```\r\nError: write EPROTO C0BCC80C3D790000:error:0A00010B:SSL routines:ssl3_get_record:wrong version\r\n     number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:\r\n```\r\n\r\n",
      "created_at": "2026-01-08T03:01:26Z",
      "updated_at": "2026-01-09T13:23:13Z",
      "category": {
        "name": "Q&A",
        "emoji": ":pray:"
      },
      "answer": null,
      "user": {
        "login": "ljmerza",
        "avatar_url": "https://avatars.githubusercontent.com/u/4085765?u=7b6a49bb4699d682cb44a5aaace638baaf994d67&v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4AjiZl",
      "number": 734,
      "title": "Start Canary when --autoConnect is used, but Canary isn't running.",
      "body": "The `--autoConnect` feature is handy, since I do occasionally have Canary running when I'm debugging myself.\r\n\r\nBut, I don't _always_ have it running before using the LLM, and so I'd like it to auto-start, and without asking me to \"Accept remote debugging\", for smoother workflow.\r\n\r\nI wrote a small patch for this, but discovered it's an intentional design-decision to *not* auto-start.\r\n\r\nIf it's helpful for anyone, here's a fair amount of glue to make it happen.\r\n\r\n<details>\r\n<summary>.mcp.json</summary>\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"chrome-devtools\": {\r\n      \"type\": \"stdio\",\r\n      \"command\": \"npx\",\r\n      \"args\": [\r\n        \"chrome-devtools-mcp@latest\",\r\n        \"--autoConnect\",\r\n        \"--channel=canary\",\r\n        \"--userDataDir=/path/to/.cache/chrome-devtools-mcp/chrome-profile-canary\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n\r\n```\r\n</details>\r\n\r\n<details>\r\n<summary>Chrome start script for the LLM: `chrome-canary.sh`</summary>\r\n\r\n```bash\r\n#!/bin/bash\r\n#\r\n# Chrome Canary launcher for chrome-devtools-mcp\r\n# Usage: chrome-canary.sh --start | --stop\r\n#\r\n# PURPOSE:\r\n#\r\n# This script starts Chrome Canary in a way that allows the chrome-devtools-mcp server to connect\r\n# via the DevTools Protocol without requiring the user to manually click \"Allow\" on a remote\r\n# debugging permission dialog.\r\n#\r\n# WHY:\r\n#\r\n# Chrome 136+ introduced a security restriction: the --remote-debugging-port flag is blocked when\r\n# using Chrome's default profile directory. This prevents malicious software from silently enabling\r\n# remote debugging to steal cookies.\r\n#\r\n# The only way to use --remote-debugging-port is with a non-default --user-data-dir.  This script\r\n# uses the same profile directory that chrome-devtools-mcp uses when it launches Chrome itself:\r\n# ~/.cache/chrome-devtools-mcp/chrome-profile-canary\r\n#\r\n# HOW IT WORKS:\r\n#\r\n# 1. Chrome starts with --remote-debugging-port=0 (Chrome picks an available port)\r\n# 2. Chrome writes the chosen port to DevToolsActivePort in the user-data-dir\r\n# 3. The MCP server (configured with --userDataDir pointing to the same location)\r\n#    reads DevToolsActivePort to find the port and connect\r\n#\r\n# MCP SERVER CONFIGURATION:\r\n#\r\n# --autoConnect assumes Canary has already been started, and searches for DevToolsActivePort in the\r\n# user's default Canary profile.\r\n#\r\n# Therefore, the MCP server must be configured with --userDataDir pointing to the same directory\r\n# used by this script, so it will find our DevToolsActivePort.\r\n#\r\n# Also, userDataDir must be absolute; implicit $HOME/ construction is only done when the MCP starts\r\n# Chrome itself.\r\n#\r\n# Example .mcp.json:\r\n#\r\n#   {\r\n#     \"mcpServers\": {\r\n#       \"chrome-devtools\": {\r\n#         \"command\": \"npx\",\r\n#         \"args\": [\r\n#           \"chrome-devtools-mcp@latest\",\r\n#           \"--autoConnect\",\r\n#           \"--channel=canary\",\r\n#           \"--userDataDir=/path/to/.cache/chrome-devtools-mcp/chrome-profile-canary\"\r\n#         ]\r\n#       }\r\n#     }\r\n#   }\r\n#\r\n# CHROME FLAGS EXPLAINED:\r\n#   --remote-debugging-port=0   Enable remote debugging; 0 = pick available port\r\n#   --user-data-dir=<path>      Use non-default profile (required to enable remote debugging)\r\n#   --profile-directory=Default Use the \"Default\" profile within user-data-dir\r\n#   --no-default-browser-check  Suppress \"make Chrome your default browser\" prompt\r\n#   --no-first-run              Suppress first-run welcome wizard\r\n#   --disable-profile-picker    Suppress profile selection dialog\r\n#   about:blank                 Open a blank page (ensures a page is available)\r\n#\r\n# NOTE: The MCP server doesn't support --profile-directory. When the MCP server\r\n# launches Chrome itself, it may show a profile picker. This script avoids that\r\n# by explicitly passing --profile-directory=Default.\r\n#\r\n\r\nCHROME_BIN=\"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary\"\r\nLOG_FILE=\"${TMPDIR:-/tmp}/chrome-canary.log\"\r\nPID_FILE=\"${TMPDIR:-/tmp}/chrome-canary.pid\"\r\nUSER_DATA_DIR=\"$HOME/.cache/chrome-devtools-mcp/chrome-profile-canary\"\r\n\r\nstart_chrome() {\r\n    \"$CHROME_BIN\" \\\r\n        --remote-debugging-port=0 \\\r\n        --user-data-dir=\"$USER_DATA_DIR\" \\\r\n        --profile-directory=Default \\\r\n        --no-default-browser-check \\\r\n        --no-first-run \\\r\n        --disable-profile-picker \\\r\n        about:blank \\\r\n        > \"$LOG_FILE\" 2>&1 &\r\n\r\n    CHROME_PID=$!\r\n    echo \"{\\\"canary_pid\\\": $CHROME_PID}\" > \"$PID_FILE\"\r\n    cat \"$PID_FILE\"\r\n}\r\n\r\nstop_chrome() {\r\n    if [[ -f \"$PID_FILE\" ]]; then\r\n        CHROME_PID=$(grep -o '\"canary_pid\": [0-9]*' \"$PID_FILE\" | grep -o '[0-9]*')\r\n        if [[ -n \"$CHROME_PID\" ]]; then\r\n            kill \"$CHROME_PID\" 2>/dev/null\r\n            rm -f \"$PID_FILE\"\r\n            echo \"{\\\"stopped\\\": $CHROME_PID}\"\r\n        else\r\n            echo \"{\\\"error\\\": \\\"Could not parse PID from $PID_FILE\\\"}\" >&2\r\n            exit 1\r\n        fi\r\n    else\r\n        echo \"{\\\"error\\\": \\\"No PID file found at $PID_FILE\\\"}\" >&2\r\n        exit 1\r\n    fi\r\n}\r\n\r\ncase \"$1\" in\r\n    --start)\r\n        start_chrome\r\n        ;;\r\n    --stop)\r\n        stop_chrome\r\n        ;;\r\n    *)\r\n        echo \"Usage: $0 --start | --stop\" >&2\r\n        exit 1\r\n        ;;\r\nesac\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>LLM instructions</summary>\r\n\r\n````markdown\r\n# Handle chrome-devtools MCP server error\r\n\r\nWhen any chrome-devtools tool returns this error:\r\n\r\n```\r\nError: Could not connect to Chrome. Check if Chrome is running and remote debugging is enabled by going to chrome://inspect/#remote-debugging.\r\n```\r\n\r\nStart Chrome manually with: `./chrome-canary.sh --start`\r\n````\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>Claude Code permissions (including the MCP)</summary>\r\n\r\n```json\r\n{\r\n  \"permissions\": {\r\n    \"allow\": [\r\n      \"Bash(./chrome-canary.sh:*)\",\r\n      \"mcp__chrome-devtools\"\r\n    ]\r\n  },\r\n  \"enabledMcpjsonServers\": [\r\n    \"chrome-devtools\"\r\n  ]\r\n}\r\n```\r\n</details>\r\n\r\n<details>\r\n<summary>macOS osascript to compile for an app shortcut (Spotlight, etc.)</summary>\r\n\r\n```osascript\r\n-- Canary Dev.applescript\r\n-- Launches Chrome Canary with remote debugging enabled using a dedicated dev profile.\r\n--\r\n-- This profile is stored at ~/.cache/chrome-devtools-mcp/chrome-profile-canary,\r\n-- which is the default location used by chrome-devtools-mcp when --channel=canary\r\n-- is specified. This allows the MCP server to connect without additional config.\r\n--\r\n-- Compile with:\r\n--   osacompile -o \"Canary Dev.app\" \"Canary Dev.applescript\"\r\n\r\nset userHome to POSIX path of (path to home folder)\r\nset userDataDir to userHome & \".cache/chrome-devtools-mcp/chrome-profile-canary\"\r\nset chromeBin to \"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary\"\r\n\r\nset chromeCmd to quoted form of chromeBin & \" \" & ¬\r\n\t\"--remote-debugging-port=0 \" & ¬\r\n\t\"--user-data-dir=\" & quoted form of userDataDir & \" \" & ¬\r\n\t\"--profile-directory=Default \" & ¬\r\n\t\"--no-default-browser-check \" & ¬\r\n\t\"--no-first-run \" & ¬\r\n\t\"--disable-profile-picker \" & ¬\r\n\t\"about:blank \" & ¬\r\n\t\"&> /dev/null &\"\r\n\r\ndo shell script chromeCmd\r\n```\r\n</details>",
      "created_at": "2026-01-07T00:01:46Z",
      "updated_at": "2026-01-09T13:22:18Z",
      "category": {
        "name": "General",
        "emoji": ":speech_balloon:"
      },
      "answer": null,
      "user": {
        "login": "richardkmichael",
        "avatar_url": "https://avatars.githubusercontent.com/u/364390?v=4"
      }
    },
    {
      "id": "D_kwDOPt7f_s4Ah5FS",
      "number": 13,
      "title": "Welcome to chrome-devtools-mcp Discussions!",
      "body": "## 👋 Welcome!\r\n  We’re using Discussions as a place to connect with other members of our community. We hope that you:\r\n  * Ask questions you’re wondering about.\r\n  * Share ideas.\r\n  * Engage with other community members.\r\n  * Welcome others and are open-minded. Remember that this is a community we\r\n  build together 💪.\r\n\r\n\r\n",
      "created_at": "2025-09-12T06:56:55Z",
      "updated_at": "2026-01-09T05:50:55Z",
      "category": {
        "name": "Announcements",
        "emoji": ":mega:"
      },
      "answer": null,
      "user": {
        "login": "sebastianbenz",
        "avatar_url": "https://avatars.githubusercontent.com/u/380472?v=4"
      }
    }
  ],
  "details": {
    "id": 1054793726,
    "node_id": "R_kgDOPt7f_g",
    "name": "chrome-devtools-mcp",
    "full_name": "ChromeDevTools/chrome-devtools-mcp",
    "private": false,
    "owner": {
      "login": "ChromeDevTools",
      "id": 11260967,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
      "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/ChromeDevTools",
      "type": "Organization",
      "user_view_type": "public",
      "site_admin": false
    },
    "description": "Chrome DevTools for coding agents",
    "fork": false,
    "url": "https://api.github.com/repos/ChromeDevTools/chrome-devtools-mcp",
    "created_at": "2025-09-11T10:39:55Z",
    "updated_at": "2026-02-17T02:43:27Z",
    "pushed_at": "2026-02-16T15:03:01Z",
    "homepage": "https://npmjs.org/package/chrome-devtools-mcp",
    "size": 3433,
    "stargazers_count": 25644,
    "watchers_count": 25644,
    "language": "TypeScript",
    "has_issues": true,
    "has_projects": false,
    "has_downloads": true,
    "has_wiki": false,
    "has_pages": false,
    "has_discussions": true,
    "forks_count": 1513,
    "archived": false,
    "disabled": false,
    "open_issues_count": 85,
    "license": {
      "key": "apache-2.0",
      "name": "Apache License 2.0",
      "spdx_id": "Apache-2.0",
      "url": "https://api.github.com/licenses/apache-2.0",
      "node_id": "MDc6TGljZW5zZTI="
    },
    "allow_forking": true,
    "is_template": false,
    "web_commit_signoff_required": false,
    "has_pull_requests": true,
    "pull_request_creation_policy": "all",
    "topics": {
      "0": "browser",
      "1": "chrome",
      "2": "chrome-devtools",
      "3": "debugging",
      "4": "devtools",
      "5": "mcp",
      "6": "mcp-server",
      "7": "puppeteer"
    },
    "visibility": "public",
    "forks": 1513,
    "open_issues": 85,
    "watchers": 25644,
    "default_branch": "main",
    "permissions": {
      "admin": false,
      "maintain": false,
      "push": false,
      "triage": false,
      "pull": true
    },
    "temp_clone_token": "",
    "custom_properties": {
      "ai_agent_config_bypass": "false",
      "ghss_scan_exemption": {
        "0": "direct-push"
      },
      "requires_action_scanning": "false",
      "requires_two_party_review": "false"
    },
    "organization": {
      "login": "ChromeDevTools",
      "id": 11260967,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMjYwOTY3",
      "avatar_url": "https://avatars.githubusercontent.com/u/11260967?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/ChromeDevTools",
      "type": "Organization",
      "user_view_type": "public",
      "site_admin": false
    },
    "network_count": 1513,
    "subscribers_count": 99
  },
  "lastFetched": 1771297377067
}