Skip to main content
Glama

Sats4AI - Bitcoin-Powered AI Tools

create_cart

Pay for 2 to 10 calls with ONE Lightning invoice, up to 2,000 sats in all. Each item is { toolName, ...the same inputs create_payment takes for that tool }. The server checks and prices EVERY item first: one bad item refuses the whole cart, with no invoice, and the error names the item by its index. Returns JSON: { cartId, lightningInvoice, totalSats, expiresAt, items: [{ index, toolName, paymentId, amountSats }] }. Pay the ONE invoice. Then call each item's tool with that item's own paymentId, exactly as you would after create_payment. KEEP the paymentIds from this reply: each is the only way to use that item or to be refunded for it, and nothing can show them to you again. check_payment_status(cartId) shows the state of each item (it never repeats the paymentIds). An item you do not use is refunded for its own price after about an hour. Only one-shot tools can be in a cart (text, translation, image tools, document tools, text_to_speech); for calls, SMS, fax, email, video, music and other long jobs use create_payment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesThe calls to pay for. Each item is an object with toolName and the inputs create_payment takes for that tool (for example prompt for generate_text, text and targetLanguage for translate_text).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/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: it discloses the atomic validate-all-first behavior (one bad item refuses the whole cart with no invoice), that the error names the failing item by index, that paymentIds are irrecoverable and unrepeatable, that unused items are refunded after about an hour, and the exact success JSON shape.

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, limits, item construction, failure behavior, return shape, next steps, and exclusions arrive in that order with no filler. It runs long, but each sentence carries distinct operational information; the inline JSON return description is the densest part but is justified by the absence of an output schema.

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?

This is a high-complexity, multi-item payment tool with no annotations and no output schema, and the description still covers item limits, sat cap, validation semantics, error reporting, return shape, paymentId handling, refund timing, and sibling routing. Nothing needed 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.

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 a cross-tool rule the schema only gestures at: each item is '{ toolName, ...the same inputs create_payment takes for that tool }', establishing that per-tool inputs and pricing mirror create_payment. Minor gap in that it doesn't restate per-field semantics, which the schema already covers.

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 first sentence states a specific verb and resource with scope: 'Pay for 2 to 10 calls with ONE Lightning invoice, up to 2,000 sats.' It explicitly distinguishes itself from the create_payment sibling and names the tool categories it accepts, so an agent can identify it without reading 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?

Usage is fully routed: use this for one-shot tools (text, translation, image, document, text_to_speech), use create_payment for calls/SMS/fax/email/video/music and other long jobs. The post-purchase workflow (pay the ONE invoice, then call each item's tool with that item's paymentId) is spelled out step by step.

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.