Proxygen MCP Server

Proxygen MCP server lets agents inspect traffic, modify requests, manage rewrites and scripts, run tests, and configure the proxy.

Documentation

menu search Search

  • to navigate
  • to select
  • to close

On this page

extension

MCP

Give AI agents access to Proxygen.

The Proxygen MCP server exposes Proxygen’s tools to AI agents through the Model Context Protocol. Once connected, an agent like Claude Code, Gemini CLI or Codex can inspect traffic, modify requests, manage rewrites and scripts, run tests, and configure the proxy — all against your live Proxygen document.

Overview

Proxygen’s MCP server runs on localhost and is reached through a small bridge binary bundled with the app. It requires a per-session authentication token so only agents launched from your machine can use it.

The MCP is designed to prepare a workspace for you to inspect and continue from, not to replace the UI. When an agent creates an editor, a rewrite rule, a test, or a transform recipe, the result is visible in the corresponding Proxygen tool so you can review, adjust, and keep working with it.

Typical uses:

  • Ask an agent to explore traffic, summarize an API, or pick out interesting requests
  • Have an agent draft rewrite rules or scripts based on a natural-language description
  • Generate test configurations and payloads from example requests in history
  • Extract values from responses across many messages
  • Reproduce or modify requests in an editor
  • Configure TLS interception, history filters, and recording settings

Enable the server from Preferences → MCP by turning on Enable MCP server.

Setting up agents

Open Preferences → MCP. The Agent Setup popup and the settings.json button generate the configuration needed to register Proxygen with common agents.

Registration command

The popup offers one-line registration commands for three agents. Selecting an entry copies the command to your clipboard; paste it into a terminal to register Proxygen with that agent.

  • Claude Code
claude mcp add proxygen --transport stdio -- <path-to-proxygen-mcp>  
  • Gemini CLI
gemini mcp add proxygen <path-to-proxygen-mcp>  
  • Codex
codex mcp add proxygen -- <path-to-proxygen-mcp>  

The command shown in Proxygen contains the absolute path to the bundled proxygen-mcp bridge binary.

JSON configuration

For agents that are configured through a JSON settings file rather than a CLI command, use the settings.json button. It copies a ready-to-paste snippet to your clipboard:

{
  "mcpServers": {
    "proxygen": {
      "command": "/path/to/Proxygen.app/Contents/MacOS/proxygen-mcp"
    }
  }
}

Merge this into your agent’s MCP settings file.

info

Proxygen must be running and the MCP server must be enabled for agents to connect.

Examples

Once Proxygen is registered with an agent, you can drive it with natural language. The examples below show the kinds of requests the tools are designed to handle — the agent picks the right tools and parameters and leaves results visible in Proxygen for you to continue from.

Exploring and summarizing traffic

  • “Give me a summary of the last hour of history — which hosts, status codes, and content types are present.”
  • “Build a sitemap of everything under api.example.com and highlight endpoints that only appear once.”
  • “Look through messages 400–650 and flag any request that took longer than 2 seconds, adding a note with the elapsed time.”
  • “Find every 5xx response in the last 200 messages, group them by host, and show me the first example of each.”

Searching and extracting values

  • “Search history for any response whose JSON body contains $.user.email and list the unique values.”
  • “In messages 1200–1500, extract $.data[*].id from each JSON response and give me the combined list with duplicates removed.”
  • “Find every request with an Authorization: Bearer header and capture the token using a regex — save the results as a table.”
  • “Pull //book/title/text() from every XML response on catalog.example.com using XPath.”
  • “Look at the SSE channel for stream.example.com and extract the event field from every message.”

Modifying and replaying requests

  • “Take message 842, open it in an editor, change the user_id query parameter to 42, and send it.”
  • “Create an editor for a POST to https://api.example.com/login with a JSON body containing {{username}} and {{password}} from the current environment, then send it.”
  • “Reproduce message 318 ten times in parallel using sendBatch and tell me the status code distribution.”
  • “Export message 512 as a curl command so I can share it.”

