Skip to main content
Glama

Withdraw a request you sent

withdraw_request
Destructive

Take back a request you sent, while it is still pending. Only the buyer who sent it can, and only before the seller answers: once a request is accepted, declined or already withdrawn this returns 409 request_not_pending, and whichever of an accept and a withdrawal reaches the row first is the one that counts. Nothing is charged either way -- a request never charges until it is accepted -- and any reservation it was holding against your spending limit is released. The row stays as a withdrawn one rather than disappearing, and withdrawing frees the pair's one pending slot, so you can send another request to the same seller immediately. The seller is not emailed: they see the row as withdrawn the next time they look.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
request_idYesThe request's UUID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far exceeds the annotations: it names the exact failure mode (409 request_not_pending), states no charge occurs until acceptance, notes the spending-limit reservation is released, explains the row persists as withdrawn, and discloses that the pair's single pending slot is freed and the seller is not emailed. The non-idempotent behavior is also consistent with idempotentHint=false, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and eligibility are front-loaded in the first sentence, and the dense run-on paragraph covers error codes, side effects, and state consequences without wasted words. It is long but every clause carries distinct information; slight cost for being a single unbroken block instead of clearly segmented points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter state-mutating tool with no output schema, the description covers success conditions, the exact error code, financial side effects, reservation release, and downstream state changes (row persistence, slot freeing). Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, request_id, with 100% schema description coverage ('The request's UUID'), so the schema already carries the parameter semantics. The description adds an implicit constraint that the request must be one you sent, but no new syntax or format detail, making 3 the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (take back) and resource (a request you sent) with the exact eligibility window ('while it is still pending'). It clearly distinguishes itself from sibling mutations like accept_request, decline_request, and withdraw_bid by scoping to the buyer-sent request that the sender retracts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit preconditions: only the buyer who sent it, only before the seller answers, and only while pending. It even resolves the competing-path question by stating that whichever of accept or withdrawal reaches the row first wins, so the agent knows when this call will succeed versus fail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources