Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MITHWIRE_NO_EXIT_GUARDNoSet to 1 to disable the lightweight watchdog process that terminates launched browsers and removes their temporary profiles if the server is killed outright (SIGKILL, OOM, a crash).

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
session_startA

Launch a new, isolated browser. By default it is ephemeral (no saved state) and headful. Pass profile= to launch a persistent managed profile whose cookies/storage survive across runs. Optional: headless, proxy, proxy_ref, start_url, cookie_file (one-shot cookie injection). engine selects the browser engine: 'cdp' (default) uses the system Chrome with Mithwire CDP/JS patches; 'stealth' uses a CloakBrowser binary with C++ source-level fingerprint patches for zero-lie stealth (requires pip install mithwire-mcp[stealth]). On unsupported platforms, 'stealth' falls back to 'cdp' with a warning. proxy accepts 'http://host:port', 'http://user:pass@host:port', the provider 'scheme:host:port:user:pass' form, or socks5://host:port (authenticated SOCKS not wired yet; use the HTTP endpoint). It can ALSO be a dict {server, username?, password?, rotation_url?} where rotation_url is an optional provider endpoint that rotates the upstream exit IP when hit. proxy_ref is the alternate form: a name pointing at an entry in the proxy registry (see session_proxy_set). The two are mutually exclusive per session — a literal proxy spec wins over a registry reference. When a proxy is set, the session is REFUSED if the proxy fails a pre-launch reachability + credentials probe (no half-launched browser, no fallback to the host's direct connection). On success, the browser identity defaults to the proxy egress (timezone, locale/languages, Accept-Language, geolocation) so the two never disagree; any field set in fingerprint={...} or in the profile's launch_options wins over the proxy default. Pass fingerprint={...} to override any identity field explicitly (timezone_id, languages, latitude/longitude, user_agent, platform, hardware_concurrency, device_memory, screen, webgl_vendor/webgl_renderer); see session_set_fingerprint. webrtc_leak_protection controls the WebRTC IP-leak guard: 'auto' (default; filters public ICE candidates when proxied so the real IP can't leak via STUN), 'filter' (always filter), 'disable' (remove RTCPeerConnection), or 'off'. skip_probe (default false): skip the pre-launch proxy health check entirely. Useful when the proxy has already been verified externally or when the proxy does not support the HTTPS CONNECT tunnel used by the default probe. Identity defaults (timezone, locale) will be derived via an in-browser lookup after launch. probe_timeout (seconds): override the default 8-second proxy probe timeout. Raise for slow residential/mobile proxies; the probe includes an automatic plain-HTTP fallback for proxies that fail the primary HTTPS/CONNECT path.

session_set_fingerprintA

Apply identity/anti-detect overrides to a live session via engine-level CDP where possible (propagates to workers and HTTP headers). Accepts any of: timezone_id, locale, languages (list or comma string), accept_language, latitude/longitude/geo_accuracy, user_agent, platform, hardware_concurrency, device_memory (GB), screen {width,height,device_scale_factor,mobile,max_touch_points}, webgl_vendor, webgl_renderer. Note: navigator.languages is best pinned at launch (--lang) since workers can't be rewritten at runtime; reload the page after this call so new-document JS overrides (deviceMemory, WebGL) take effect everywhere.

session_rotate_proxyA

Rotate the upstream exit IP for a session whose proxy was launched with a rotation_url. Hits the provider's rotation endpoint, waits a short settle window for the new IP to take over, re-probes through the proxy to confirm the new egress, and (by default) re-aligns the browser identity — timezone, locale, languages, geolocation — to the new egress. Caller-pinned fingerprint fields from session_start or session_set_fingerprint continue to win over the proxy-derived defaults, just like at launch. Returns old + new egress summaries, the (redacted) rotation endpoint, the rotation response payload, and whether the exit IP actually changed. Fails if the session has no proxy or its proxy has no rotation_url.

session_listB

List active browser sessions.

session_getC

Get one session summary.

session_state_pathsB

Get centralized directories used for profiles, proxies, and cookies.

session_profile_listB

List saved browser profiles.

session_profile_getB

Get one saved profile by name or account alias.

session_profile_setB

Create or update a saved profile. launch_options (optional) is a dict of per-profile launch settings keyed by the same fields session_start accepts (headless, start_url, browser_args, sandbox, fingerprint, proxy, proxy_ref, cookie_file, cookie_fallback_domain, webrtc_leak_protection, browser_executable_path, user_data_dir, engine). fingerprint (optional dict) is the profile's persisted browser identity — generated automatically on first launch if not set, but can be set/overridden here. It takes precedence over launch_options fingerprint fields in the merge chain. proxy_ref (optional string) binds a proxy registry entry to the profile as its default proxy. Overrides any proxy_ref in launch_options. warming_status (optional) is 'none', 'partial', or 'warm'.

session_profile_regenerate_fingerprintB

Regenerate and persist a new fingerprint for a profile using BrowserForge's Bayesian network. The new fingerprint replaces the profile's stored identity; subsequent launches will use it. Optional os ('windows', 'macos', 'linux') and browser (default 'chrome') control the generated identity's platform family.

session_profile_deleteC

Delete profile metadata or entire profile directory.

session_proxy_listB

List saved proxy registry entries.

session_proxy_getC

Get one proxy registry entry by name.

session_proxy_setA

