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_start | Start the HTTPS MITM proxy. Auto-generates a CA certificate. Returns port, URL, cert fingerprint, and setup instructions for the target device. |
| proxy_stop | Stop the MITM proxy. Traffic history and CA certificate are retained. |
| proxy_status | Get proxy running state, port, upstream config, rule count, and traffic count. |
| proxy_get_ca_cert | Get the CA certificate PEM and SPKI fingerprint for installing on the target device. |
| proxy_set_upstream | Set a global upstream proxy for all outgoing traffic. Supports socks4://, socks5://, http://, https://, and pac+http:// URLs. |
| proxy_clear_upstream | Remove the global upstream proxy. Traffic will go directly to target servers. |
| proxy_set_host_upstream | Set a per-host upstream proxy override. Traffic to this hostname will use the specified proxy instead of the global one. |
| proxy_remove_host_upstream | Remove a per-host upstream proxy override. |
| proxy_add_rule | Add an interception rule with a matcher and handler. Rules are evaluated by priority (ascending), first match wins. |
| proxy_update_rule | Modify an existing interception rule. |
| proxy_remove_rule | Delete an interception rule. |
| proxy_list_rules | List all interception rules sorted by priority. |
| proxy_test_rule_match | Test which interception rules would match a request, with detailed per-field pass/fail diagnostics and effective winner by priority. |
| proxy_enable_rule | Enable a disabled interception rule. |
| proxy_disable_rule | Disable an interception rule without removing it. |
| proxy_list_traffic | List captured HTTP exchanges with optional filters. Returns paginated results. |
| proxy_get_exchange | Get full details of a captured HTTP exchange including headers and body previews. |
| proxy_search_traffic | Full-text search across URLs, headers, and body previews of captured traffic. |
| proxy_clear_traffic | Clear all captured traffic from the buffer. |
| proxy_inject_headers | Add or overwrite headers on matching traffic. Creates a passthrough rule with header transforms. |
| proxy_rewrite_url | Rewrite request URLs matching a pattern. Creates a passthrough rule with body match-replace on the URL. |
| proxy_mock_response | Return a mock response for matched requests. Creates a mock rule. |
| proxy_get_tls_fingerprints | Get JA3/JA4 client fingerprints and JA3S server fingerprint for a specific captured exchange. |
| proxy_list_tls_fingerprints | List unique client JA3/JA4 fingerprints across captured traffic with occurrence counts. |
| proxy_set_ja3_spoof | Legacy: enable JA3 spoofing (deprecated, use proxy_set_fingerprint_spoof). Custom JA3 strings are ignored by the curl-impersonate backend; the request will use the default Chrome preset. |
| proxy_set_fingerprint_spoof | Enable outgoing TLS + HTTP/2 fingerprint spoofing via curl-impersonate (requires Docker or Podman). Supports browser presets that select a curl-impersonate target binary (BoringSSL + nghttp2, matching real Chrome/Firefox). Individual parameters override preset values. |
| proxy_list_fingerprint_presets | List available browser fingerprint presets for use with proxy_set_fingerprint_spoof. |
| proxy_check_fingerprint_runtime | Check Docker/Podman runtime readiness for TLS/HTTP2 fingerprint spoofing without sending traffic. |
| proxy_clear_ja3_spoof | Disable fingerprint spoofing and stop curl-impersonate container. |
| proxy_get_tls_config | Get current TLS capture and spoofing configuration. |
| proxy_enable_server_tls_capture | Toggle server-side JA3S capture. When enabled, outgoing TLS connections are intercepted to extract the server's negotiated TLS parameters. |
| interceptor_list | List all interceptors with their availability and active targets. Shows Chrome, Terminal, Android ADB, Android Frida, and Docker interceptors. |
| interceptor_status | Get detailed status of a specific interceptor, including all active targets and their details. |
| interceptor_deactivate_all | Kill ALL active interceptors across all types. Emergency cleanup — stops all Chrome instances, kills spawned processes, removes ADB tunnels, detaches Frida, cleans Docker. |
| interceptor_chrome_launch | Launch Chrome/Chromium with proxy flags and SPKI certificate trust. Uses isolated temp profile. Traffic automatically flows through the MITM proxy. |
| interceptor_chrome_cdp_info | Get CDP endpoints (HTTP + WebSocket) and tab targets for a Chrome instance launched by interceptor_chrome_launch. Useful for attaching Playwright/DevTools. |
| interceptor_chrome_navigate | Navigate a tab in a specific Chrome instance launched by interceptor_chrome_launch using that instance's CDP target WebSocket. Prevents cross-instance mistakes when proxy capture is required. |
| interceptor_chrome_close | Close a Chrome instance launched by interceptor_chrome_launch. |
| interceptor_spawn | 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_kill | Kill a spawned process by target ID. Also retrieves final stdout/stderr output. |
| interceptor_android_devices | List connected Android devices via ADB with model, version, root status, and whether they're actively intercepted. |
| interceptor_android_activate | 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_deactivate | Remove ADB reverse tunnel and clear Wi-Fi proxy on an Android device. |
| interceptor_android_setup | 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_apps | List running apps on an Android device via Frida. Requires frida-server running on the device. |
| interceptor_frida_attach | 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_detach | Detach Frida session from an Android app, removing injected scripts. |
| interceptor_docker_attach | 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_detach | Remove proxy configuration from a Docker container and clean up injected files. |
| interceptor_chrome_devtools_pull_sidecar | Install/pull chrome-devtools-mcp sidecar locally so full DevTools bridge actions are available. |
| interceptor_chrome_devtools_attach | Start a chrome-devtools-mcp sidecar session bound to a specific interceptor_chrome_launch target_id. |
| interceptor_chrome_devtools_detach | Close a chrome-devtools-mcp sidecar session by session ID. |
| interceptor_chrome_devtools_navigate | Navigate the bound Chrome session via chrome-devtools-mcp and verify matching host traffic was captured by proxy-mcp. |
| interceptor_chrome_devtools_snapshot | Take an accessibility snapshot from the bound Chrome DevTools session. |
| interceptor_chrome_devtools_list_network | List network requests from the bound Chrome DevTools session. |
| interceptor_chrome_devtools_list_console | List console messages from the bound Chrome DevTools session. |
| interceptor_chrome_devtools_screenshot | Take a screenshot using the bound Chrome DevTools session. |
| interceptor_chrome_devtools_list_cookies | List browser cookies for the bound Chrome session with pagination and truncated values by default. |
| interceptor_chrome_devtools_get_cookie | Get one cookie by cookie_id with full value (subject to a hard cap to keep output bounded). |
| interceptor_chrome_devtools_list_storage_keys | List localStorage/sessionStorage keys for the current origin with pagination and truncated value previews. |
| interceptor_chrome_devtools_get_storage_value | Get one localStorage/sessionStorage value by item_id. |
| interceptor_chrome_devtools_list_network_fields | List request/response header fields from proxy-captured traffic since the DevTools session was created, with pagination and truncation. |
| interceptor_chrome_devtools_get_network_field | Get one full header field value from proxy-captured traffic by field_id. |
| proxy_session_start | Start persistent on-disk capture for the current proxy run. |
| proxy_session_stop | Stop persistent on-disk capture and finalize the active session. |
| proxy_session_status | Get current persistent capture runtime status. |
| proxy_list_sessions | List recorded sessions in storage. |
| proxy_get_session | Get manifest/details for a specific recorded session. |
| proxy_import_har | Import a HAR file from disk into a new persisted session for querying, findings, and replay. |
| proxy_query_session | Query indexed session exchanges with filters and pagination. |
| proxy_get_session_handshakes | Summarize TLS handshake/fingerprint availability (JA3/JA4/JA3S) for session exchanges. |
| proxy_get_session_exchange | Get one exchange from a recorded session by seq or exchange ID. |
| proxy_replay_session | Replay selected requests from a recorded/imported session. Default mode is dry_run for safety. |
| proxy_export_har | Export a recorded session (or filtered subset) to HAR format. |
| proxy_delete_session | Delete a recorded session from disk. |
| proxy_session_recover | Rebuild session indexes from records after crash/corruption. |
| humanizer_move | Move mouse along a human-like Bezier curve to target coordinates. Uses Fitts's law velocity scaling and eased timing profile. |
| humanizer_click | Move to an element (by CSS selector) or coordinates, then click with human-like timing. Supports left/right/middle button and multi-click (double-click, etc.). |
| humanizer_type | Type text with human-like keystroke timing. Models per-character delays based on WPM, bigram frequency, shift penalty, word boundary pauses, and optional typo injection with backspace correction. |
| humanizer_scroll | Scroll with natural acceleration/deceleration using easeInOutQuad velocity distribution. Dispatches multiple wheel events to simulate human scroll behavior. |
| humanizer_idle | Simulate idle behavior with mouse micro-jitter and occasional micro-scrolls. Keeps the page 'alive' to avoid idle detection by bot-detection scripts. |
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_chrome_devtools_sessions | |
| proxy_sessions | |
| proxy_chrome_primary | |
| proxy_chrome_targets |