Rewrites, scripting, and interception

  • “Create a rewrite rule that adds X-Debug: 1 to every request to *.staging.example.com.”
  • “Mock GET https://api.example.com/feature-flags to return {"beta": true} with status 200.”
  • “Write a script that runs onResponse for api.example.com, logs any response where $.error is present, and sets a flag on the history message.”
  • “Turn on request interception for POST *.example.com/checkout only, and show me what’s currently in the queue.”
  • “Forward the first pending intercept but replace the body with the contents of message 902.”

Tests and transforms

  • “Create a test collection from message 611 that substitutes §email§ with the values [email protected], [email protected], and an empty string, then run it.”
  • “Poll the running test every few seconds until it finishes and summarize the failures.”
  • “Take the Authorization header value from message 750, base64-decode it, split on :, and give me the username.”
  • “Save a transform recipe that gzip-decompresses input then pretty-prints it as JSON, and call it decode-gzip-json.”

Cookies, variables, and configuration

  • “List cookies for example.com and delete any whose name starts with _tmp.”
  • “Set apiToken in the current environment to the access_token field from the response of message 988.”
  • “Enable TLS interception for *.example.com but exclude telemetry.example.com.”
  • “Add a host resolution that points api.example.com at 127.0.0.1 so I can hit a local server.”
  • “Check whether the Proxygen CA is trusted, and install it if it isn’t.”

Tools

The MCP server exposes the following tools, grouped by area.

Certificate

Tool nameDescription
certificateStatusCheck whether the Proxygen CA is installed and trusted for TLS interception.
certificateInstallInstall the Proxygen CA into the login keychain and set trust settings.

Channel

Tool nameDescription
channelListList active TCP connections currently passing through the proxy (same data as the Connection Monitor panel). Snapshot at call time.

Console

Tool nameDescription
consoleReadRead log items from the Console tool: proxy status, connection events, intercept/script matches, errors. Filter by level or search text.
consoleClearDelete all items from the Console log.

Cookie

Tool nameDescription
cookieListList cookies from the project’s cookie jar with optional domain/name filtering.
cookieGetGet a single cookie from the project’s cookie jar by UUID.
cookieSetCreate or update a cookie in the project’s cookie jar. Omitted optional fields revert to defaults when updating.
cookieDeleteDelete specific cookies by their UUIDs.
cookieClearDelete all cookies from the project’s cookie jar.

Diff

Tool nameDescription
diffGetCompute a text diff between two items (history messages or socket messages) and stage them in Proxygen’s Diff tool.

Document

Tool nameDescription
documentListList all open Proxygen projects with their IDs and names. Pass a returned id as documentId on other tools to target that project.

Editor

Tool nameDescription
editorCreateCreate a new editor with a prepared HTTP request. Prefer this over send when the request should stay visible in the UI.
editorCreateFromHistoryCreate an editor from a history message.
editorGetFull details of an editor, including request and last response.
editorUpdateModify an existing editor’s request.
editorSendSend the request in an editor and return the response. The response is also visible in the Editor’s response pane.
editorListList all open editors in the project.
editorDeleteDelete one or more editors.

History

Tool nameDescription
historySummaryQuick overview of the project’s captured HTTP history: counts, hosts, status codes, content types, time range.
historyListList history messages with filtering, sorting, and pagination.
historyGetFull details of a single history message, including request and response headers and bodies.
historySearchAdvanced rule-based search across history messages. Supports JSONPath and XPath positions in addition to the usual string/regex/wildcard matches.
historyExtractExtract values from matching messages using JSONPath, XPath, or regex capture groups.
historyUpdateSet flag and/or notes on history messages, either by UUIDs, numbers, or filter.
historyFilterSetConfigure the history view filter so findings are surfaced in the UI. Pass reset: true to clear the filter.
historyDeleteDelete specific history messages by UUID or number.
historyClearClear all history messages from the project.
historySitemapHierarchical URL tree grouped by host and path, useful for discovering endpoints.
historyExportCurlExport a history message as a curl command.

Host resolution

