api_prepare_request
Prepare a saved request or partial draft; resolve environment, runtime variables and overrides without sending. Returns a fixed redacted preview and preparedId. No scripts are run. Secrets remain host-side. Optional extractions bind response values into host-side runtime variables so later reques...
This record as markdown: /tools/dutydeck/api-prepare-request.md
What api_prepare_request does on DutyDeck
AI agents invoke api_prepare_request to trigger actions in DutyDeck. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.
Why api_prepare_request is rated High
api_prepare_request triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.
Risk signalsBulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs api_prepare_request safely
PolicyLayer is an MCP gateway: it sits between your AI agents and DutyDeck, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For api_prepare_request, this is the rule to start with:
api_prepare_request stays usable, but rate-capped: a runaway agent can't fire it dozens of times a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect DutyDeck, apply this rule, and every api_prepare_request call is checked against it from then on.
Questions about api_prepare_request
Prepare a saved request or partial draft; resolve environment, runtime variables and overrides without sending. Returns a fixed redacted preview and preparedId. No scripts are run. Secrets remain host-side. Optional extractions bind response values into host-side runtime variables so later requests can use {{name}}; extracted values are never returned to the model. request.cases replaces the whole named test-case list for this request: cases you add are stamped as agent-authored and must be reviewed by a human before they count as acceptance evidence, and cases a human created cannot be modified or deleted (the host rejects that with API_WORKBENCH_USER_CASE_PROTECTED). caseId runs one existing case with its own assertions. useCookieJar defaults to off and only touches host-side in-memory cookies for this project; cookie values never come back to you. To upload local files, set body.kind to multipart and list body.files as {id, name (form field), path} entries: the host resolves realpath and file size, shows every path on the approval card, and only reads the bytes after the human approves the send; the saved request keeps file references only, so a later session must re-declare paths. Directories, devices, FIFOs, dangling links and files over 20 MiB are rejected, and a file changed after preparation is rejected instead of being uploaded. Prepare a new identity only for an intentional new network request. It is categorised as a Execute tool in the DutyDeck MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.
Register the DutyDeck MCP server in PolicyLayer and add a rule for api_prepare_request: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches DutyDeck. Nothing to install.
api_prepare_request is a Execute tool with high risk. Execute tools should be rate-limited and have argument validation enabled.
Yes. Add a rate_limit block to the api_prepare_request rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for api_prepare_request. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
api_prepare_request is provided by the DutyDeck MCP server (taokoplay/DutyDeck). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on DutyDeck, and thousands of servers like it.
Across the catalogue