Skip to main content
Glama

hold_ask

Pay now, collect answers later (hold/relay). Deposit $1–$5. Alias of create_ask. The asker post field is price_cents, not deposit_cents. Optional text is detail, not body. Unknown fields are rejected. Returns a flat object with top-level url, mode, unlock_token, callback_secret, and ask. callback_secret is returned once. Callbacks send X-World-Poll-Signature. Pay url in Stripe test mode (card 4242 4242 4242 4242). The success URL does not include unlock_token. Do not scrape it. Pass callback_url to receive event unlock.completed (includes unlock_token, no answer bodies) when payment clears, then answer_ask for free, then get_ask. Before payment, get_ask stays locked and answer_ask returns HTTP 409. Event ask.closed has no token and no answer bodies. Every Checkout session is USD and adaptive pricing is off. Poll unlock $1. Asker posts $1–$5. Reader unlock $1. Answers are free.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesQuestion to post on the ask board.
detailNoOptional context for answerers. Canonical name: detail. body is the answer field on answer_ask, not this field.
is_sampleNoOperator test ask. Hidden from GET /api/asks and the catalog unless include_samples is set. Titles containing dogfood, WP Integrator, or WP Buyer are samples even when this is omitted.
expires_atNoISO-8601 timestamp. Default is 24 hours from create. Maximum is 7 days.
payer_typeNoEvery Checkout session is USD and adaptive pricing is off. Omitted means human on this tool.
max_answersNoClose the ask after this many answers. Default 20.
price_centsNoAsker post in cents. Canonical name: price_cents. $1–$5 (100–500). Default 100. deposit_cents is rejected.
callback_urlNoPublic http or https URL, at most 500 characters. Production refuses private and loopback hosts. World Poll POSTs application/json to this URL. Event unlock.completed fires when the asker's unlock completes and includes unlock_token. Event ask.closed fires when max_answers or expires_at closes the ask and omits the token and answer bodies. Read answers with get_ask.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / detail / description
      Previous value: -"Optional context for answerers."New value: +"Optional context for answerers. Canonical name: detail. body is the answer field on answer_ask, not this field."
    • addedInput schema / properties / is_sample
      Added value: +{
      +  "description": "Operator test ask. Hidden from GET /api/asks and the catalog unless include_samples is set. Titles containing dogfood, WP Integrator, or WP Buyer are samples even when this is omitted.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / price_cents / description
      Previous value: -"Hold/relay deposit in cents. $1–$5 (100–500). Default 100."New value: +"Asker post in cents. Canonical name: price_cents. $1–$5 (100–500). Default 100. deposit_cents is rejected."
  2. Added

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses callback_secret is returned once, the X-World-Poll-Signature header, the unlock_token absence from the success URL, the 409 pre-payment error, event payload contents, and Stripe test card. This is exactly the kind of behavioral context an agent needs for a payment-gated mutation tool.

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

Conciseness3/5

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

The critical purpose and alias relationship are front-loaded, but the body becomes a dense stream of facts with redundancy — USD/adaptive-pricing-off appears both here and in the payer_type schema description, and the closing '$1–$5 / $1 / free' recap repeats pricing already stated. It survives as viable but wastes space on repetition.

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

Completeness4/5

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

With no output schema and no annotations, the description fills most gaps by enumerating the flat return fields (url, mode, unlock_token, callback_secret, ask) and describing async callback behavior and failure modes. It does not detail the contents of the nested 'ask' object, leaving a minor hole for a tool with no structured output contract.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds genuine disambiguation beyond the schema: 'the asker post field is price_cents, not deposit_cents', 'detail, not body', and 'unknown fields are rejected'. These naming traps are the highest-value additions an agent could get.

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

Purpose4/5

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

States a specific model ('Pay now, collect answers later (hold/relay)') and explicitly identifies itself as an alias of create_ask, which is useful for distinguishing it from siblings. The core purpose is clear even though the opening is compressed with pricing detail. It stops short of a clean one-line verb+resource framing.

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?

Lays out the full workflow sequence: pass callback_url, wait for unlock.completed, then answer_ask, then get_ask, and notes that before payment get_ask is locked and answer_ask returns 409. It names related tools but does not explicitly say when to prefer hold_ask over relay_ask or create_ask beyond calling itself an alias.

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