proxy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHAH_PROXY_ALLOWED_DIRS | No | Comma-separated list of additional directories that file-access tools may read/write. The list is fixed at startup. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| proxy_startA | Bring up the mockttp HTTPS MITM proxy. Returns the LAN IP : port to type into the device's manual Wi-Fi proxy settings. Unmatched requests pass through to the real headend. If the device is an Android emulator, pass hostRewrites to map its 10.0.2.2 alias (means 'host loopback', only valid inside the emulator) to 127.0.0.1 so Metro/dev-server passthrough can reach the Mac. |
| proxy_stopA | Stop the proxy. Transform rules are auto-saved to transforms.json for next restart. Device proxy may still be set on the device — use proxy_health to detect this. |
| proxy_mock_responseA | Add an in-memory mock rule. Matches on HTTP method + URL pattern (glob/substring by default against the full URL; set regex=true for a raw regex). Body is supplied inline or via a fixture file on disk. Provide either 'body' or 'bodyFile', not both. Optionally simulate a slow server: delayMs waits before responding (processing time), bandwidthKbps streams the body at a KB/s rate (slow network / big object from far away). |
| proxy_list_mocksB | View the active in-memory mock rules. |
| proxy_clear_mocksA | Remove one mock rule by id, or all rules if no id is given. |
| proxy_mock_transformA | Intercept a request, forward it to the real backend, parse the JSON response, apply in-place patches (path + optional where + set), and return the modified response. Use |
| proxy_list_transformsB | View the active intercept-and-transform rules. |
| proxy_clear_transformsB | Remove one transform rule by id, or all transform rules if no id is given. |
| proxy_request_transformA | Intercept a request matching method+URL, modify it (headers, query params, body), forward to the real backend, and return the response. Use setHeaders/removeHeaders to modify headers, setQuery/removeQuery for URL params, and body to replace the request body. |
| proxy_list_request_transformsB | View the active request transform rules. |
| proxy_clear_request_transformsA | Remove one request transform rule by id, or all rules if no id is given. |
| proxy_update_request_transformA | Idempotently upsert a request transform rule by (method + url + regex) key. If a rule with the same key exists, its properties are replaced. |
| proxy_list_trafficA | Confirm a rule matched the intended request by inspecting captured traffic. Each entry includes transformOutcome (patched|no_match|not_json|error) and patchesApplied count. Sensitive headers (authorization, cookies, api keys) are redacted by default — set includeSensitiveHeaders=true to see raw values. Use includeRequestBodyPreviews=true to see POST/PUT body content. Use includeResponseBodyPreviews=true for response samples. Optionally export to JSON or HAR (replaces the Charles log-export workflow). |
| ca_infoA | Report the CA in use (directory, source, fingerprint, and whether cert.pem/key.pem are present AND match) plus per-platform instructions. There are two distinct trust paths: (1) app-bundled trust for TV / debug builds — the cert is compiled into the app (res/raw/cacert) and the README's 'No device-side CA install, no root, no Magisk' workflow applies; (2) explicit device CA install for phones/browsers — install once via Settings, or adbPush=true over USB (this does NOT apply to TV builds). Use proxy_health.caStatus for the same validity checks without the instructions. |
| proxy_healthA | Full preflight/diagnostics. Always returns: running, version, capabilities, caStatus (dir, source, fingerprint, whether cert.pem/key.pem match), rule counts, captured-traffic count, and warnings. While the proxy is stopped it also returns detectedLanIp, whether the default port is free, and suggestedStart (ready-to-use proxy_start arguments). Use this first — it tells you everything needed to get running without shelling out. |
| proxy_scopeA | Restrict which traffic is retained in the proxy log (proxy_list_traffic). The proxy still intercepts and serves all hosts — this only controls what is kept, so the agent's context stays small during bug investigation. Pass 'hosts' to retain only matching hostnames (their subdomains are included, and '*.example.com' wildcards are allowed); omit 'hosts' or pass [] to clear scoping and retain all traffic again. Returns the active scope and current captured-traffic count. Already-captured entries are unaffected. |
| proxy_update_transformA | Idempotently upsert a transform rule by (method + url + regex) key. If a rule with the same key exists, its patches are replaced. Use this instead of clear+re-add to avoid auto-review friction. |
| proxy_save_transformsA | Save both response and request transform rules to a JSON file for reuse after a proxy restart. Reload with proxy_load_transforms. |
| proxy_probe_transformA | Fetch a URL directly, apply the given patches, and return a sample of modified fields (before/after values) plus match count. Useful for verifying patch paths and wire values before calling proxy_update_transform. Does NOT require the proxy to be running. |
| proxy_load_transformsB | Load transform rules previously saved with proxy_save_transforms. Uses idempotent upsert (requires proxy to be running). |
| proxy_whats_newA | Report the running server version, the changelog for recent releases (optionally since a specific version), and whether a newer version is published on npm. Use this to learn what changed in recent releases — e.g. when in-repo skills seem out of date — without leaving the MCP. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/shahfazliz/proxy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server