
Wavexis McpBrowser Automation
Python MCP server offering 220 browser automation tools for Chrome, Edge, and Firefox via CDP and BiDi without Node.js or Chromium download.
Overview
This MCP server exposes the wavexis browser automation library to LLMs, providing 220 tools across 13 capability tiers for controlling Chrome, Edge, and Firefox browsers. It uses your existing browser installations, avoiding the need for Node.js or separate Chromium downloads. Features include stealth mode, structured errors with LLM-actionable suggestions, multi-action YAML batching, and raw CDP/BiDi access. Use it to automate complex browser interactions, audits, and niche features like WebAuthn and Bluetooth from any MCP-compatible LLM client.
Use cases
Key features
Quick Install
Automated & IDE SetupCopy the AI prompt to automatically install this server into your coding agent (Claude Code, Cursor, etc.), or use 1-click editor setup below.
Manual Client & Custom JSON ConfigExpand JSON โพ
Install Config Generator
๐ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Capabilities & Tool Schemas
Inspect callable tools, capabilities, and parameters exposed to AI agents by Wavexis Mcp.
Documentation Overview
MCP server โ 220 browser automation tools for LLMs
Chrome + Firefox ยท CDP + BiDi ยท 100% Python ยท zero Node.js ยท zero Chromium download
MCP server that exposes the wavexis browser automation library to LLMs. 220 tools across 13 capability tiers. No Node.js, no Chromium download โ uses your existing Chrome/Edge. 100% Python.
Quick demo
30 seconds to your first screenshot. Add this to your MCP client config (Claude Desktop, Cursor, Windsurf, VS Code):
Then ask your LLM:
"Take a full-page screenshot of https://example.com"
The LLM calls wavexis_screenshot(url="https://example.com", full_page=true) and returns the screenshot. No Node.js, no Chromium download, no setup beyond the config above.
Why WaveXisMCP?
WaveXisMCP wraps the wavexis browser automation library and exposes it as an MCP server. You don't need Node.js, Playwright, or a separate Chromium download โ WaveXisMCP launches your existing Chrome or Edge installation directly.
Key features
- 220 tools โ 3x more than Playwright MCP (21), 2x more than zendriver-mcp (96)
- 13 capability tiers โ enable only what you need via
--caps. Start withcore(72 tools), add tiers as needed - Chrome + Firefox โ CDP for Chrome/Edge, BiDi for Firefox. Both auto-launch their drivers from PATH
- No Chromium download โ uses your existing browser. ~5MB install vs ~400MB for Playwright MCP
- Stealth mode โ
stealth=truehidesnavigator.webdriver, fakes plugins/languages/chrome runtime - Structured errors โ every error includes a
suggestionfield so the LLM self-corrects without human help - Multi-action YAML โ chain navigate โ click โ fill โ screenshot in a single tool call
- Raw CDP/BiDi access โ escape hatch for any browser feature not covered by a dedicated tool
- Lighthouse audits, WebAuthn, Bluetooth, Cast โ niche features no other MCP server covers
- SSRF protection, path sandboxing, rate limiting โ security built in from day one
- 593 tests, 90% coverage enforced, E2E with real Chrome โ production-ready
How it works
The LLM never sees the browser directly. It only sees tool definitions (name, description, parameters) and JSON responses. This means any MCP-compatible LLM client works out of the box โ no custom integrations needed.
Core concepts
- Tool โ A single browser operation (screenshot, eval, click, etc.) exposed as an MCP tool that any LLM client can call.
- Session โ A persistent browser instance. Open a session, chain multiple tool calls, close when done. Avoids the overhead of launching a browser per action.
- Stateless mode โ Call any tool with a
urlparameter. The browser launches, executes, and closes automatically. - Capability tiers โ 13 tiers from
core(72 tools) toall(220 tools). Enable only what you need via--caps. - Dual backend โ CDP (Chromium-native, via cdpwave) and BiDi (W3C cross-browser, via bidiwave) with per-session selection.
- Structured errors โ Every error includes a
suggestionfield that tells the LLM what to do next, enabling self-correction without human intervention.
Install
With CDP backend (Chromium):
Or run without installing (recommended):
Requirements
- Python: 3.11, 3.12, or 3.13
- Browser: Google Chrome, Microsoft Edge, or any Chromium/Chrome-based browser
- BiDi backend (optional): ChromeDriver/EdgeDriver for Chrome, or geckodriver for Firefox
Quick start
Add to your MCP client config (Claude Desktop, Cursor, Windsurf, VS Code):
Or with pip:
Stateless mode (one-shot)
Call any tool with a url parameter โ the browser launches, executes, and closes automatically:
Session mode (multi-step)
Open a session, chain multiple actions, close when done:
Natural language interaction (M1)
Use wavexis_act to interact with pages using natural language:
The wavexis_act tool takes an a11y snapshot, matches the instruction to an element using keyword scoring, and executes the detected action (click, type, fill, hover). No external LLM calls โ pure heuristic matching.
Capability tiers
| Tier | Flag | Tools | Key features |
|---|---|---|---|
| Core | always on | 72 | Session, navigation, screenshot, PDF, scrape, eval, DOM, input, cookies, tabs, NL interaction, iframe, shadow DOM, events |
| Network | --caps=network | 20 | Headers, UA, block, throttle, cache, HAR, intercept, mock, modify req/resp, request body, replay HAR, request list |
| Storage | --caps=storage | 18 | localStorage, sessionStorage, cache storage, IndexedDB, state save/restore |
| Emulation | --caps=emulation | 9 | Device, viewport, geolocation, timezone, dark mode, locale, CPU, touch, sensors |
| A11y | --caps=a11y | 4 | Accessibility tree snapshot, node traversal, axe-core audit |
| Interactions | --caps=interactions | 5 | Dialogs, downloads, permissions |
| DevTools | --caps=devtools | 31 | Performance, CSS, debugging, overlay, console, security, window mgmt, combined trace, annotated screenshot |
| Vision | --caps=vision | 7 | Coordinate-based mouse (pixel-precise) |
| Video | --caps=video | 4 | Video recording, chapters, action overlay |
| Testing | --caps=testing | 6 | Assertions, locator generation |
| Workflows | --caps=workflows | 6 | Multi-action YAML, raw CDP/BiDi, browser context CRUD |
| Data | --caps=data | 7 | Codegen, Lighthouse audit, extract, websocket intercept, crawl, visual diff, core web vitals |
| Experimental | --caps=experimental | 31 | Service workers, animations, WebAuthn, WebAudio, media, cast, bluetooth, extensions, prefs |
| Total | --caps=all | 220 |
Default: --caps=core (72 tools). Enable all: --caps=all. Enable specific: --caps=network,storage,emulation.
Tip: Start with
--caps coreand add tiers as needed. Each tier adds tool definitions to the LLM's context, which consumes tokens. For most tasks,core,network,storage(110 tools) is a good balance.
Backends
WaveXisMCP supports two backends with full feature parity:
- CDP (cdpwave) โ default, Chrome DevTools Protocol. Direct WebSocket to Chrome/Edge. No driver needed. 57 CDP domains.
pip install "wavexis-mcp[cdp]" - BiDi (bidiwave) โ WebDriver BiDi protocol, W3C cross-browser (Firefox, Chrome). Needs chromedriver (Chrome) or geckodriver (Firefox); both are auto-launched from PATH if not already running.
pip install "wavexis-mcp[bidi]"
Select per session:
Connect to existing Chrome
Use connect_existing=True to launch Chrome with --remote-debugging-port and connect to it. Useful for reusing a browser profile with logged-in sessions:
Chrome is launched headed (headless is ignored). The browser subprocess is terminated when the session is closed.
Multi-action YAML
Chain multiple actions in a single tool call by passing a YAML string:
Supported action types: navigate, screenshot, eval, click, type, fill. Set continue_on_error: true to keep executing on failures.
MCP resources & prompts (M3)
Resources (read-only browser state):
wavexis://session/{id}/urlโ current page URLwavexis://session/{id}/cookiesโ cookies as JSONwavexis://session/{id}/consoleโ console messageswavexis://session/{id}/tabsโ open tabs
Prompts (workflow templates):
scrape_page(url, selector)โ scrape and extract contentaudit_page(url)โ full a11y + performance auditfill_form(url, fields)โ fill a form on a pagedebug_page(url)โ debug console, network, performance
HTTP transport
Run WaveXisMCP as an HTTP server for CI/CD, shared instances, or Docker:
Binds to 127.0.0.1 by default. Use --allow-remote for 0.0.0.0.
Rate limiting (M4)
Per-session token bucket rate limiting:
When exceeded, returns {"error": "rate_limited", "retry_after_ms": N}.
Docker
See Docker docs for details.
Comparison
| Feature | Playwright MCP | WaveXisMCP |
|---|---|---|
| Language | TypeScript | Python |
| Node.js required | โ | โ (no Node.js) |
| Downloads Chromium (~200MB) | โ | โ (uses existing browser) |
| Install size | ~400MB | ~5MB |
| Cold start | 3.2s | 0.8s |
| Total tools | ~21 | 220 |
| Capability tiers (opt-in) | โ | โ (13 tiers) |
| Dual protocol (CDP + BiDi) | โ | โ |
| Firefox support | โ (basic) | โ (BiDi + geckodriver auto-launch) |
| Backend selection (per session) | โ | โ |
| Stealth / anti-bot mode | โ | โ |
| Raw CDP/BiDi access | โ | โ (escape hatch) |
| Multi-action YAML batching | โ | โ |
| Video recording | โ | โ |
| Lighthouse audit | โ | โ |
| WebAuthn / Bluetooth / Cast | โ | โ |
| Natural language interaction | โ | โ (wavexis_act) |
| MCP resources & prompts | โ | โ |
| Rate limiting | โ | โ |
| SSRF protection | โ | โ |
| Structured errors with suggestions | โ | โ |
Note: Playwright MCP supports WebKit (Safari) โ WaveXisMCP does not (yet). See the roadmap for planned features.
Documentation
Full documentation, API reference, and examples are hosted at mathiaspaulenko.github.io/wavexis-mcp.
Key sections:
Error handling
All tools return structured error JSON on failure. Every error includes a suggestion field that guides the LLM toward the next action:
This enables the LLM to self-correct without human intervention โ it reads the suggestion and calls the recommended tool.
Architecture
WaveXisMCP sits at the top of a three-layer ecosystem:
- cdpwave โ low-level async Python library for the Chrome DevTools Protocol. Direct WebSocket to Chrome/Edge. No driver binary needed.
- bidiwave โ low-level async Python library for the WebDriver BiDi protocol (W3C standard). Works with Firefox, Chrome, and Edge.
- wavexis โ high-level browser automation library that abstracts cdpwave and bidiwave behind a unified
AbstractBackendinterface. - WaveXisMCP โ MCP server wrapping wavexis. Exposes each backend method as an MCP tool with Pydantic v2 input validation, JSON responses, and capability tier filtering.
See Architecture docs for the full system design, data flow diagrams, and ADRs.
Development
Contributing
Contributions are welcome. Please see CONTRIBUTING.md for the development workflow, coding standards, and pull request process. For security issues, see SECURITY.md.
Acknowledgements
WaveXisMCP is built on the wavexis browser automation library and the Model Context Protocol. Thanks to the open-source Python and MCP communities for the tools and standards that make this project possible.
License
MIT
mcp-name: io.github.MathiasPaulenko/wavexis-mcp
Related MCP Servers
View all alternativesFrequently Asked Questions about Wavexis Mcp
What is the Wavexis Mcp MCP server used for?
MCP server exposing 220 browser automation tools across 13 capability tiers. Chrome + Firefox via CDP + BiDi. No Node.js, no Chromium download โ uses your existing browser. Stealth mode, Lighthouse audits, multi-action YAML batching, raw CDP/BiDi access, structured errors with LLM-actionable suggestions.
How do I install Wavexis Mcp in Claude Desktop or Cursor?
Copy the client configuration JSON snippet from the installation section above into your claude_desktop_config.json or .cursor/mcp.json file, then restart your AI application.
Is the Wavexis Mcp MCP server free and safe to use?
Yes, Wavexis Mcp is listed as a free Model Context Protocol server. Always review repository source code and permissions before granting local workspace access to AI agents.