Skip to main content
Glama

purchase execute

wever_purchase-execute
DestructiveIdempotent

Execute a purchase after customer approval, without merchant review. Explicitly delegated customer agents may supply customer_approval attesting their human approved the exact saved quote and address: quote_sha256, exact amount_atomic in six-decimal USDC, currency USD, approval_text from the quote, approved_at Unix seconds and a stable approval_id. Never supply consent before the human approves. Other agents require the human review page. Approval is recorded before AP2 and escrow funding; no immediate treasury release. Omit customer_approval to retry an already approved intent. Exact retries reuse saved requests and cannot replace consent or create a second payment. Requires X-Wever-Agent-Key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
intent_idYes
customer_approvalNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / customer_approval
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "amount_atomic": {
      +      "pattern": "^[1-9][0-9]{0,8}$",
      +      "type": "string"
      +    },
      +    "approval_id": {
      +      "pattern": "^[A-Za-z0-9_-]{16,64}(?![\\s\\S])",
      +      "type": "string"
      +    },
      +    "approval_text": {
      +      "maxLength": 120,
      +      "minLength": 1,
      +      "pattern": "^[^\\u0000-\\u001f\\u007f]+$",
      +      "type": "string"
      +    },
      +    "approved_at": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "currency": {
      +      "const": "USD"
      +    },
      +    "quote_sha256": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "quote_sha256",
      +    "amount_atomic",
      +    "currency",
      +    "approval_text",
      +    "approved_at",
      +    "approval_id"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare the safety profile (destructive, idempotent, open-world), and the description adds behavior beyond that: approval is recorded before AP2 and escrow funding, there is no immediate treasury release, and exact retries reuse saved requests and 'cannot replace consent or create a second payment.' It also states the auth requirement (X-Wever-Agent-Key), which no annotation conveys.

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?

Each sentence adds a distinct constraint (consent rules, side-effect ordering, retry semantics, auth), and the primary purpose is front-loaded. It is dense and long, but there is little that could be dropped without losing a real constraint.

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?

For a complex, money-moving tool with a nested object, no output schema, and 0% schema coverage, the description covers purpose, caller eligibility, consent validity, side-effect ordering, idempotency, and auth. It stops short of describing failure modes or the state returned after execution, leaving a small residual gap.

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?

With 0% schema description coverage, the description carries the burden and mostly succeeds, giving meaning to every nested customer_approval field (quote_sha256 as the saved quote hash, amount_atomic as six-decimal USDC, currency USD, approval_text from the quote, approved_at as Unix seconds, stable approval_id). The one gap is intent_id itself, whose role is only implied rather than described.

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+resource+condition: 'Execute a purchase after customer approval, without merchant review.' This cleanly separates it from siblings like wever_purchase-create-intent (which creates the intent) and wever_purchase-status (which only reads state). An agent can select it without opening the 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?

It explicitly routes by caller type: delegated customer agents may supply customer_approval attesting human consent, while 'Other agents require the human review page.' It also states when to omit the field ('to retry an already approved intent') and draws a hard boundary: 'Never supply consent before the human approves.' This is complete when/when-not/alternative guidance.

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.