Skip to main content
Glama
HatoUP
by HatoUP

Start an authorized purchase

create_checkout
Idempotent

Creates a private Stripe checkout for an offer after purchase intent and returns a payment authorization link; it does not charge the buyer's card.

Instructions

Create a private Stripe checkout for a current offer after the user expresses purchase intent. Explain price, duration and annual renewal before proceeding. This tool does not charge a card: give checkoutUrl privately to the buyer for payment authorization. Reuse the exact requestId/input after uncertainty; never create a replacement checkout to retry. Pro and Studio passes accept months=1–12 and never auto-renew; annual offers are recurring. Requires billing:checkout.

Input Schema

NameRequiredDescriptionDefault
monthsNo
offerIdYes
requestIdYes

Output Schema

NameRequiredDescriptionDefault
idYes
monthsYes
offerIdYes
currencyYes
amountCentsYes
checkoutUrlYes
paymentStatusYes
checkoutStatusYes
fulfillmentStatusYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare non-read-only, open-world, idempotent, non-destructive, but the description adds the operationally critical details those hints omit: no card charge occurs, the URL must be shared privately, idempotency applies to requestId reuse, and renewal behavior differs by offer type. This is exactly the context an agent needs to avoid duplicate or leaked checkouts.

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

Conciseness5/5

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

Five tight sentences, purpose front-loaded, followed by the payment-safety caveat, retry rule, and offer semantics in descending order of importance. No filler or restatement of the name.

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?

An output schema exists, so return shapes need not be spelled out, yet the description still signals that a checkoutUrl is produced. For a three-parameter, open-world mutation the description covers permissions, side-effect boundaries, idempotency and renewal behavior.

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 description coverage is 0%, so the description must compensate, and it largely does: months is bounded 1–12 and scoped to Pro/Studio passes, annual offers are recurring, requestId reuse semantics are stated. It stops short of explaining the requestId pattern or enumerating which offerId values are monthly vs annual, leaving a small gap.

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 and resource ('Create a private Stripe checkout') plus the trigger condition ('after the user expresses purchase intent'). An agent can distinguish it from siblings like get_checkout and create_scoreboard without opening 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 Guidelines5/5

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

Explicit about when to use (user expresses purchase intent), when the tool is not sufficient (does not charge a card — hand checkoutUrl to the buyer), and the retry policy (reuse exact requestId/input, never create a replacement checkout). It also names the prerequisite scope 'billing:checkout'.

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