Skip to main content

Module mcp

Module mcp 

Source
Expand description

MCP (Model Context Protocol) server for browser automation.

Exposes stygian-browser capabilities as an MCP server over stdin/stdout using the JSON-RPC 2.0 protocol. External tools (LLM agents, IDE plugins) can acquire browsers, navigate pages, evaluate JavaScript, and capture screenshots via the standardised MCP interface.

§Enabling

[dependencies]
stygian-browser = { version = "*", features = ["mcp"] }

To use browser_attach (cdp_ws mode), also enable mcp-attach:

[dependencies]
stygian-browser = { version = "*", features = ["mcp", "mcp-attach"] }

§Running the server

STYGIAN_MCP_ENABLED=true cargo run --example mcp_server -p stygian-browser

§Protocol

The server implements MCP 2025-11-25 over JSON-RPC 2.0 on stdin/stdout. Supported methods:

MCP MethodDescription
initializeHandshake, return server capabilities
tools/listList available browser tools
tools/callExecute a browser tool
resources/listList active browser sessions as MCP resources
resources/readRead session state

§Tools

ToolParametersReturns
browser_acquirestealth_level?, tls_profile?, webrtc_policy?, cdp_fix_mode?, proxy? (opt-in only)session_id, requested_metadata
browser_acquire_and_extracturl, mode, wait_for_selector?, extraction_js?, total_timeout_secs?strategy_used, final_url, status_code, extracted?, html_excerpt?, diagnostics
browser_navigatesession_id, url, timeout_secs?title, url
browser_evalsession_id, scriptresult: Value
browser_screenshotsession_iddata: base64 PNG
browser_contentsession_idhtml: String
browser_attach (mcp-attach feature)mode, endpoint?, profile_hint?, target_profile?attach session result
browser_auth_sessionsession_id, mode, file_path?, ttl_secs?, navigate_to_origin?, interaction_level?auth/session workflow result
browser_session_savesession_id, ttl_secs?, file_path?, include_snapshot?saved session state metadata
browser_session_restoresession_id, snapshot?, file_path?, use_saved?, navigate_to_origin?restored session state metadata
browser_apply_behavior_jsonbehavior, session_id?applied behavior plan + effective config
browser_humanizesession_id, level?, viewport_width?, viewport_height?humanization result
browser_verify_stealthsession_id, url, timeout_secs?DiagnosticReport JSON
browser_releasesession_idsuccess
pool_statsactive, max, available
browser_querysession_id, url, selector, fields?, limit?, timeout_secs?results array of text or field objects
browser_extractsession_id, url, root_selector, schema, timeout_secs?results array of structured objects
browser_extract_with_fallbacksession_id, url, root_selectors, schema, timeout_secs?first successful selector + results
browser_extract_resilientsession_id, url, root_selector, schema, timeout_secs?results plus skipped-count metadata
browser_find_similar (similarity feature)session_id, url, reference_selector, threshold?, max_results?, timeout_secs?scored matches array
browser_warmupsession_id, url, wait?, timeout_ms?, stabilize_ms?warmup report
browser_refreshsession_id, wait?, timeout_ms?, reset_connection?refresh report

Proxy guidance: leave proxy unset by default. Only pass proxy when the user explicitly requests proxy routing or after a proxy has been acquired from the proxy pool.

Structs§

JsonRpcError
A JSON-RPC 2.0 error object.
JsonRpcRequest
A JSON-RPC 2.0 request.
JsonRpcResponse
A JSON-RPC 2.0 response.
McpBrowserServer

Functions§

is_mcp_enabled
Returns true if the MCP server is enabled via the STYGIAN_MCP_ENABLED environment variable.