real-browser-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEADLESS | No | Run browser headless (no visible window). Values: true/false/1/0/yes/no. | auto (CI + no-display detection) |
| TURNSTILE | No | Assist with Cloudflare Turnstile challenges. Values: true/false/1/0/yes/no/on/off. | false |
| AI_HEALING | No | Auto-repair broken CSS selectors in click/type. Values: true/false/1/0/yes/no/on/off. | true |
| ENABLE_BLOCKER | No | Block ads and trackers. Values: true/false/1/0/yes/no/on/off. | true |
| CHROME_NO_SANDBOX | No | Force-disable or force-enable the Chromium OS sandbox. Values: true/1/yes/false/0. | auto (CI/root detection) |
| REAL_BROWSER_LOG_LEVEL | No | Structured JSON log verbosity. Values: debug/info/warn/error. | info |
| REAL_BROWSER_VIDEO_DIR | No | Where recordVideo writes .webm recordings. | $TMPDIR/real-browser-mcp/videos |
| REAL_BROWSER_USER_AGENT | No | Override/rotate the browser User-Agent. A comma-separated list rotates one entry per browser_init call. | auto (built from Chromium version) |
| REAL_BROWSER_ALLOW_DECRYPT | No | Opt-in for extract_data's auto key-discovery AES conversion. Values: true/1/yes. | off |
| REAL_BROWSER_SEND_PROGRESS | No | Emit notifications/progress JSON-RPC messages to the MCP client. Values: true/1. | off |
| REAL_BROWSER_TOOL_TIMEOUT_MS | No | Hard watchdog budget per tool call in milliseconds (integer). | 120000 |
| REAL_BROWSER_ALLOW_PRIVATE_NETWORK | No | Allow navigate/replay_request/redirect_tracer to target localhost/private IPs (off by default — SSRF guard). Values: true/1/yes. | off |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_initA | Initialize a browser session with configurable options: headless mode, proxy, viewport, video recording, resource filtering, biometric anti-detection hardware spoofing (WebGL, Canvas, AudioContext), and WebRTC leak protection. Automatically recovers stale sessions. |
| navigateA | Navigate to a URL or manage browser tabs (list, switch, new tab, close tab). Supports configurable wait conditions, timeout, and automatic retry on failure. |
| get_contentB | Get page content in multiple formats: html, text, markdown, rawHttp, or elements. Extracts text, attributes, or bounding box coordinates. Can save directly to a file. |
| waitA | Wait for a selector, navigation event, networkidle state, or a fixed timeout before continuing. |
| clickB | Click or drag a page element by CSS selector or annotation ID. Supports drag-and-drop / slider manipulation via dragTo, iframe context, hover before click, video player API, and automatic retry with fallback selectors. |
| typeB | Type text into an input field with configurable keystroke delay, field clearing, and iframe support. |
| browser_closeA | Close the browser session and release all browser resources. |
| solve_captchaC | Automate form completion and interactive widget verification on web pages. Supports JavaScript-based challenge widgets, image text transcription, and intelligent form field mapping for QA and automated browsing workflows. |
| random_scrollB | Scroll the page with configurable direction, amount, and automatic lazy-load triggering. |
| redirect_tracerA | Trace the complete redirect chain of a URL. Tracks HTTP 301/302, JavaScript navigation (window.location, setTimeout), and meta refresh tags. Returns the full path with status codes and headers. |
| extract_dataB | Extract structured data from the current page in multiple modes: regex, json, meta, structured, auto, apiDiscovery, parse (string conversion), transform (data format conversion), or links (all links including nested iframes). |
| press_keyB | Press keyboard keys with configurable modifier keys, repeat count, and keystroke delay. |
| progress_trackerC | Track multi-step task progress with estimated time remaining. |
| deep_analysisA | Inspect the current page in depth: DOM structure, scripts, stylesheets, accessibility, performance metrics, SEO tags, response headers, loaded technologies, and content-loading strategy recommendations. |
| network_recorderC | Record, inspect, and control network activity. Supports 14 actions: start, stop, get, clear, get_media, get_navigations, get_api_calls, get_intercepted_apis, get_websockets, get_graphql, export_har, block_urls (block images/trackers to boost speed 3x-5x), mock_route (intercept & mock API responses), clear_routes. |
| media_extractorB | Extract and control media from the current page. Supports 6 actions: extract (find video/audio/HLS/DASH/download URLs including nested iframes), list_iframes, switch_iframe, player_control (play/pause/seek/sources via player API), decode_url (inspect converted string and token formats), batch_extract. |
| execute_jsB | Execute custom JavaScript in the page context with async support, return value capture, and iframe targeting. |
| storage_inspectorC | Inspect and manage client-side storage & sessions. Supports 6 actions: cookies (get all current cookies), save_session (persist cookies & storage state to file), load_session (restore state from file without re-logging), clear_cookies, indexeddb, service_workers. |
| replay_requestB | Re-send a network request inside the page context, reusing the current session headers. |
| api_analyzerB | Generate JSON schemas from API responses, diff two JSON objects, or create SDK boilerplate code in Python or TypeScript. |
| see_pageA | Capture a snapshot of the current page. Returns a screenshot image together with optional full-page text, an interactive element map (buttons, links, inputs with position and selector), and an iframe inventory — all in a single call. Workflow: Call once with fullPage:true and annotate:true. From that snapshot, run all planned actions (click, type, scroll, wait, extract) as a steps array without re-capturing the page. Call see_page again only when the page genuinely changes (new navigation, modal, or dynamic content load). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/codeiva11/Real-Browser-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server