Control your real Chrome browser with AI through the Model Context Protocol
An MCP (Model Context Protocol) server that lets AI assistants control your actual Chrome browser through a browser extension. Unlike headless automation tools, this uses your real browser profile with all your logged-in sessions, cookies, and extensions intact.
Perfect for: AI agents that need to interact with sites where you're already logged in, or that need to avoid bot detection.
| Blueprint MCP for Chrome | Playwright/Puppeteer |
|---|---|
| ✅ Real browser (not headless) | ❌ Headless or new browser instance |
| ✅ Stays logged in to all your sites | ❌ Must re-authenticate each session |
| ✅ Avoids bot detection (uses real fingerprint) | |
| ✅ Works with your existing browser extensions | ❌ No extension support |
| ✅ Zero setup - works out of the box | |
| ❌ Chrome/Edge only | ✅ Chrome, Firefox, Safari support |
npm install -g @railsblueprint/blueprint-mcpOption A: Chrome Web Store (Recommended)
- Visit: [Chrome Web Store link - Coming Soon]
Option B: Manual Installation (Development)
- Download the latest release from Releases
- Unzip the extension
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
extensionfolder
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}Claude Code (AI-powered CLI):
claude mcp add browser npx @railsblueprint/blueprint-mcp@latestVS Code / Cursor (.vscode/settings.json):
{
"mcp.servers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}- Start your MCP client (Claude Desktop, Cursor, etc.)
- Click the Blueprint MCP extension icon in Chrome
- The extension auto-connects to the MCP server
- Ask your AI assistant to browse!
Example conversations:
You: "Go to GitHub and check my notifications"
AI: *navigates to github.com, clicks notifications, reads content*
You: "Fill out this form with my info"
AI: *reads form fields, fills them in, submits*
You: "Take a screenshot of this page"
AI: *captures screenshot and shows you*
┌─────────────────────────┐
│ AI Assistant │
│ (Claude, GPT, etc) │
└───────────┬─────────────┘
│
│ MCP Protocol
↓
┌─────────────────────────┐
│ MCP Client │
│ (Claude Desktop, etc) │
└───────────┬─────────────┘
│
│ stdio/JSON-RPC
↓
┌─────────────────────────┐
│ blueprint-mcp │
│ (this package) │
└───────────┬─────────────┘
│
│ WebSocket (localhost:5555 or cloud relay)
↓
┌─────────────────────────┐
│ Chrome Extension │
└───────────┬─────────────┘
│
│ Chrome Extension APIs
↓
┌─────────────────────────┐
│ Your Chrome Browser │
│ (real profile) │
└─────────────────────────┘
- ✅ Local WebSocket connection (port 5555)
- ✅ Single browser instance
- ✅ All browser automation features
- ✅ No account required
- ❌ Limited to same machine
- ✅ Cloud relay - connect from anywhere
- ✅ Multiple browsers - control multiple Chrome instances
- ✅ Shared access - multiple AI clients can use same browser
- ✅ Auto-reconnect - maintains connection through network changes
- ✅ Priority support
The MCP server provides these tools to AI assistants:
enable- Activate browser automation (required first step)disable- Deactivate browser automationstatus- Check connection statusauth- Login to PRO account (for cloud relay features)
browser_tabs- List, create, attach to, or close browser tabs
browser_navigate- Navigate to a URLbrowser_navigate_back- Go back in history
browser_snapshot- Get accessible page content (recommended for reading pages)browser_take_screenshot- Capture visual screenshotbrowser_console_messages- Get browser console logsbrowser_network_requests- Powerful network monitoring and replay tool with multiple actions:- List mode (default): Lightweight overview with filtering and pagination (default: 20 requests)
- Filters:
urlPattern(substring),method(GET/POST),status(200/404),resourceType(xhr/fetch/script) - Pagination:
limit(default: 20),offset(default: 0) - Example:
action='list', urlPattern='api/users', method='GET', limit=10
- Filters:
- Details mode: Full request/response data for specific request including headers and bodies
- JSONPath filtering: Query large JSON responses using JSONPath syntax (e.g.,
$.data.items[0]) - Replay mode: Re-execute captured requests with original headers and authentication
- Clear mode: Clear captured history to free memory
- Example:
action='details', requestId='12345.67', jsonPath='$.data.users[0]'
- List mode (default): Lightweight overview with filtering and pagination (default: 20 requests)
browser_extract_content- Extract page content as markdown
browser_interact- Perform multiple actions in sequence (click, type, hover, wait, etc.)browser_click- Click on elementsbrowser_type- Type text into inputsbrowser_hover- Hover over elementsbrowser_select_option- Select dropdown optionsbrowser_fill_form- Fill multiple form fields at oncebrowser_press_key- Press keyboard keysbrowser_drag- Drag and drop elements
browser_evaluate- Execute JavaScript in page contextbrowser_handle_dialog- Handle alert/confirm/prompt dialogsbrowser_file_upload- Upload files through file inputsbrowser_window- Resize, minimize, maximize browser windowbrowser_pdf_save- Save current page as PDFbrowser_performance_metrics- Get performance metricsbrowser_verify_text_visible- Verify text is present (for testing)browser_verify_element_visible- Verify element exists (for testing)
browser_list_extensions- List installed Chrome extensionsbrowser_reload_extensions- Reload extension (useful during development)
- Node.js 18+
- Chrome or Edge browser
- npm or yarn
# Clone the repository
git clone https://github.com/railsblueprint/blueprint-mcp.git
cd blueprint-mcp
# Install server dependencies
npm install
# Install extension dependencies
cd extension
npm install
cd ..Terminal 1: Start MCP server in debug mode
node cli.js --debugTerminal 2: Build extension
cd extension
npm run build
# or for watch mode:
npm run devChrome: Load unpacked extension
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
extension/distfolder
blueprint-mcp/
├── cli.js # MCP server entry point
├── src/
│ ├── statefulBackend.js # Connection state management
│ ├── unifiedBackend.js # MCP tool implementations
│ ├── extensionServer.js # WebSocket server for extension
│ ├── mcpConnection.js # Proxy/relay connection handling
│ ├── transport.js # Transport abstraction layer
│ └── oauth.js # OAuth2 client for PRO features
├── extension/
│ └── src/
│ ├── background.ts # Extension service worker
│ ├── relayConnection.ts # WebSocket client
│ └── utils/ # Utility functions
└── tests/ # Test suites
# Run tests
npm test
# Run with coverage
npm run test:coverageThe server works out-of-the-box with sensible defaults. For advanced configuration:
Create a .env file in the project root:
# Authentication server (PRO features)
AUTH_BASE_URL=https://blueprint-mcp.railsblueprint.com
# Local WebSocket port (Free tier)
MCP_PORT=5555
# Debug mode
DEBUG=falseblueprint-mcp --debug # Enable verbose logging- Check the extension is installed and enabled
- Click the extension icon - it should show "Connected"
- Check the MCP server is running (look for process on port 5555)
- Try reloading the extension
Another instance is running. Find and kill it:
lsof -ti:5555 | xargs kill -9- Make sure you've called
enablefirst - Check you've attached to a tab with
browser_tabs - Verify the tab still exists (wasn't closed)
We welcome contributions! See CONTRIBUTING.md for guidelines.
This tool gives AI assistants control over your browser. Please review:
- The MCP server only accepts local connections by default (localhost:5555)
- PRO relay connections are authenticated via OAuth
- The extension requires explicit user action to connect
- All browser actions go through Chrome's permission system
Found a security issue? Please email security@railsblueprint.com instead of filing a public issue.
This project was originally inspired by Microsoft's Playwright MCP implementation but has been completely rewritten to use Chrome extension-based automation instead of Playwright. The architecture, implementation, and approach are fundamentally different.
Key differences:
- Uses Chrome DevTools Protocol via extension (not Playwright)
- Works with real browser profiles (not isolated contexts)
- WebSocket-based communication (not CDP relay)
- Cloud relay option for remote access
- Free and PRO tier model
We're grateful to the Playwright team for pioneering browser automation via MCP.
Apache License 2.0 - see LICENSE
Copyright (c) 2024 Rails Blueprint
Built with ❤️ by Rails Blueprint