
Connects Claude to a live Chrome browser session through a WebSocket bridge and extension. Instead of dumping the entire DOM into context after every action, it sends a stripped down HTML snapshot that keeps text and interactive elements but drops the bloat. You install the extension, point it at an LLM (they recommend Gemini Flash), and invoke the browser-agent tool with a natural language prompt like "search for MCP protocol on Google." Good fallback when a site doesn't have a dedicated MCP server. Runs locally in your browser, no remote calls except to your LLM provider. The extension listens on port 9003 and executes whatever automation task you throw at it.
An MCP (Model Context Protocol) server that provides browser automation capabilities through a Chrome extension. It allows terminal-based agents like Claude Code to interact with any website through your live browser session.
Part of the Runbook AI ecosystem. Join the Discord community to provide your feedback and get involved in the development!
https://github.com/user-attachments/assets/a43fba64-bc40-4ef6-9840-e100203e2cf5
Most browser-based MCP tools (like chrome-devtools-mcp) blow up your LLM context window by sending the entire DOM after every browser action.
Runbook AI is different:
eval() or shady scripts (enforced by the Chrome extension sandbox).Add to your MCP settings configuration:
{
"mcpServers": {
"runbook-ai": {
"command": "npx",
"args": ["-y", "runbook-ai-mcp@latest"]
}
}
}
Install the Runbook AI extension from Chrome Web Store.
Enable MCP in the extension settings opened from extension side panel.
Set LLM API key, and model name, base URL. Use of Gemini 3 Flash (gemini-3-flash-preview) is recommended. Get your free API key from Google AI Studio.
By default the extension has access to all websites. If you want to limit the access, go to Chrome Extension Details, and add individual sites to Site access setting.
Open Chrome and keep the extension side panel open.
Start the MCP server (it will automatically start when invoked by your MCP client).
The server exposes a single tool:
browser-agentRun a task in Chrome browser with AI and automation capabilities.
Parameters:
prompt (string, required): The task prompt for the AI agent to executemaxIterations (number, optional): Maximum number of agent iterations for the task (default: 15). Each iteration is one agent action (navigate, click, type, etc.); raise this for long multi-page tasks. Token budgets scale with it.ephemeral (boolean, optional, default true): Each call runs in an isolated browser session — it starts on a fresh blank tab, cannot see tabs left by previous calls, and closes every tab it opened when it finishes. Pass false to continue from the tabs of a previous call and leave the final page open (e.g. multi-call workflows that build on the same page).effort (string, optional, default normal): How much exploration the agent invests — quick (one fast pass over loaded content, missing optional details reported as "not specified", tighter iteration budget), normal (exploration matched to what the ask requires), or thorough (follow all pagination, open detail pages, check candidates one by one, larger iteration budget). Accuracy rules apply at every level.outputDir (string, optional): Directory on the machine running the MCP server where files produced by the agent are written (created if missing; same-named files are overwritten). Default: a fresh per-call directory runbook-ai-mcp/task-<timestamp>-<id> under $RUNBOOK_AI_FILES_DIR if set, else the OS temp dir.Files: Anything the agent saves during the run — data it writes to a file (e.g. a scraped list or an API payload it captured with saveToFile), downloads, extracted datasets, screenshots — is written to disk and listed at the end of the result text as absolute paths with MIME type and size. File content is never inlined into the result, so bulk data stays out of your context; read the files with your own tools. Image files (≤ 4 MB) are additionally returned as inline MCP image content so screenshots are visible directly.
To get bulk data as a file, say so in the prompt, e.g. "... collect all orders from the account page and save them to orders.json".
Example:
{
"name": "browser-agent",
"arguments": {
"prompt": "Go to google.com and search for 'MCP protocol'"
}
}
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
# Run tests
npm test
When a tool is invoked:
outputDir) and their paths appended to the resultContributions are welcome! Feel free to send out a PR.