A Model Context Protocol server that enables AI assistants to control Chrome browsers through the Chrome DevTools Protocol, allowing for navigation, clicking, typing, and extracting page information.
A Model Context Protocol (MCP) server that provides fine-grained control over a Chrome browser instance through the Chrome DevTools Protocol (CDP).
# macOS, Linux, or WSL curl -fsSL https://bun.sh/install | bash # Windows (using PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" # Alternatively, using npm npm install -g bun
Start Chrome with remote debugging enabled:
# macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 # Windows start chrome --remote-debugging-port=9222 # Linux google-chrome --remote-debugging-port=9222
Install dependencies:
bun install
bun start
For development with hot reloading:
bun dev
The server will start on port 3000 by default. You can change this by setting the PORT
environment variable.
To use this Chrome MCP server with Roo Code:
Open Roo Code settings
Navigate to the MCP settings configuration file at:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
Add the following configuration to the mcpServers
object:
{ "mcpServers": { "chrome-control": { "url": "http://localhost:3000/sse", "disabled": false, "alwaysAllow": [] } } }
Save the file and restart Roo Code to apply the changes.
You can now use the Chrome MCP tools in Roo Code to control the browser.
The server provides the following tools for browser control:
Navigate to a specific URL.
Parameters:
url
(string): The URL to navigate toClick at specific coordinates.
Parameters:
x
(number): X coordinatey
(number): Y coordinateType text at the current focus.
Parameters:
text
(string): Text to typeClick on an element by its index in the page info.
Parameters:
selector
(string): Element index (e.g., "0" for the first element)Get text content of an element using a CSS selector.
Parameters:
selector
(string): CSS selector to find the elementGet semantic information about the page including interactive elements and text nodes.
Get current page state including URL, title, scroll position, and viewport size.
The server implements the Model Context Protocol with SSE transport. Connect to the server at:
http://localhost:3000/sse
http://localhost:3000/message?sessionId=...
When using with Roo Code, the configuration in the MCP settings file will handle the connection automatically.
To run the server in development mode with hot reloading:
bun dev
This uses Bun's built-in watch mode to automatically restart the server when files change.
MIT
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!