httptoolkit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTMCP_ADB_PATH | No | Path to the adb executable. If not set, the server will search in known emulator directories and the system PATH. | |
| HTMCP_CERT_DIR | No | Directory to store the CA certificate. Defaults to ./certs. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| proxy_startA | Start the Mockttp HTTPS interception proxy. Generates/loads a stable CA. Point your emulator's proxy at : and install the CA to capture traffic. |
| proxy_stopA | Stop the interception proxy. |
| proxy_statusB | Report proxy state, captured count and local IPs. |
| get_ca_certificateA | Return the proxy CA certificate (PEM) and its file path for device installation. |
| list_trafficC | List captured exchanges (newest first) with optional filters. |
| search_trafficB | Full-text search across URLs, headers and bodies of captured exchanges. |
| get_exchangeA | Full detail for one exchange: request line, request/response headers, request & response cookies, and both bodies. Bodies render per |
| get_ws_messagesC | List a WebSocket exchange's messages, rendered in the chosen format. |
| get_bodyB | Return just the request or response body of an exchange in a chosen format. |
| decode_protobufA | Schema-less protobuf decode that keeps ALL interpretations per field (message/string/bytes) and transparently decompresses embedded gzip/zlib/zstd and unwraps gRPC frames. Input a captured exchange body, or paste raw hex/base64. Use output=json to get a structured tree for building automations. |
| classify_blobA | Tell what an unknown blob most likely is (entropy + magic bytes + JSON/protobuf/base64/gRPC probes) so you don't try to decode ciphertext. Flags encrypted transports (e.g. WhatsApp Noise/E2E) that passive MITM can't decode. Input an exchange body or raw hex/base64. |
| protobuf_diffA | Decode two exchanges' bodies as protobuf and diff them by field path - surfaces which fields change between requests (cursors, tokens, ids) vs stay constant. Ideal for reverse-engineering an API for automation. |
| clear_trafficA | Drop all captured exchanges. |
| export_harC | Export captured traffic (optionally filtered) to a .har file. |
| import_harA | Load a .har file (e.g. exported from HTTP Toolkit or a browser) into the store so it can be listed, searched and inspected like live traffic. |
| add_mock_ruleB | Reply to matching requests with a fixed response (passes through everything else). |
| add_error_ruleA | Break matching requests: reset/close the connection or hang (timeout). |
| add_delay_ruleA | Delay matching requests by N ms, then pass them through normally. |
| add_redirect_ruleB | Transparently forward matching requests to a different absolute URL. |
| add_modify_request_ruleB | Rewrite headers/body on matching requests, then pass through. |
| list_rulesB | List active interception rules. |
| remove_ruleC | Remove a rule by id. |
| clear_rulesB | Remove all rules. |
| adb_devicesB | List connected adb devices/emulators. |
| adb_connectA | Connect to an emulator over TCP. Accepts a host:port or a preset name (nox, memu, bluestacks, ldplayer). See list_emulator_presets. |
| list_emulator_presetsA | Known emulators with their default adb connect host:port. |
| adb_reverseA | Tunnel the proxy port back to the device over the adb channel (device 127.0.0.1: -> host). Use this for emulators behind their own NAT (e.g. MEmu, where the gateway is the emulator's virtual router, not the host) - then set the device proxy to 127.0.0.1:. Bypasses host firewall/NAT. |
| adb_install_certA | Push the proxy CA into the device's SYSTEM trust store via adb (no Magisk needed on Nox/MEmu). Trusted by all apps and invisible to user-store anti-MITM checks. Fails on hard-pinned apps. |
| adb_set_proxyC | Route device traffic through host:port via adb (no WiFi UI needed). |
| adb_clear_proxyC | Remove the device global proxy via adb. |
| adb_setupA | Convenience: start proxy (if needed), install the system CA, and set the device proxy in one step. By default uses an adb reverse tunnel (127.0.0.1), which works on NAT'd emulators like MEmu without needing a reachable host IP. Set hostIp to use a LAN IP instead. |
| adb_enable_transparentA | Redirect ALL device TCP :80/:443 to the proxy via iptables DNAT - captures every app's traffic on L3, including apps that ignore the system proxy (e.g. VK). No companion app, no VPN dialog. Requires root (Nox/MEmu out of the box). Defaults to a loopback target via adb reverse tunnel (works behind emulator NAT); pass hostPort to DNAT to a reachable LAN host. |
| adb_disable_transparentA | Remove the iptables DNAT rules (and reverse tunnel if loopback). Flushes nat OUTPUT. |
| adb_transparent_statusC | Show the device's nat OUTPUT chain (active DNAT redirects). |
| adb_setup_transparentA | Start proxy (if needed), install the system CA, and enable transparent iptables capture - the closest adb-only equivalent of HTTP Toolkit's VPN mode, with zero on-device dialogs. Catches apps that ignore the system proxy (e.g. VK). Defaults to loopback + reverse tunnel (works behind emulator NAT); pass hostIp for a directly reachable host. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Every tool has a clearly distinct purpose, with no ambiguity between them. For example, adb tools are separate from proxy control tools, and rule tools are distinct in their effects (delay, error, mock, redirect, modify). Even similar tools like add_mock_rule vs add_modify_request_rule are clearly differentiated in descriptions.
Most tools follow a consistent verb_noun pattern (e.g., proxy_start, add_delay_rule), and adb tools are grouped with a prefix. Minor deviations like classify_blob and decode_protobuf are still understandable, and overall the naming is predictable.
35 tools is on the higher side but justifiable for a comprehensive HTTP interception toolkit. The tools cover many subdomains (emulator setup, proxy control, rules, traffic inspection, utilities), and each tool serves a specific function without redundancy. The count is slightly above the typical ideal range but still reasonable.
The tool set is highly complete for its domain, covering proxy lifecycle, rule manipulation, traffic capture, search, export, import, and emulator-specific setup including transparent interception and certificate installation. Only minor gaps like VPN mode control are missing, but these are OS-level features not expected in a proxy tool.