{"id":31422299,"url":"https://github.com/ChromeDevTools/chrome-devtools-mcp","last_synced_at":"2025-09-30T01:04:15.072Z","repository":{"id":316249946,"uuid":"1054793726","full_name":"ChromeDevTools/chrome-devtools-mcp","owner":"ChromeDevTools","description":"Chrome DevTools for coding agents","archived":false,"fork":false,"pushed_at":"2025-09-23T15:00:05.000Z","size":1278,"stargazers_count":26,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-23T15:34:54.506Z","etag":null,"topics":["browser","chrome","chrome-devtools","debugging","devtools","mcp","mcp-server","puppeteer"],"latest_commit_sha":null,"homepage":"https://npmjs.org/package/chrome-devtools-mcp","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChromeDevTools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-11T10:39:55.000Z","updated_at":"2025-09-23T15:33:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"57511823-73ee-4cc0-af02-a0d9b23ae585","html_url":"https://github.com/ChromeDevTools/chrome-devtools-mcp","commit_stats":null,"previous_names":["chromedevtools/chrome-devtools-mcp"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ChromeDevTools/chrome-devtools-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChromeDevTools%2Fchrome-devtools-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChromeDevTools%2Fchrome-devtools-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChromeDevTools%2Fchrome-devtools-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChromeDevTools%2Fchrome-devtools-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChromeDevTools","download_url":"https://codeload.github.com/ChromeDevTools/chrome-devtools-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChromeDevTools%2Fchrome-devtools-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277528417,"owners_count":25833785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-29T02:00:09.175Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","chrome","chrome-devtools","debugging","devtools","mcp","mcp-server","puppeteer"],"created_at":"2025-09-30T01:02:30.495Z","updated_at":"2025-09-30T01:04:15.059Z","avatar_url":"https://github.com/ChromeDevTools.png","language":"TypeScript","readme":"# Chrome DevTools MCP\n\n[![npm chrome-devtools-mcp package](https://img.shields.io/npm/v/chrome-devtools-mcp.svg)](https://npmjs.org/package/chrome-devtools-mcp)\n\n`chrome-devtools-mcp` lets your coding agent (such as Gemini, Claude, Cursor or Copilot)\ncontrol and inspect a live Chrome browser. It acts as a Model-Context-Protocol\n(MCP) server, giving your AI coding assistant access to the full power of\nChrome DevTools for reliable automation, in-depth debugging, and performance analysis.\n\n## Key features\n\n- **Get performance insights**: Uses [Chrome\n  DevTools](https://github.com/ChromeDevTools/devtools-frontend) to record\n  traces and extract actionable performance insights.\n- **Advanced browser debugging**: Analyze network requests, take screenshots and\n  check the browser console.\n- **Reliable automation**. Uses\n  [puppeteer](https://github.com/puppeteer/puppeteer) to automate actions in\n  Chrome and automatically wait for action results.\n\n## Disclaimers\n\n`chrome-devtools-mcp` exposes content of the browser instance to the MCP clients\nallowing them to inspect, debug, and modify any data in the browser or DevTools.\nAvoid sharing sensitive or personal information that you don't want to share with\nMCP clients.\n\n## Requirements\n\n- [Node.js 20](https://nodejs.org/) or a newer [latest maintainance LTS](https://github.com/nodejs/Release#release-schedule) version.\n- [Chrome](https://www.google.com/chrome/) current stable version or newer.\n- [npm](https://www.npmjs.com/).\n\n## Getting started\n\nAdd the following config to your MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\"chrome-devtools-mcp@latest\"]\n    }\n  }\n}\n```\n\n\u003e [!NOTE]  \n\u003e Using `chrome-devtools-mcp@latest` ensures that your MCP client will always use the latest version of the Chrome DevTools MCP server.\n\n### MCP Client configuration\n\n\u003cdetails\u003e\n  \u003csummary\u003eClaude Code\u003c/summary\u003e\n    Use the Claude Code CLI to add the Chrome DevTools MCP server (\u003ca href=\"https://docs.anthropic.com/en/docs/claude-code/mcp\"\u003eguide\u003c/a\u003e):\n\n```bash\nclaude mcp add chrome-devtools npx chrome-devtools-mcp@latest\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCline\u003c/summary\u003e\n  Follow https://docs.cline.bot/mcp/configuring-mcp-servers and use the config provided above.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCodex\u003c/summary\u003e\n  Follow the \u003ca href=\"https://github.com/openai/codex/blob/main/docs/advanced.md#model-context-protocol-mcp\"\u003econfigure MCP guide\u003c/a\u003e\n  using the standard config from above. You can also install the Chrome DevTools MCP server using the Codex CLI:\n\n```bash\ncodex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest\n```\n\n**On Windows 11**\n\nConfigure the Chrome install location and increase the startup timeout by updating `.codex/config.toml` and adding the following `env` and `startup_timeout_ms` parameters:\n\n```\n[mcp_servers.chrome-devtools]\ncommand = \"cmd\"\nargs = [\n    \"/c\",\n    \"npx\",\n    \"-y\",\n    \"chrome-devtools-mcp@latest\",\n]\nenv = { SystemRoot=\"C:\\\\Windows\", PROGRAMFILES=\"C:\\\\Program Files\" }\nstartup_timeout_ms = 20_000\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCopilot / VS Code\u003c/summary\u003e\n  Follow the MCP install \u003ca href=\"https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server\"\u003eguide\u003c/a\u003e,\n  with the standard config from above. You can also install the Chrome DevTools MCP server using the VS Code CLI:\n  \n  ```bash\n  code --add-mcp '{\"name\":\"chrome-devtools\",\"command\":\"npx\",\"args\":[\"chrome-devtools-mcp@latest\"]}'\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eVisual Studio\u003c/summary\u003e\n  \n  **Click the button to install:**\n  \n  [\u003cimg src=\"https://img.shields.io/badge/Visual_Studio-Install-C16FDE?logo=visualstudio\u0026logoColor=white\" alt=\"Install in Visual Studio\"\u003e](https://vs-open.link/mcp-install?%7B%22name%22%3A%22chrome-devtools%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22chrome-devtools-mcp%40latest%22%5D%7D)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCursor\u003c/summary\u003e\n\n**Click the button to install:**\n\n[\u003cimg src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" alt=\"Install in Cursor\"\u003e](https://cursor.com/en/install-mcp?name=chrome-devtools\u0026config=eyJjb21tYW5kIjoibnB4IGNocm9tZS1kZXZ0b29scy1tY3BAbGF0ZXN0In0%3D)\n\n**Or install manually:**\n\nGo to `Cursor Settings` -\u003e `MCP` -\u003e `New MCP Server`. Use the config provided above.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGemini CLI\u003c/summary\u003e\nInstall the Chrome DevTools MCP server using the Gemini CLI.\n\n**Project wide:**\n\n```bash\ngemini mcp add chrome-devtools npx chrome-devtools-mcp@latest\n```\n\n**Globally:**\n\n```bash\ngemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest\n```\n\nAlternatively, follow the \u003ca href=\"https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md#how-to-set-up-your-mcp-server\"\u003eMCP guide\u003c/a\u003e and use the standard config from above.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGemini Code Assist\u003c/summary\u003e\n  Follow the \u003ca href=\"https://cloud.google.com/gemini/docs/codeassist/use-agentic-chat-pair-programmer#configure-mcp-servers\"\u003econfigure MCP guide\u003c/a\u003e\n  using the standard config from above.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eJetBrains AI Assistant \u0026 Junie\u003c/summary\u003e\n\nGo to `Settings | Tools | AI Assistant | Model Context Protocol (MCP)` -\u003e `Add`. Use the config provided above.\nThe same way chrome-devtools-mcp can be configured for JetBrains Junie in `Settings | Tools | Junie | MCP Settings` -\u003e `Add`. Use the config provided above.\n\n\u003c/details\u003e\n\n### Your first prompt\n\nEnter the following prompt in your MCP Client to check if everything is working:\n\n```\nCheck the performance of https://developers.chrome.com\n```\n\nYour MCP client should open the browser and record a performance trace.\n\n\u003e [!NOTE]  \n\u003e The MCP server will start the browser automatically once the MCP client uses a tool that requires a running browser instance. Connecting to the Chrome DevTools MCP server on its own will not automatically start the browser.\n\n## Tools\n\n\u003c!-- BEGIN AUTO GENERATED TOOLS --\u003e\n\n- **Input automation** (7 tools)\n  - [`click`](docs/tool-reference.md#click)\n  - [`drag`](docs/tool-reference.md#drag)\n  - [`fill`](docs/tool-reference.md#fill)\n  - [`fill_form`](docs/tool-reference.md#fill_form)\n  - [`handle_dialog`](docs/tool-reference.md#handle_dialog)\n  - [`hover`](docs/tool-reference.md#hover)\n  - [`upload_file`](docs/tool-reference.md#upload_file)\n- **Navigation automation** (7 tools)\n  - [`close_page`](docs/tool-reference.md#close_page)\n  - [`list_pages`](docs/tool-reference.md#list_pages)\n  - [`navigate_page`](docs/tool-reference.md#navigate_page)\n  - [`navigate_page_history`](docs/tool-reference.md#navigate_page_history)\n  - [`new_page`](docs/tool-reference.md#new_page)\n  - [`select_page`](docs/tool-reference.md#select_page)\n  - [`wait_for`](docs/tool-reference.md#wait_for)\n- **Emulation** (3 tools)\n  - [`emulate_cpu`](docs/tool-reference.md#emulate_cpu)\n  - [`emulate_network`](docs/tool-reference.md#emulate_network)\n  - [`resize_page`](docs/tool-reference.md#resize_page)\n- **Performance** (3 tools)\n  - [`performance_analyze_insight`](docs/tool-reference.md#performance_analyze_insight)\n  - [`performance_start_trace`](docs/tool-reference.md#performance_start_trace)\n  - [`performance_stop_trace`](docs/tool-reference.md#performance_stop_trace)\n- **Network** (2 tools)\n  - [`get_network_request`](docs/tool-reference.md#get_network_request)\n  - [`list_network_requests`](docs/tool-reference.md#list_network_requests)\n- **Debugging** (4 tools)\n  - [`evaluate_script`](docs/tool-reference.md#evaluate_script)\n  - [`list_console_messages`](docs/tool-reference.md#list_console_messages)\n  - [`take_screenshot`](docs/tool-reference.md#take_screenshot)\n  - [`take_snapshot`](docs/tool-reference.md#take_snapshot)\n\n\u003c!-- END AUTO GENERATED TOOLS --\u003e\n\n## Configuration\n\nThe Chrome DevTools MCP server supports the following configuration option:\n\n\u003c!-- BEGIN AUTO GENERATED OPTIONS --\u003e\n\n- **`--browserUrl`, `-u`**\n  Connect to a running Chrome instance using port forwarding. For more details see: https://developer.chrome.com/docs/devtools/remote-debugging/local-server.\n  - **Type:** string\n\n- **`--headless`**\n  Whether to run in headless (no UI) mode.\n  - **Type:** boolean\n  - **Default:** `false`\n\n- **`--executablePath`, `-e`**\n  Path to custom Chrome executable.\n  - **Type:** string\n\n- **`--isolated`**\n  If specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed.\n  - **Type:** boolean\n  - **Default:** `false`\n\n- **`--channel`**\n  Specify a different Chrome channel that should be used. The default is the stable channel version.\n  - **Type:** string\n  - **Choices:** `stable`, `canary`, `beta`, `dev`\n\n- **`--logFile`**\n  Path to a file to write debug logs to. Set the env variable `DEBUG` to `*` to enable verbose logs. Useful for submitting bug reports.\n  - **Type:** string\n\n\u003c!-- END AUTO GENERATED OPTIONS --\u003e\n\nPass them via the `args` property in the JSON configuration. For example:\n\n```json\n{\n  \"mcpServers\": {\n    \"chrome-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"chrome-devtools-mcp@latest\",\n        \"--channel=canary\",\n        \"--headless=true\",\n        \"--isolated=true\"\n      ]\n    }\n  }\n}\n```\n\nYou can also run `npx chrome-devtools-mcp@latest --help` to see all available configuration options.\n\n## Concepts\n\n### User data directory\n\n`chrome-devtools-mcp` starts a Chrome's stable channel instance using the following user\ndata directory:\n\n- Linux / MacOS: `$HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL`\n- Window: `%HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL`\n\nThe user data directory is not cleared between runs and shared across\nall instances of `chrome-devtools-mcp`. Set the `isolated` option to `true`\nto use a temporary user data dir instead which will be cleared automatically after\nthe browser is closed.\n\n## Known limitations\n\n### Operating system sandboxes\n\nSome MCP clients allow sandboxing the MCP server using macOS Seatbelt or Linux\ncontainers. If sandboxes are enabled, `chrome-devtools-mcp` is not able to start\nChrome that requires permissions to create its own sandboxes. As a workaround,\neither disable sandboxing for `chrome-devtools-mcp` in your MCP client or use\n`--connect-url` to connect to a Chrome instance that you start manually outside\nof the MCP client sandbox.\n","funding_links":[],"categories":["Browser Automation","AI 相关","TypeScript","📚 Projects (1974 total)","A01_文本生成_文本对话","Repos","Uncategorized","MCP Servers \u0026 Integrations","📦 Other","MCP Ecosystem","Tools"],"sub_categories":["DevTools","MCP","MCP Servers","大语言对话模型及数据","Uncategorized","Other IDEs","Servers","Model Context Protocol","Codex Resources"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChromeDevTools%2Fchrome-devtools-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FChromeDevTools%2Fchrome-devtools-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChromeDevTools%2Fchrome-devtools-mcp/lists"}