Control your real browser with AI through the Model Context Protocol
An MCP (Model Context Protocol) server that lets AI assistants control your actual browser (Chrome, Firefox, or Opera) 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 | 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, Firefox, Edge, Opera support | ✅ Chrome, Firefox, Safari support |
npm install -g @railsblueprint/blueprint-mcpChoose your browser:
Chrome / Edge / Opera
- Chrome Web Store (works for all Chromium browsers)
- Manual: Download from Releases, then load unpacked at
chrome://extensions/(Chrome),edge://extensions/(Edge), oropera://extensions/(Opera)
Firefox
- Firefox Add-ons
- Manual: Download from Releases, then load at
about:debugging#/runtime/this-firefox
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 your browser
- 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)
↓
┌─────────────────────────┐
│ Browser Extension │
└───────────┬─────────────┘
│
│ Browser Extension APIs
↓
┌─────────────────────────┐
│ Your 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 browser 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 browser extensionsbrowser_reload_extensions- Reload unpacked extensions (useful during development)
- Node.js 18+
- A supported browser (Chrome, Firefox, Edge, or Opera)
- npm or yarn
# Clone the repository
git clone https://github.com/railsblueprint/blueprint-mcp.git
cd blueprint-mcp
# Install server dependencies
cd server
npm install
cd ..
# Install Chrome extension dependencies
cd extensions/chrome
npm install
cd ../..Terminal 1: Start MCP server in debug mode
cd server
node cli.js --debugTerminal 2: Build Chrome extension
cd extensions/chrome
npm run build
# or for watch mode:
npm run devNote: Firefox extension doesn't require a build step - it uses vanilla JavaScript and can be loaded directly from extensions/firefox/
Load extension in your browser:
For Chromium browsers (Chrome, Edge, Opera):
- Open
chrome://extensions/(Chrome),edge://extensions/(Edge), oropera://extensions/(Opera) - Enable "Developer mode"
- Click "Load unpacked"
- Select the
extensions/chrome/distfolder
For Firefox:
- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select any file from the
extensions/firefoxfolder
blueprint-mcp/
├── server/ # MCP Server
│ ├── cli.js # 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
│ │ └── fileLogger.js # Debug logging
│ └── tests/ # Server test suites
├── extensions/ # Browser Extensions
│ ├── chrome/ # Chrome extension (TypeScript + Vite)
│ │ └── src/
│ │ ├── background.ts # Extension service worker
│ │ ├── content-script.ts # Page content injection
│ │ └── utils/ # Utility functions
│ ├── firefox/ # Firefox extension (Vanilla JS)
│ │ └── src/
│ │ ├── background.js # Service worker
│ │ └── content-script.js # Page injection
│ ├── shared/ # Shared code between extensions
│ └── build-*.js # Build scripts for each browser
├── docs/ # Documentation
│ ├── testing/ # Test documentation
│ ├── architecture/ # Architecture docs
│ └── stores/ # Browser store assets
└── releases/ # Built extensions for distribution
├── chrome/
├── firefox/
├── edge/
└── opera/
# Run tests
npm test
# Run with coverage
npm run test:coverageDocumentation:
- Manual Test Procedures - Comprehensive manual testing guide
- Feature Specification - Complete feature documentation
- Test Progress - Current test coverage status
The 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
blueprint-mcp --port 8080 # Use custom WebSocket port (default: 5555)
blueprint-mcp --debug --port 8080 # Combine optionsNote: If you change the port, you'll need to update your browser extension settings to match.
- 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. You can either:
- Kill the existing process:
lsof -ti:5555 | xargs kill -9- Use a different port:
blueprint-mcp --port 8080- 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 the browser'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 browser extension-based automation instead of Playwright. The architecture, implementation, and approach are fundamentally different.
Key differences:
- Uses browser extensions with DevTools Protocol (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
- Multi-browser support (Chrome, Firefox, Edge, Opera)
We're grateful to the Playwright team for pioneering browser automation via MCP.
Apache License 2.0 - see LICENSE
Copyright (c) 2025 Rails Blueprint
Built with ❤️ by Rails Blueprint