proxy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| 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_upstreamB | 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
- 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/yfe404/proxy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server