chrome-profile-debug
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chrome-profile-debuglist tabs in my staging Chrome profile"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
chrome-profile-debug
Drive any of your named Chrome profiles from an MCP client — Claude Code, Codex, or anything else that speaks MCP over stdio.
Chrome keeps every profile in one browser process. Tools that attach over
--remote-debugging-port therefore see all of your open profiles at once and
cannot tell them apart, while extension-based tools usually bind to whichever
single profile happens to be paired. Neither lets you say "work in the profile I
call staging".
This does. You name each profile once, and every tool call takes that name.
list_profiles() → ["personal", "staging", "prod-readonly"]
new_tab(profile: "staging", url: "https://app.example.com") → { tabId: 42 }
read_page(profile: "staging", tabId: 42)No listening TCP port. No telemetry. No Chrome Web Store account required.
How it works
MCP client
│ stdio
▼
server/index.js ──── Unix domain socket (0600)
▲
│ NDJSON
host/host.js ─────── one process per profile, spawned by Chrome
▲
│ Chrome native messaging
extension/ ───────── one instance per profile
│ chrome.debugger
▼
web pageThe wire format is specified in docs/PROTOCOL.md. The threat model and its limits are in docs/SECURITY.md.
Related MCP server: chrome-remote-debugging-mcp
Install
Requires Node.js 20+ and a Chromium-family browser.
1. Get the code
git clone https://github.com/marcondesmacaneiro/chrome-profile-debug.git
cd chrome-profile-debug
npm installKeep the directory where it is. An unpacked extension's ID is derived from its absolute path, and the native messaging manifest pins that ID — moving the folder breaks the link until you re-run the installer.
2. Load the extension into each profile you want to drive
In each Chrome profile, separately:
Open
chrome://extensionsTurn on Developer mode
Click Load unpacked and select the
extension/directory
The extension always gets the same ID, whether it was loaded from source or installed from the Chrome Web Store:
clkflehjfcefahjgchgcomflocccphnjThat is because extension/manifest.json pins the public key. Without it, an
unpacked extension's ID derives from its absolute path and would differ on
every machine.
3. Register the native messaging host
Once per machine:
npm run install-host -- --extension-id clkflehjfcefahjgchgcomflocccphnjThis writes a manifest into Chrome's NativeMessagingHosts directory. It
contains an absolute path, so it is generated locally and never committed.
The same command covers every profile on the machine: the ID identifies the extension, not the profile.
4. Name each profile
Click the extension icon in a profile and give it a name — staging,
personal, whatever you will type in your prompts. A profile with no name
never connects, which is what makes participation opt-in.
5. Point your MCP client at the server
Claude Code:
claude mcp add chrome-profile-debug -- node /absolute/path/to/chrome-profile-debug/server/index.jsAny other client: run server/index.js over stdio.
Tools
list_profiles first — everything else takes a profile name.
Tool | Purpose |
| Connected, named profiles |
| Tabs in that profile |
| Tab lifecycle |
| Open a URL |
| Accessibility tree with click-ready coordinates |
| Plain text of the page |
| PNG or JPEG of the viewport |
| Run JavaScript in the page |
| Input |
| Console messages, optionally filtered by regex |
| Network requests |
Troubleshooting
A profile does not appear in list_profiles. Check, in order: the extension
is loaded in that profile; it has a name in the popup; the native host manifest
lists that profile's extension ID; the MCP server is running.
DEBUGGER_BUSY. Chrome allows one debugger client per tab. Close DevTools
on that tab.
RESTRICTED_URL. Extensions cannot touch chrome://, devtools://, or the
Chrome Web Store. This is a browser restriction with no workaround.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to drive a real, logged-in Chrome browser for web automation tasks like navigation, clicking, typing, and screenshotting.11MIT
- AlicenseAqualityAmaintenanceControls a running Chrome/Chromium browser via the Chrome DevTools Protocol, enabling navigation, JavaScript evaluation, tab management, and raw CDP commands through MCP tools.5MIT
- AlicenseNot gradedqualityBmaintenanceLocal MCP server for persistent Chrome automation with multi-profile support, enabling tab management, page inspection, element interaction, JavaScript evaluation, and screenshots while preserving login sessions across restarts.1652MIT
- AlicenseNot gradedqualityAmaintenanceEnables driving a real Chrome instance remotely through MCP, including per-tab control, JavaScript evaluation, screenshots, cookie and network capture, and CDP fallback with token-based authentication.1MIT
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcondesmacaneiro/chrome-profile-debug'
If you have feedback or need assistance with the MCP directory API, please join our Discord server