proxypilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_map_localC | Mock responses: matching requests get this content instead of (or, with mode=body_only, on top of) the server's answer. Expires after ttl (default 1h). |
| add_map_remoteA | Send matching requests to another server, e.g. prod → staging or a local dev server. A trailing * on |
| add_rewriteA | Edit matching traffic in flight. Steps run in order. Types: set_header/add_header {name,value}, remove_header {name}, set_query {name,value} / remove_query {name} (request), replace_body {pattern,value,regex}, json_set {path:"$.user.isPremium", value:"true"} (value is JSON text), json_remove {path}, set_status {status} (response), set_url {value} / set_path {value} (request). Compressed bodies are decoded first. |
| clear_agent_rulesA | Delete every rule you created. Do this when you are done mocking or intercepting. |
| clear_sessionA | Delete all recorded traffic (the user's too). Only do this when the user asked for a clean slate. |
| diff_flowsA | What changed from request a to request b: method, host, path, each query parameter, headers, status, and bodies (JSON by path like $.items[0].price, text by line). Use it to compare a working request with a failing one, or before and after an app change. Only differences are returned; secrets stay masked. |
| get_requestA | One request: timing, headers and a decoded body excerpt. Use path to pick part of a JSON body, offset to read on. |
| get_statusB | Daemon state: proxy address, flow count, active rules, paused breakpoints, whether recording. |
| get_websocket_messagesB | Messages of a WebSocket (status 101) request, oldest first. dir up = app → server, down = server → app. Page with after = previous next. |
| list_requestsC | Recent requests, newest first, one text line each (see format). Filter rather than paging. |
| list_rulesB | All rules in evaluation order. You may only change rules whose owner is you (see get_status). |
| remove_ruleC | Delete one of your rules. |
| repeat_requestA | Send a recorded request again, optionally edited (rules apply unless bypass_rules). Returns the new ids with status and time. |
| resume_breakpointA | Continue, edit (modify) or abort a flow paused by your breakpoint. Edits apply to the paused phase (request or response). |
| search_trafficA | Find requests whose URL, headers or body contain some text. |
| set_breakpointA | Pause matching requests (before the server) or responses (before the app); then wait_for_breakpoint and resume_breakpoint. Unanswered flows continue after timeout. |
| set_throttleA | Simulate a slow network (latency, then limited bandwidth) to reproduce timeouts and slow-loading bugs. Affects everyone using the proxy: set enabled=false when done. |
| summarize_trafficA | Start here. Totals, status groups, failing endpoints grouped (with the last flow id of each) and the slowest request for a time window. |
| wait_for_breakpointA | Block until one of your breakpoints pauses a flow, then return it for resume_breakpoint. |
| wait_for_requestA | Block until a request whose URL matches completes, then return it. Start this, then trigger the action in the app. |
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 20 tools
Most tools target clearly distinct facets (viewing: list/get/search/diff/summarize; rules: add_map_local/add_map_remote/add_rewrite; breakpoints: set/wait/resume). The only mild overlap is within the rule-creation family, where a user must read descriptions to distinguish mocking from remote redirect from in-flight rewrite, but the distinctions are spelled out.
All names are consistently snake_case verb_noun (list_requests, get_request, add_rewrite, set_throttle, wait_for_breakpoint, clear_session). Minor variation like add_map_local vs add_rewrite reflects resource subtypes but stays within the same predictable pattern.
20 tools is on the heavier side, but the domain genuinely spans traffic recording, viewing, rule manipulation, breakpoints, throttling, and replay, so each tool earns its place. It sits slightly above the ideal range but is defensible for the scope.
Full lifecycle coverage: capture (list/get/search/diff/summarize), mutate (mock/redirect/rewrite/breakpoint/throttle), replay (repeat_request), and cleanup (clear_agent_rules/clear_session). Only trivial gap is no direct edit of an existing rule, which is workable via delete+re-add.