Create or update a proxy registry entry. values accepts either discrete fields ({scheme, host, port, username, password, rotation_url, tags}) or a single server URL ({server: 'http://user:pw@host:port', rotation_url, tags}). The persisted form is always discrete fields; server is decomposed at write. Profiles and session_start reference the entry by name via the proxy_ref field.

session_proxy_deleteC

Delete a proxy registry entry by name.

session_set_policyC

Set runtime policy for one session.

session_get_policyC

Get runtime policy for one session.

session_set_download_dirC

Set default download directory for one session.

session_trace_startC

Start recording session action trace.

session_trace_stopC

Stop recording session action trace.

session_trace_getC

Read recorded session trace events.

session_trace_exportC

Export recorded trace to a JSON file.

session_trace_replayC

Replay a trace file against a session.

session_stopC

Stop one session by id.

session_stop_allB

Stop all active sessions.

browser_urlC

Get current URL and page title.

browser_navigateC

Navigate to a URL.

browser_backC

Navigate one step back in browser history.

browser_forwardC

Navigate one step forward in browser history.

browser_reloadC

Reload the current page.

browser_tab_listB

List open tabs and the active tab.

browser_tab_newC

Open a new tab and optionally switch to it.

browser_tab_switchC

Switch active tab by tab_id or index.

browser_tab_closeC

Close a tab by tab_id or index.

browser_tab_currentC

Get the active tab summary.

browser_snapshotC

Return a compact snapshot of interactive elements on the page.

browser_queryC

Query DOM elements by CSS selector.

browser_clickC

Click the first matching selector.

browser_mouse_clickA

Native CDP coordinate click at viewport pixel position (x, y). Unlike browser_click (which uses a CSS selector and JS el.click()), this dispatches Input.dispatchMouseEvent through the browser's input pipeline, producing isTrusted events. Use when you need to click by coordinates — e.g. inside iframes or at positions obtained from screenshots/evaluation.

browser_mouse_moveB

Move the mouse cursor to viewport pixel position (x, y) via intermediate mouseMoved CDP events. Useful for creating cursor movement trails before a click or for hover interactions.

browser_press_holdA

Sustained mouse press at viewport pixel (x, y) for a given duration. Dispatches mousePressed, emits tiny mouseMoved jitter while holding, then mouseReleased. Use for press-and-hold verification challenges or long-press interactions.

browser_typeC

Type text into an input selector.

browser_handle_dialogC

Set how the next JavaScript dialog should be handled.

browser_set_file_inputC

Attach local files to a file input selector.

browser_scrollC

Scroll page, to top, to bottom, or to selector.

browser_wait_for_selectorC

Wait until selector appears or timeout.

browser_wait_for_urlC

Wait for URL substring or regex match.

browser_wait_for_textC

Wait until text appears in a selector.

browser_wait_for_functionC

Wait for a JavaScript expression to become truthy.

browser_wait_for_network_idleC

Wait until in-page network activity is idle.

browser_waitC

Wait for a number of seconds.

browser_htmlC

Return current page HTML (optionally truncated).

browser_console_messagesC

Read captured in-page console messages.

browser_network_requestsC

Read captured fetch/xhr request metadata.

browser_network_capture_startC

Start CDP-level network capture.

browser_network_capture_getC

Read CDP-level network capture rows.

browser_network_capture_stopC

Stop CDP-level network capture.

browser_network_capture_statusC

Get CDP-level network capture status.

browser_downloadsC

Read captured download metadata.

browser_cookies_getC

Get all cookies visible to current browser context.

browser_cookies_setC

Set cookies into current browser context.

browser_cookies_saveC

Save current cookies to a JSON file.

browser_cookies_clearC

Clear cookies (all or by domain).

browser_storage_getC

Get local/session storage values.

browser_storage_setC

Set local/session storage key/value entries.

browser_storage_clearC

Clear local/session storage.

browser_solve_cloudflareB

Detect and solve a Cloudflare Turnstile challenge by clicking the verification checkbox.

browser_take_screenshotC

Capture a screenshot to disk.

session_warmupA

Warm a browser session by visiting sites to accumulate realistic browsing state (cookies, localStorage, history). A fresh profile with no history is a strong bot signal; this tool builds a natural footprint. Uses a curated site list by default; pass sites= to override. geo_region filters the built-in list to a country code (e.g. "US", "GB", "DE") plus global sites.

browser_evaluateC

Evaluate JavaScript in current page.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 70 tools

Disambiguation4/5

Most tools have clearly distinct purposes, and descriptions explicitly differentiate potentially overlapping pairs. Some ambiguity exists among the many browser_wait_for_* variants and between browser_network_requests and the browser_network_capture_* group, but the boundaries are generally recoverable from the descriptions.

Naming Consistency4/5

The set follows a consistent snake_case prefix+action convention (browser_, session_, session_trace_, browser_network_capture_, etc.). Minor deviations are noun-only names like browser_url, browser_html, and browser_snapshot, but overall the pattern is predictable.

Tool Count1/5

With 70 tools, the server far exceeds the typical 3-15 scoped range and lands in the rubric's 50+ extreme-mismatch category. Many fine-grained operations could be consolidated, making the surface unnecessarily heavy for an agent to select from reliably.

Completeness4/5

The surface covers the full lifecycle for sessions, profiles, proxies, traces, cookies, storage, network capture, and core browser interactions. Only minor gaps exist, such as dedicated select/dropdown or drag-and-drop helpers, which can largely be worked around with existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues