Proxyman Traffic Debugging And MCP Operations
Use this skill after Proxyman MCP is configured. It teaches the agent how to use Proxyman as a local MCP server for traffic debugging and full Proxyman operations.
If Proxyman MCP tools are not available, stop and use
. If Proxyman is not installed, use
.
Proxyman MCP is not a cloud API. MCP clients talk to the bundled
executable over stdio, and the bridge controls a running local Proxyman app.
Treat
,
, and
from the connected MCP server as the current source of truth when exact schemas or tool availability matter.
Mental Model
- MCP clients talk to the bundled executable over stdio.
- The bridge reads a local handshake file, then forwards requests to the running Proxyman app at
http://127.0.0.1:<ephemeral-port>/mcp
.
- The app's local HTTP server is localhost-only and authenticated with a bearer token from the handshake file.
- Do not hardcode the HTTP port or token. They are regenerated by the app and discovered from the handshake.
- Prefer the stdio MCP bridge over direct HTTP calls because the bridge adds schema validation, prompts, resources, annotations, structured content, and extra redaction safeguards.
- On Windows, the bridge is typically beside . On Linux AppImage builds, Proxyman prepares a stable bridge at
${XDG_CONFIG_HOME:-$HOME/.config}/Proxyman/bin/mcp-server
after the app launches.
- Flow tools expose the app's active session/sidebar data source, including Atlantis, saved requests, pinned flows, imported sessions, and remote folders when selected, so results should match what the user sees in Proxyman.
- , Terminal injection, Electron injection, and bridge app-control tools are macOS-oriented. On another platform, rely on the live tool list and schemas before offering them.
- The tool list below is an orientation map. Use the live MCP schemas before sending calls, especially after Proxyman updates.
First Calls In A Session
- List tools/resources/prompts when the MCP client exposes discovery calls.
- Use to confirm the bridge can reach the app.
- Use to check recording state, proxy port, and SSL Proxying.
- For setup questions, call before inventing advice.
- For traffic work, call or , then use returned values with detail/export/code tools.
- For mutations, inspect current state first with the relevant list/status tool, then make the smallest requested change.
The stdio server uses strict schemas. Always obey
; unknown parameters and invalid enum values are rejected as protocol errors.
Privacy And Consent
- Redaction is controlled in Proxyman Settings > MCP. When enabled, Proxyman redacts sensitive headers, cookies, query secrets, JWTs, bearer tokens, and common secret/password fields.
- Flow summaries/details, WebSocket payload previews, Compose drafts/results, exported cURL, and generated code honor the app's privacy setting.
- writes original captured data to HAR or ProxymanLogv2 on disk. The file contents are not redacted by the MCP preview setting.
- Ask before disabling redaction, exporting files, installing/uninstalling certificates, enabling system proxy, quitting Proxyman, clearing sessions, deleting rules, launching injected terminals, launching Electron apps, running guided automations, or sending upstream-proxy credentials.
- requires an explicit user-approved save path. If the path is a directory, Proxyman auto-generates a filename.
- If the user asks for raw secrets, confirm that they understand redaction may need to be disabled in Proxyman Settings > MCP.
Core Tool Groups
Use this section to choose the right workflow quickly. Do not copy these names blindly; confirm current schemas and enum values from the connected MCP server.
Read-only inspection:
- , , , ,
- ,
- , , ,
- ,
- , ,
Capture setup and guidance:
- for user-specific setup advice with diagnosis, steps, verification, citations, and next actions.
- , ,
- for app guide screens.
- for safe built-in automations: Chrome current profile, Chrome new profile, Firefox, Android emulator override/revert.
Session and proxy control:
- ,
- ,
- , ,
toggle_ssl_proxying_domain
- SSL Proxying domain parameters accept exact hosts and wildcard patterns such as . Use the exact same pattern when disabling or toggling a wildcard rule, then verify the result with .
- ,
- ,
- changes the No Caching feature directly; can also set its global state.
Rule management:
- , ,
create_map_local_from_flow
, ,
- , , , ,
- , ,
- Use , , and for those feature-specific IDs and details. does not return Reverse Proxy entries.
- , , , , , , , ,
- toggles whole features such as , , , , , , , , , , and .
- Successful MCP rule CRUD, rule toggles, and feature toggles refresh open Proxyman tool lists and rule editors automatically. Deleting a rule that is currently being edited closes that editor.
- Update commands preserve the rule ID. Continue using the original ID for later toggle, update, or delete calls.
- Rule fields accept alongside the established HTTP methods. Use uppercase for an exact RFC 10008 rule; use only when the rule should also affect other methods.
- Set explicitly when matching scope matters. Defaults mirror each GUI and differ across rule types.
- Creating Scripting, Allow List, Network Condition, DNS Spoofing, or Reverse Proxy entries auto-enables that feature. Other rule creation may leave the global feature disabled; verify with .
Flow operations:
- with or
- with targets , , , , , , , , , , , , , , , , , , and .
Compose and WebSocket:
- ,
create_compose_http_from_flow
, , , ,
- , ,
Runtime/app injection:
- ,
get_terminal_manual_command
App control:
- can launch regular or Setapp Proxyman if installed. Wait briefly, then retry .
- quits the local app and should be treated as destructive.
Common Workflows
When a workflow mutates Proxyman state, explain what will change before calling the tool.
Inspect Traffic
- with , , , or , or use for body/header/status matching.
- for a chosen .
- Use or only after confirming the flow is the one the user wants.
- Treat flow results as recent snapshots: list/filter results cap at 500 and body previews are truncated. Request an approved file export only when the user needs complete archival data.
Verify A Feature From Traffic
- Ask for the feature, expected endpoint behavior, and approximate time window if the user has not provided it.
- to confirm recording and proxy state.
- Use or to find relevant requests.
- Group results by endpoint, method, status, timing, and request sequence.
- Inspect representative values with .
- Report a verdict: passed, suspicious, failed, or inconclusive.
Recommended report shape:
text
Feature Traffic Report
Verdict: ...
Traffic window: ...
Endpoint summary: ...
Evidence: ...
Possible issues: ...
Next action: ...
Help A User Capture Missing Traffic
- with the user's exact symptom and any platform/app hints.
- Check , , and .
- If localhost is involved, prefer Reverse Proxy guidance or .
- If iOS plus VPN is involved, prefer Atlantis guidance.
- If a browser, Android emulator, or terminal automation is offered, ask before or .
Create A Debugging Rule From Captured Traffic
- or to locate the target request.
- to confirm URL, method, body, and matched tools.
- Use
create_map_local_from_flow
when the user wants to reuse the captured response exactly.
- Use only when the user provides or wants a literal custom response.
- Use the appropriate inventory tool to verify the new rule and use to confirm its feature is enabled.
Manage Existing Rules
- Use for matching rules, for Reverse Proxy, for Network Condition, and for DNS Spoofing.
- Use the returned ; do not infer IDs from names.
- For and , pass the exact . Common values are , , , , , , , , and .
- For updates, omit fields that should stay unchanged. For GraphQL operation filters, an empty string or clears the filter where supported.
- Exception: when changing a Map Local literal response, pass , , and together because the response file is rebuilt with defaults for omitted response fields.
- Only one Network Condition can be active at a time.
Configure An External Proxy
- Use and identify the , , , or setting to change.
- Ask before sending credentials.
- Use with a complete setting for that kind. Omitted host, port, enabled, or authentication values are not patch-preserved reliably.
- Call again to verify the global feature and protocol setting.
Write A Scripting Rule
- Read
docs://scripting/snippet-code
before generating non-trivial , or use the prompt when the client exposes MCP prompts. Do not rely on generic proxy scripting syntax.
- Use the canonical positional signatures exactly:
async function onRequest(context, url, request)
and async function onResponse(context, url, request, response)
.
- Generate only the handlers needed for the user's case. must end with ; must end with .
- Request and response headers are mutable key-value objects. Use for an HTTP status code and consult the resource for body types and less common fields.
- Never generate one-argument handlers such as or . Proxyman passes first, so those handlers target the wrong object.
- The app validates JavaScript syntax, handler arity/order, and final return values before creating or updating a Scripting rule. Fix the actionable tool error and retry rather than weakening the script.
Compose And Replay An HTTP Request
- Use for a blank draft or
create_compose_http_from_flow
to seed from a captured flow.
- Use with , ,
headers: [{ "key": "...", "value": "..." }]
, and UTF-8 .
is supported and can be sent with .
- Use to send the draft and receive the resulting captured flow summary/detail.
- is HTTP-only; WebSocket URLs are rejected.
- Compose IDs are in-memory and ephemeral. Delete unused drafts with .
Inspect WebSockets
- with ,
direction: "all" | "client" | "server"
, , and .
- Payload previews are truncated to 4,096 characters and honor redaction.
- only supports active Compose-created WebSocket sessions.
Built-In Resources And Prompts
Use built-in resources and prompts for Proxyman-specific setup and scripting guidance before reaching for generic web advice.
Resources:
docs://setup/ios-simulator
docs://setup/android-device
docs://setup/android-emulator
docs://setup/tvos-watchos
docs://setup/automatic-setup
docs://setup/manual-setup
docs://troubleshooting/vpn
docs://troubleshooting/localhost
docs://troubleshooting/third-party-libraries
docs://scripting/snippet-code
insights://popular-workflows
- Resource template:
Prompts:
troubleshoot_missing_traffic
explain_vpn_or_atlantis_choice
These resources/prompts are curated to match the app's own automation paths.
Troubleshooting
- "Handshake file not found": Proxyman is not running, MCP is disabled, or the app has not finished startup. Launch Proxyman and enable Settings > MCP.
- "Invalid handshake file" or HTTP 401: restart Proxyman so the bridge gets the current token.
- "Cannot connect to Proxyman": confirm the app is open and the MCP status shows "Running on port ...".
- Linux AppImage bridge missing: launch Proxyman once, enable Settings > MCP, restart the app, then use the copied bridge from
${XDG_CONFIG_HOME:-$HOME/.config}/Proxyman/bin/mcp-server
.
- No flows appear: check recording, target proxy settings, certificate trust, SSL Proxying, and whether the active Proxyman sidebar/session source is the expected one.
- HTTPS bodies are opaque: check and , then enable SSL Proxying for the host.
- Localhost is missing: use Reverse Proxy; many localhost calls bypass the system proxy path.
- VPN blocks capture: for iOS apps, recommend Atlantis before fighting the device proxy path.
- Browser or terminal automation fails: macOS Automation permission may be missing. Ask the user to allow Proxyman in System Settings > Privacy & Security > Automation.
- Android emulator automation also needs an available root certificate path and local IPv4 address. Check certificate status before retrying it.
- Do not offer macOS-only system proxy, Terminal, Electron , or app-control operations on another platform unless the live MCP server exposes an applicable schema.
- Certificate install in automatic mode can trigger a macOS sudo dialog; manual mode opens Keychain Access for user trust steps.
- Flow IDs can disappear after , source changes, app restart, or import/session changes. List flows again before retrying.