ChromeBrowserMCP
A read-only bridge that lets ChatGPT inspect open Chrome tabs, exposing tools to list, read, and search tabs without accessing sensitive data.
README
Chrome Browser MCP
A local, read-only bridge that lets a private ChatGPT developer-mode app inspect the tabs already open in your desktop Google Chrome.
The bridge exposes six MCP tools:
browser_statuslist_tabsget_active_tabread_tabread_tabssearch_tabs
It does not expose cookies, local storage, session storage, saved passwords, hidden input values, arbitrary JavaScript execution, clicks, navigation, tab closing, or incognito tabs.
Proven path
The end-to-end test launches a real Chromium process with the unpacked Manifest V3 extension, starts the real native-messaging host, connects an MCP client over Streamable HTTP, opens two live pages, lists and reads them, and verifies that a password input value is not returned.
MCP client
-> http://127.0.0.1:2091/mcp
-> native host process
-> Chrome Native Messaging
-> MV3 extension
-> live Chrome tabs
Run every gate:
npm ci
npm run check
Architecture
ChatGPT developer-mode app
|
| OpenAI Secure MCP Tunnel (outbound HTTPS)
v
127.0.0.1:2091/mcp
|
| same local Node process
v
Chrome Native Messaging host
|
v
Chrome MV3 extension
|
+-- chrome.tabs
+-- chrome.scripting (isolated-world semantic extraction)
Chrome starts the native host when the extension connects. The native host starts the loopback MCP endpoint. Therefore Chrome must be open and the extension must be enabled whenever ChatGPT uses the app.
Requirements
- macOS
- Google Chrome 120+
- Node.js 20+
- A ChatGPT account with Developer Mode available
- An OpenAI Platform tunnel ID and runtime API key with Tunnels Read + Use
tunnel-client
1. Install the native host and build the extension
npm run install:mac
This installs the native-host manifest at:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.komaksym.chrome_browser_mcp.json
2. Load the Chrome extension
- Open
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select this repository's
dist/extensiondirectory. - Confirm the extension ID is exactly:
jlpddlfiallighiohmhhkemgbhofpnha
Do not proceed if the ID differs. The native host only accepts that exact extension origin.
3. Verify the local browser chain
Keep Chrome open, then run:
npm run verify:local
A successful check prints the extension ID and the six advertised MCP tools.
4. Configure Secure MCP Tunnel
Create a tunnel and runtime API key in OpenAI Platform. Then:
export CONTROL_PLANE_API_KEY="sk-..."
./scripts/configure-tunnel.sh tunnel_0123456789abcdef0123456789abcdef
tunnel-client doctor --profile chrome-browser-mcp --explain
tunnel-client run --profile chrome-browser-mcp
The profile forwards the tunnel to:
http://127.0.0.1:2091/mcp
Keep tunnel-client run active whenever ChatGPT needs the browser tools.
5. Add it to ChatGPT
- In ChatGPT, enable Settings -> Security and login -> Developer mode.
- Open Settings -> Plugins.
- Click + to create a developer-mode app.
- Choose Tunnel as the connection type.
- Select or paste the tunnel ID.
- Use the metadata from
app-metadata.json. - Confirm ChatGPT discovers all six tools.
- In a new chat, click + -> More, select Chrome Browser, then ask:
List my open Chrome tabs.
See docs/CHATGPT_SETUP.md for exact verification and troubleshooting.
Security model
Webpage text is data, never authority. Every content result includes an explicit untrusted-content marker, and every reading tool tells the model not to follow instructions found in pages.
The extension intentionally requests access to all HTTP and HTTPS pages because it cannot summarize arbitrary open tabs otherwise. That is a powerful permission. The protection boundary is:
- the extension is loaded locally by you;
- Chrome only launches the exact allowlisted native host;
- the native host rejects any origin except the stable extension ID;
- the MCP endpoint binds only to
127.0.0.1; - the tunnel is outbound-only;
- all exposed MCP tools are read-only.
Read THREAT_MODEL.md and SECURITY_REVIEW.md before extending the tool set.
Known limitations
- One Chrome profile should load the extension at a time; two profiles can contend for port
2091. - Chrome internal pages, Chrome Web Store pages,
file://pages, and incognito tabs are not readable. - Cross-origin iframes are not traversed.
- Canvas-only applications and Chrome's built-in PDF viewer may return little semantic text.
- The extractor returns the primary document's visible text, headings, links, and description, not raw HTML. URL credentials and fragments are removed, and sensitive query parameters are redacted.
- The bridge is deliberately read-only. Browser control is a separate, higher-risk project.
Development
npm ci
npm run typecheck
npm run lint
npm test
npm run test:e2e
npm audit
The E2E test accepts:
CHROMIUM_PATH=/path/to/chromium \
CHROME_NATIVE_HOST_DIR=/path/to/native-host-dir \
npm run test:e2e
Uninstall
npm run uninstall:mac
Then remove Chrome Browser MCP from chrome://extensions and remove the ChatGPT developer-mode app/tunnel profile separately.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。