Tool nameDescription
hostResolutionListList custom host-to-IP overrides. Host patterns support * and ?; first match wins.
hostResolutionSetCreate or update a hostname resolution. Matched by host, so an existing entry with the same host is replaced.
hostResolutionDeleteDelete hostname resolutions by their host values.

Intercept

Tool nameDescription
interceptListList requests and responses paused in the Intercept queue waiting to be forwarded or dropped.
interceptGetGet full details of a pending intercepted message, with parsed request or response headers and body.
interceptForwardForward one or more pending intercepts to their destination, optionally replacing the raw message for a single intercept.
interceptDropDrop pending intercepts so they never reach their destination.
interceptEnableSetEnable or disable interception of requests and responses.
interceptFilterSetConfigure the Intercept filter (rules and hosts) so only matching messages pause in the queue.

Proxy

Tool nameDescription
proxyStatusCurrent proxy state, configured listeners, and active connection count.
proxyStartStart the proxy listeners.
proxyStopStop all proxy listeners.
proxyConfigureTlsConfigure which hosts have TLS intercepted (MitM). Supports wildcards.
proxyConfigureWriteConfigure what traffic is written to history, including content type filtering.

Rewrite

Tool nameDescription
rewriteCreateCreate a rewrite rule that modifies requests, modifies responses, mocks, or drops traffic.
rewriteListList all rewrite rules in the project.
rewriteGetFull details of a rewrite rule, including match conditions and actions.
rewriteUpdateModify an existing rewrite rule.
rewriteDeleteDelete rewrite rules by index.

Script

Tool nameDescription
scriptCreateCreate a JavaScript script that runs on matching proxy traffic (onRequest, onResponse).
scriptListList all scripts with match conditions and enabled state.
scriptGetFull details of a script, including source code.
scriptUpdateModify an existing script.
scriptDeleteDelete scripts by index.

Send

Tool nameDescription
sendSend an HTTP request directly, bypassing the proxy and leaving no artifact in the project. Use editorCreate + editorSend instead when you want the request to be visible in the UI.
sendBatchSend multiple HTTP requests concurrently with configurable parallelism.

Show

Tool nameDescription
showBring a Proxygen UI surface to the front and optionally select a specific item inside it.

Sockets

Tool nameDescription
socketsSummaryOverview of WebSocket and SSE channels and messages in the project.
socketsListList socket messages with filtering and sorting.
socketsGetFull details of a single socket message.
socketsSearchAdvanced rule-based search across socket messages.
socketsExtractExtract values from matching socket messages using JSONPath, XPath, or regex. Supports combining or collectioning results.
socketsUpdateSet flag and/or notes on socket messages.
socketsFilterSetConfigure the Sockets view filter so findings are surfaced in the UI.
socketsDeleteDelete specific socket messages by UUID.
socketsClearClear all socket channels and messages from the project.

Test

Tool nameDescription
testListList all test collections, tests, and requests in the project.
testCreateCreate a test configuration (not run). Uses §placeholder§ markers in the raw request for payload substitution (distinct from {{variable}} environment variables).
testGetDetails of a test collection, its tests, requests, and configuration.
testRunRun a test by collection ID.
testStatusPoll status of the current test run: progress, pass/fail counts, elapsed time.
testResultsDetailed paginated results from the current or last test run.
testStopStop the currently running test.
testDeleteDelete test collections by UUID.

Transform

Tool nameDescription
transformApplyApply chained data transformations: encoding, hashing, compression, text ops, string manipulation.
transformListOperationsList all available transform operations with descriptions and parameters.
transformListRecipesList all saved transform recipes.
transformCreateRecipeCreate a persistent Transform recipe.
transformDeleteRecipeDelete transform recipes by UUID.

Variable

Tool nameDescription
variableEnvironmentSetSet the active variable environment.
variableListList all variables in the current and default environment.
variableGetGet a variable’s resolved value by name.
variableSetSet a variable value in the current or a specific environment.
variableDeleteDelete one or more variables by name.

navigate_before Backup and Restore

Transfer to a different …

Listener Options navigate_next

Set up proxy listeners using …