AI-native stealth browser MCP server — Browser Use + Patchright
Project description
wraith-mcp
AI-native stealth browser MCP server. Tell it what to do — it figures out how.
Browser Use (AI vision navigation) + Patchright (bot detection bypass).
Why This One?
| wraith-mcp | playwright-mcp | stealth-browser-mcp | browser-use-mcp-server | |
|---|---|---|---|---|
| Navigation | AI vision (self-healing) | CSS selectors | CSS selectors | AI vision |
| Bot detection bypass | Patchright (binary-level) | None | nodriver | None |
| Tools | 2 (browse, extract) |
20+ | 90+ | via Agent |
| Site layout changes | Adapts automatically | Breaks | Breaks | Adapts |
| LLM providers | 6 (Anthropic, OpenAI, OpenRouter, Google, Ollama, +compatible) | N/A | 1 | 1 |
One command does it all — no selectors, no step-by-step scripting:
"Log into my dashboard and download the monthly report"
Quick Start
Add wraith-mcp as MCP server
Install
pip install wraith-mcp
Setup
Add to your MCP config (.mcp.json, .cursor/mcp.json, .windsurf/mcp.json, etc.):
{
"mcpServers": {
"wraith": {
"command": "wraith-mcp",
"env": {
"ANTHROPIC_API_KEY": "your-key",
"HEADLESS": "true"
}
}
}
}
Works with any MCP client: Cursor, Windsurf, VS Code, Cline, Roo Code, OpenCode, Codex, and more.
Tools
| Tool | Description |
|---|---|
browse |
Execute any browser task in natural language |
extract |
Pull structured data from a page |
screenshot |
Capture a page as base64 PNG |
close_session |
Close a persistent browser session |
All tools support session_id for persistent sessions across multiple calls.
LLM Providers
| Provider | Key |
|---|---|
| Anthropic (default) | ANTHROPIC_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| OpenAI | OPENAI_API_KEY |
| DeepSeek / Groq / Together | OPENAI_API_KEY + OPENAI_BASE_URL |
| Google Gemini | GOOGLE_API_KEY |
| Ollama (local) | OLLAMA_MODEL |
All providers included. Set BROWSER_USE_MODEL to override the default model.
Docker
docker build -t wraith-mcp .
docker run -i --rm -e ANTHROPIC_API_KEY=your-key wraith-mcp
SSE mode (remote/cloud):
docker run -p 8808:8808 -e ANTHROPIC_API_KEY=your-key wraith-mcp
SSE Transport
wraith-mcp --transport sse --port 8808
How It Works
AI Agent -> MCP Server -> Browser Use Agent -> Patchright Chromium
- Describe a task in natural language
- Browser Use sees the page (screenshot + DOM) and decides actions
- Patchright executes without triggering bot detection
Security
- URL scheme validation (http/https only)
max_stepscapped at 50 server-side- Input length capped at 4000 chars
- Task timeout (default 120s, configurable via
BROWSER_TASK_TIMEOUT) - Proxy support via
PROXY_SERVER
Limitations
- Binary-level stealth only (no
Runtime.enableCDP fix) - Enterprise WAFs may still block without residential proxies
- Fresh browser per call (~3s startup)
- Requires an LLM API key
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wraith_mcp-0.2.0.tar.gz.
File metadata
- Download URL: wraith_mcp-0.2.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfab8e3bfa412f86730d8da81c4729f749e367ee78de896f4d84cf5092e967f7
|
|
| MD5 |
bf711913e668a7db1b73199f7ffb572c
|
|
| BLAKE2b-256 |
d050f8152ae0f13ba1276db2db2b0114e65f69f1d8d079e8ec387254919df643
|
Provenance
The following attestation bundles were made for wraith_mcp-0.2.0.tar.gz:
Publisher:
publish.yml on Koreahwan/wraith-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wraith_mcp-0.2.0.tar.gz -
Subject digest:
bfab8e3bfa412f86730d8da81c4729f749e367ee78de896f4d84cf5092e967f7 - Sigstore transparency entry: 1394131086
- Sigstore integration time:
-
Permalink:
Koreahwan/wraith-mcp@af35c2a48a648ff14e3bf1046701f3d02856bac0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Koreahwan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af35c2a48a648ff14e3bf1046701f3d02856bac0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file wraith_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: wraith_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4274d6500e68cc7d13fbb0537b31d35db46bbb0dd0faac0e8c7b044f91ff6677
|
|
| MD5 |
3d0b481cdc58a4daf746197b8f65b026
|
|
| BLAKE2b-256 |
c3b72c9f8bbbd1da8dc1b2b6710e7cf4f8f2c8ad85be131378d3ade02301d603
|
Provenance
The following attestation bundles were made for wraith_mcp-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on Koreahwan/wraith-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wraith_mcp-0.2.0-py3-none-any.whl -
Subject digest:
4274d6500e68cc7d13fbb0537b31d35db46bbb0dd0faac0e8c7b044f91ff6677 - Sigstore transparency entry: 1394131204
- Sigstore integration time:
-
Permalink:
Koreahwan/wraith-mcp@af35c2a48a648ff14e3bf1046701f3d02856bac0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Koreahwan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af35c2a48a648ff14e3bf1046701f3d02856bac0 -
Trigger Event:
release
-
Statement type: