ProxyKit-mcp
Official# proxykit-mcp [](https://glama.ai/mcp/servers/getproxykit/proxykit-mcp)
**Model Context Protocol server for [ProxyKit](https://proxykit.net) — drive a local HTTP(S) debugging proxy from Claude, Cursor, and any MCP host.**
`proxykit-mcp` is a small stdio binary that exposes a running ProxyKit engine to
MCP clients. Every tool call is one HTTP call to the engine's control API on
`127.0.0.1` — the server holds no traffic of its own and talks to nothing off
your machine.
> "Mock the checkout endpoint to fail half the time." · "Summarize the last 500
> captured requests against my baseline." · "Add 800 ms of latency to
> /api/payments and replay the session."
>
> Typed into your editor, run against real traffic ProxyKit already captured.
- **Website:** https://proxykit.net
- **Setup guide (all hosts):** https://proxykit.net/mcp
- **CLI reference:** https://proxykit.net/docs
This repository is the public home of the `proxykit-mcp` server — its docs,
tool reference, and MCP registry metadata. The engine and desktop app are
[ProxyKit](https://proxykit.net), a proprietary product with a free tier.
---
## Install
The binary ships inside every ProxyKit CLI archive **and** inside the desktop
app. Pick whichever you already have.
### With Homebrew (CLI)
```bash
brew install getproxykit/tap/proxykit-cli
```
That puts `proxykit`, `proxy-engine`, and `proxykit-mcp` on your PATH.
### With WinGet (Windows)
```powershell
winget install ProxyKit.ProxyKitCLI
```
### From the desktop app
Download from https://proxykit.net/download. The binary is bundled at:
```
macOS /Applications/ProxyKit.app/Contents/Resources/proxykit-mcp
Windows C:\Program Files\ProxyKit\resources\proxykit-mcp.exe
Linux (AppImage) squashfs-root/resources/proxykit-mcp
```
---
## Connect an MCP host
The engine writes a `control.token` file on startup; point the MCP server at
that file — **never paste the token into the config**. Add this to your host's
MCP config (`~/.cursor/mcp.json`, Claude Desktop's `claude_desktop_config.json`,
`.mcp.json`, …):
```jsonc
{
"mcpServers": {
"proxykit": {
"command": "proxykit-mcp",
"env": {
"PROXYKIT_CONTROL_AUTH_TOKEN_FILE": "~/.config/ProxyKit/control.token",
"PROXYKIT_MCP_TIER": "readonly"
}
}
}
}
```
Start ProxyKit (desktop or `proxykit start --headless`), restart your MCP host,
and ask it: *"List my latest captured traffic in ProxyKit."*
Per-client paths and one-click install from the desktop app are documented at
**https://proxykit.net/mcp**.
### Environment variables
| Variable | Purpose |
|---|---|
| `PROXYKIT_CONTROL_AUTH_TOKEN_FILE` | Path to the engine's `control.token`. Preferred over the raw token. |
| `PROXYKIT_CONTROL_AUTH_TOKEN` | The token directly (use the `_FILE` form instead where possible). |
| `PROXYKIT_MCP_TIER` | Comma-separated allowlist: `readonly` (default), `mutate`, `capture`, `analysis`, `replay`. |
| `PROXYKIT_ENGINE_URL` | Engine control API. Defaults to `http://127.0.0.1:17171`. |
---
## Safety model
- **Local only.** The server calls `127.0.0.1:17171`. The engine binds loopback
and rejects non-loopback callers.
- **Token-gated.** Every control call carries `X-Proxykit-Control-Token`. No
token, no access.
- **Least privilege by tier.** `readonly` is the default and can only read.
Anything that mutates rules, controls capture, or replays traffic is off
until you opt its tier in — so an agent can't create a mock or clear your
capture unless you explicitly allowed that tier.
- **Redacted at the source.** Response bodies are redacted server-side before
they reach the agent.
---
## Tools
50 tools across five tiers. `readonly` is enabled by default; the rest are
opt-in via `PROXYKIT_MCP_TIER`.
### `readonly` — read state (default)
| Tool | Does |
|---|---|
| `proxy_status` | Is the proxy running, what port, TLS configured, buffer size |
| `list_traffic` | List captured requests; filter by method/URL/status, paged |
| `get_request` | Full headers + redacted body of one request |
| `search_traffic` | Substring search across captured URLs |
| `list_mock_rules` | Configured mock rules |
| `list_rewrite_rules` | Configured rewrite rules |
| `list_chaos_rules` | Configured chaos (latency/error injection) rules |
| `list_scripts` | Installed JS hook scripts |
| `list_sessions` | Named capture sessions |
| `get_session` | One session's manifest + baseline |
| `list_findings` | Privacy / schema / performance / lint findings |
| `get_findings_summary` | Finding counts by severity and category |
| `list_environments` | Environments and the active one (secrets redacted) |
| `list_paused_breakpoints` | Requests paused awaiting review |
| `list_rule_packs` | Installed rule packs |
| `get_ca_status` | Whether a CA root is available (public PEM only) |
### `mutate` — edit rules
`create_mock_rule`, `update_mock_rule`, `delete_mock_rule`, `toggle_mock_rule`,
`create_mock_from_request`, `create_rewrite_rule`, `update_rewrite_rule`,
`delete_rewrite_rule`, `toggle_rewrite_rule`, `create_chaos_rule`,
`update_chaos_rule`, `delete_chaos_rule`, `toggle_chaos_rule`,
`attach_environment`
### `capture` — control capture
`start_capture`, `stop_capture`, `clear_traffic`, `release_breakpoint`
### `analysis` — AI + findings workflows
`analyze_request`, `rescan_findings`, `dismiss_finding`, `restore_finding`,
`propose_redaction_rules`, `run_ai_workflow`, `compare_sessions`
### `replay` — sessions, replay, rule packs
`start_session`, `stop_session`, `delete_session`, `replay_session`,
`replay_request`, `import_rule_pack`, `install_rule_pack`, `export_rule_pack`,
`delete_rule_pack`
---
## License
**This repository** — the docs, `Dockerfile`, and registry metadata — is MIT
licensed (see [LICENSE](./LICENSE)); reuse it freely.
**ProxyKit itself** — the `proxykit-mcp` binary and the engine it drives — is
proprietary software © 2026 Seyed Ahmad Sarollahi, licensed under
https://proxykit.net/terms#license. Nothing in this repository grants any right
to the ProxyKit software; the binary is downloaded from the release server at
build time under its own terms.
TDQS
Scored across 50 tools
Tools cluster into clear functional families (traffic, sessions, mocks, rewrites, chaos, findings, rule packs), and descriptions carefully differentiate the three parallel rule types. Minor overlap remains between list_traffic and search_traffic, and create_mock_rule vs create_mock_from_request, but boundaries are mostly inferable.
Nearly every tool follows a strict snake_case verb_noun pattern (list_*, get_*, create_*, update_*, delete_*, toggle_*, start_*/stop_*, replay_*, import_/install_/export_*). The few noun-phrased tools like proxy_status and get_ca_status still fit cleanly. Consistency is excellent.
At 50 tools the surface is very heavy, with three separate rule families (mock/rewrite/chaos) each carrying a full 5-6 tool CRUD set, plus sessions, findings, packs, envs, breakpoints, and scripts. The domain is broad, but the count sits at the extreme end and invites consolidation.
Coverage of the capture/replay/rule/findings lifecycle is thorough, including rule packs, environments, breakpoints, and CA status. Gaps are minor but real: scripts expose only list_scripts (no create/update/delete), breakpoints have no creation tool, and redaction rule installation is deliberately not exposed over MCP.