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. A withdrawal that succeeds charges you nothing and releases any reservation the request was holding against your spending limit. A 409 saying the seller accepted first means the request went through and your card was charged, so read the outcome before assuming the money stayed put. 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.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "request_id": "<request_id>"
    },
    "name": "withdraw_request"
  }
}

Input Schema

NameRequiredDescriptionDefault
request_idYesThe request's UUID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

The description goes well beyond the annotations: race semantics against seller acceptance, the 409 request_not_pending outcome, no charge plus reservation release on success, the row persisting as withdrawn, and the freed pending slot enabling an immediate resend. It also discloses the silent side effect that the seller is not emailed, which is exactly the kind of behavior annotations cannot convey.

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?

The critical precondition and the 409 race condition are front-loaded, and there is no filler. It is on the long side, with the 'read the outcome before assuming the money stayed put' sentence partly restating the charging rule already implied earlier, but each clause still carries real operational meaning.

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?

With no output schema, the description still tells the agent everything needed to interpret success and failure: what a withdrawn row means, what a 409 implies about charging, and what capability is regained. Nothing essential to calling this mutation 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, and the schema already documents it at 100% coverage with UUID format and pattern. The description adds nothing about identifier provenance or how to obtain a request_id, so the baseline of 3 applies.

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?

The description opens with a specific verb and resource — 'Take back a request you sent' — and immediately scopes it to the pending window. That phrasing cleanly separates it from siblings like withdraw_bid, decline_request, and cancel_job without the agent needing to open any schema.

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

Usage Guidelines4/5

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

It states the positive case (pending request you sent) and the exclusions (once accepted, declined, or already withdrawn you get a 409), which is strong when/when-not guidance. It stops short of naming an alternative tool for the accepted-request situation, so an agent must infer that no withdrawal path exists at that point.

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