Shade Browser Security MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEADED | No | Set to 1 to force a visible browser window regardless of DISPLAY/WAYLAND_DISPLAY. | |
| BW_SESSION | No | Bitwarden session token used when SHADE_INGEST_BW=1; passed only through the MCP/Brave launcher environment. | |
| SHADE_INGEST_BW | No | Set to 1 to run ~/bin/bw-ensure.sh when BW_SESSION is absent and pass the resulting BW_SESSION through to the browser launcher. | |
| SHADE_PROFILE_MODE | No | Set to 'persistent' to use persistent per-slot profiles that survive launches. | default |
| SHADE_BUILD_REVISION | No | Immutable build revision injected into the server for runtime identity checks via browser_runtime_status. | unknown |
| SHADE_DASHBOARD_TOKEN | No | Bearer token required to authenticate with the Shade Fleet Console (dashboard command). Read from this environment variable. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_os_input_clickC | Click via OS input on a private per-slot X display only. |
| browser_network_requestsA | Get recent network requests (useful for debugging API calls). |
| form_scanC | Scan the current page for fillable form fields and gate controls. |
| browser_leak_checkA | Check for IP, DNS, and WebRTC leaks. Run after every tunnel assignment. |
| browser_use_tunnelB | Launch a browser slot through a Shade VPN tunnel. |
| browser_use_residentialA | Launch a browser slot through a residential proxy in a chosen region (premium). |
| browser_solve_challengeA | Solve a detected Cloudflare Turnstile challenge via an external solver (premium). |
| browser_use_torA | Launch a browser slot through Tor for .onion browsing. |
| browser_rotate_ipB | Rotate to a new tunnel exit IP. Optionally preserves session state. |
| browser_apply_personalityB | Apply or regenerate a stealth personality profile for a browser slot. |
| browser_cdp_commandC | Execute a raw CDP command. |
| browser_network_interceptA | Capture network requests with full request/response bodies. |
| browser_ws_monitorB | Install WebSocket monitoring. Logs all WS frames via prototype patching. |
| browser_web3_monitorA | Install window.ethereum monitoring. Logs all wallet RPC calls. |
| browser_inject_signerB | Inject a minimal EIP-1193 wallet provider. No MetaMask needed. |
| browser_webauthn_bypassA | Create a virtual WebAuthn authenticator via CDP. Bypasses most WebAuthn. |
| browser_passive_reconC | Run passive reconnaissance against a domain. |
| browser_inject_passkeyC | Inject a Bitwarden passkey into an isolated slot and keep it alive. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Most tools have clear distinct purposes, but there is overlap among the network monitoring tools (browser_network_requests vs browser_network_intercept vs browser_ws_monitor) and the three browser_use_* variants (tor, tunnel, residential) are similar except for the network path. Descriptions help but an agent may struggle to pick the exact right tool in ambiguous situations.
All tools are snake_case and most start with 'browser_', but the pattern after the prefix is inconsistent: some use verb_noun (use_tor, solve_challenge), some are noun phrases (network_requests, passive_recon), and one (form_scan) lacks the browser_ prefix. This mixed convention is still readable but not uniform.
18 tools is slightly above the ideal 3-15 range but still manageable for a comprehensive security toolset. Each tool addresses a distinct aspect of browser security and anti-detection, so the count feels justified rather than bloated.
The toolset focuses heavily on network routing, monitoring, and stealth features, but omits basic browser lifecycle operations like navigate, screenshot, or close slot. Without a direct way to navigate to a URL (except via raw CDP), the surface is incomplete for practical security testing workflows.