proxy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| proxy_startA | Start the HTTPS MITM proxy. Auto-generates a CA certificate. Returns port, URL, cert fingerprint, and setup instructions for the target device. |
| proxy_stopA | Stop the MITM proxy. Traffic history and CA certificate are retained. |
| proxy_statusA | Get proxy running state, port, upstream config, rule count, and traffic count. |
| proxy_get_ca_certA | Get the CA certificate PEM and SPKI fingerprint for installing on the target device. |
| proxy_set_upstreamA | Set a global upstream proxy for all outgoing traffic. Supports socks4://, socks5://, http://, https://, and pac+http:// URLs. |
| proxy_clear_upstreamA | Remove the global upstream proxy. Traffic will go directly to target servers. |
| proxy_set_host_upstreamA | Set a per-host upstream proxy override. Traffic to this hostname will use the specified proxy instead of the global one. |
| proxy_remove_host_upstreamA | Remove a per-host upstream proxy override. |
| proxy_add_ruleB | Add an interception rule with a matcher and handler. Rules are evaluated by priority (ascending), first match wins. |
| proxy_update_ruleC | Modify an existing interception rule. |
| proxy_remove_ruleC | Delete an interception rule. |
| proxy_list_rulesA | List all interception rules sorted by priority. |
| proxy_test_rule_matchA | Test which interception rules would match a request, with detailed per-field pass/fail diagnostics and effective winner by priority. |
| proxy_enable_ruleA | Enable a disabled interception rule. |
| proxy_disable_ruleA | Disable an interception rule without removing it. |
| proxy_list_trafficC | List captured HTTP exchanges with optional filters. Returns paginated results. |
| proxy_get_exchangeB | Get full details of a captured HTTP exchange including headers and body previews. |
| proxy_search_trafficA | Full-text search across URLs, headers, and body previews of captured traffic. |
| proxy_clear_trafficA | Clear all captured traffic from the buffer. |
| proxy_inject_headersA | Add or overwrite headers on matching traffic. Creates a passthrough rule with header transforms. |
| proxy_rewrite_urlB | Rewrite request URLs matching a pattern. Creates a passthrough rule with body match-replace on the URL. |
| proxy_mock_responseC | Return a mock response for matched requests. Creates a mock rule. |
| proxy_get_tls_fingerprintsA | Get JA3/JA4 client fingerprints and JA3S server fingerprint for a specific captured exchange. |
| proxy_list_tls_fingerprintsB | List unique client JA3/JA4 fingerprints across captured traffic with occurrence counts. |
| proxy_set_ja3_spoofA | Legacy: enable fingerprint spoofing (deprecated, use proxy_set_fingerprint_spoof with a preset). The ja3 parameter is accepted but ignored — the default Chrome preset is used. |
| proxy_set_fingerprint_spoofA | Enable outgoing TLS + HTTP/2 fingerprint spoofing via impit (native TLS impersonation, no Docker required). Supports browser presets that select an impit target (rustls, matching real Chrome/Firefox). |
| proxy_list_fingerprint_presetsA | List available browser fingerprint presets for use with proxy_set_fingerprint_spoof. |
| proxy_check_fingerprint_runtimeA | Check fingerprint spoofing backend readiness without sending traffic. |
| proxy_clear_ja3_spoofB | Disable fingerprint spoofing. |
| proxy_get_tls_configA | Get current TLS capture and spoofing configuration. |
| proxy_enable_server_tls_captureA | Toggle server-side JA3S capture. When enabled, outgoing TLS connections are intercepted to extract the server's negotiated TLS parameters. |
| interceptor_listA | List all interceptors with their availability and active targets. Shows Browser, Terminal, Android ADB, Android Frida, and Docker interceptors. |
| interceptor_statusB | Get detailed status of a specific interceptor, including all active targets and their details. |
| interceptor_deactivate_allA | Kill ALL active interceptors across all types. Emergency cleanup — stops all browser instances, kills spawned processes, removes ADB tunnels, detaches Frida, cleans Docker. |
| interceptor_browser_launchA | Launch cloakbrowser (stealth Chromium) with proxy flags and SPKI certificate trust. Built-in source-level fingerprint patches + humanize mode. Driven via Playwright — locator-based tools replace CDP. |
| interceptor_browser_navigateA | Navigate the browser target's page via Playwright and optionally wait for matching host traffic to be captured by the proxy. |
| interceptor_browser_closeA | Close a browser instance launched by interceptor_browser_launch (or interceptor_camoufox_launch). |
| interceptor_spawnA | Spawn a command with proxy env vars pre-configured (HTTP_PROXY, HTTPS_PROXY, SSL_CERT_FILE, NODE_EXTRA_CA_CERTS, CURL_CA_BUNDLE, and 15+ more). Traffic automatically routes through the MITM proxy. |
| interceptor_killA | Kill a spawned process by target ID. Also retrieves final stdout/stderr output. |
| interceptor_android_devicesA | List connected Android devices via ADB with model, version, root status, and whether they're actively intercepted. |
| interceptor_android_activateA | Full Android interception: inject CA cert into system store (root required), set up ADB reverse tunnel, and optionally set Wi-Fi proxy. Proxy must be running. |
| interceptor_android_deactivateA | Remove ADB reverse tunnel and clear Wi-Fi proxy on an Android device. |
| interceptor_android_setupA | Quick setup: push CA cert + ADB reverse tunnel only (no Wi-Fi proxy). Equivalent to interceptor_android_activate with set_wifi_proxy=false. |
| interceptor_frida_appsA | List running apps on an Android device via Frida. Requires frida-server running on the device. |
| interceptor_frida_attachB | Attach to an Android app via Frida and inject SSL unpinning + proxy redirect scripts. Bypasses certificate pinning, OkHttp CertificatePinner, TrustManager, and native TLS verification. |
| interceptor_frida_detachA | Detach Frida session from an Android app, removing injected scripts. |
| interceptor_docker_attachA | Inject proxy env vars and CA certificate into a Docker container. Two modes: 'exec' (inject into running container) or 'restart' (stop + restart with proxy config). |
| interceptor_docker_detachA | Remove proxy configuration from a Docker container and clean up injected files. |
| interceptor_browser_snapshotA | Take an ARIA accessibility snapshot of the bound page (YAML-formatted role tree). Great for LLM-driven page understanding without parsing HTML. |
| interceptor_browser_screenshotA | Take a screenshot of the bound page. Saves to file_path if provided; otherwise reports byte count without embedding the image. |
| interceptor_browser_list_consoleA | List console messages buffered since the browser was launched. Types: log, info, warning, error, debug, etc. |
| interceptor_browser_list_cookiesA | List cookies from the browser context with pagination and truncated value previews. |
| interceptor_browser_get_cookieA | Get one cookie by cookie_id with full value (subject to a hard cap to keep output bounded). |
| interceptor_browser_list_storage_keysA | List localStorage/sessionStorage keys for the current origin with pagination and truncated value previews. |
| interceptor_browser_get_storage_valueB | Get one localStorage/sessionStorage value by item_id. |
| interceptor_browser_list_network_fieldsA | List request/response header fields from proxy-captured traffic since the browser was launched, with pagination and truncation. |
| interceptor_browser_get_network_fieldB | Get one full header field value from proxy-captured traffic by field_id. |
| interceptor_browser_evaluateA | Execute a JS file in the page and return its result. Source is loaded from |
| interceptor_browser_inject_init_scriptA | Inject a JS file as an init script (Playwright |
| interceptor_browser_add_script_tagA | Append a element to the current page (Playwright |
| proxy_session_startB | Start persistent on-disk capture for the current proxy run. |
| proxy_session_stopA | Stop persistent on-disk capture and finalize the active session. |
| proxy_session_statusA | Get current persistent capture runtime status. |
| proxy_list_sessionsA | List recorded sessions in storage. |
| proxy_get_sessionB | Get manifest/details for a specific recorded session. |
| proxy_import_harA | Import a HAR file from disk into a new persisted session for querying, findings, and replay. |
| proxy_query_sessionA | Query indexed session exchanges by metadata (URL, hostname, method, status) with filters and pagination. Does NOT search body content — use proxy_search_session_bodies for that. |
| proxy_search_session_bodiesA | Search inside HTTP request/response bodies stored in a persistent session. Decompresses and searches actual body content — useful for finding specific text, prices, API responses, error messages, etc. in recorded traffic. Returns context snippets around each match (like grep -C). |
| proxy_get_session_handshakesC | Summarize TLS handshake/fingerprint availability (JA3/JA4/JA3S) for session exchanges. |
| proxy_get_session_exchangeB | Get one exchange from a recorded session by seq or exchange ID. |
| proxy_replay_sessionB | Replay selected requests from a recorded/imported session. Default mode is dry_run for safety. |
| proxy_export_harC | Export a recorded session (or filtered subset) to HAR format. |
| proxy_delete_sessionA | Delete a recorded session from disk. |
| proxy_session_recoverA | Rebuild session indexes from records after crash/corruption. |
| humanizer_moveB | Move mouse to target coordinates via the backend Playwright page. |
| humanizer_clickA | Click an element. Pass one of: selector (CSS/XPath), role + optional name, text, label, or raw x+y coords as fallback. Locator-based calls auto-wait for visible. |
| humanizer_typeA | Type text into the focused element via page.keyboard.type. |
| humanizer_scrollA | Dispatch a wheel event. Raw page.mouse.wheel — single event, not multi-step. |
| humanizer_idleA | Simulate idle behavior with mouse micro-jitter and occasional micro-scrolls. Keeps the page 'alive' to avoid idle detection by bot-detection scripts. |
| proxy_start_transparentA | Start the transparent proxy listener. Receives iptables-redirected traffic (no CONNECT tunnels). Shares the same CA cert, rules, and traffic buffer as the explicit proxy. The explicit proxy must be started first. |
| proxy_stop_transparentA | Stop the transparent proxy listener. |
| proxy_transparent_statusA | Get status of the transparent proxy listener including port and traffic count. |
| proxy_mobile_setupA | One-command mobile capture: start explicit + transparent listeners, optionally inject the CA on an Android device, and emit a sudo-runnable script that wires iptables/sysctl/nmcli on the AP iface. Designed to pair with the proxy-ap-card firmware (ESP32-S3 rogue AP over USB-NCM). |
| proxy_mobile_teardownA | Reverse proxy_mobile_setup: deactivate the Android target if any, stop the transparent + explicit listeners, and emit a sudo-runnable script that removes the iptables rules and restores NetworkManager management. |
| proxy_mobile_detect_ifaceA | Auto-detect the USB-NCM interface the proxy-ap-card presents as (via the cdc_ncm driver). Returns null + iface list if none found. |
| interceptor_camoufox_launchA | Launch camoufox (anti-detect Firefox) as a Playwright WebSocket server, proxied through proxy-mcp with NSS CA trust. Returns a camoufox target_id, wsUrl, and safe fingerprint introspection; drive the target with interceptor_browser_* and humanizer_* tools, or use wsUrl for custom Playwright code. Requires |
| interceptor_camoufox_infoA | Get the wsUrl and ready-to-paste Playwright connect snippets (TS + Python) for a camoufox target. |
| interceptor_camoufox_listA | List all active camoufox instances with their wsUrl and fingerprint details. |
| interceptor_camoufox_closeA | Close a camoufox instance launched by interceptor_camoufox_launch. Kills the Python launcher, removes the temp launcher dir, and removes the NSS profile dir if one was created. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| proxy_status | |
| proxy_ca_cert | |
| proxy_traffic_summary | |
| proxy_interceptors | |
| proxy_sessions | |
| proxy_browser_primary | |
| proxy_browser_targets | |
| proxy_camoufox_targets |
Latest Blog Posts
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/yfe404/proxy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server