Skip to main content
Glama

SuVerse

Place an order in the business’s own system; the buyer pays on the platform’s checkout page

place_order

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement. For a business whose card shows an order action with method connected. Shopify: returns the shop’s own checkout link with these items and quantities already in the cart (status: unknown, mode: cart) — no customer data is needed or passed, the buyer gives their details and pays on Shopify, and nothing exists on the shop until they do. Square: an order with a payment link (no customer data either). WhatsApp: a message to the owner (customer phone or email). Returns order_id, status, checkout_url — HAND THE CHECKOUT URL TO THE USER AS IT IS: that page takes the money, SuVerse holds no card and charges nothing. Stock is checked live first on a platform that tracks it; «not in stock» is an unavailable error and no order or link is given. Send an idempotency_key of your own and keep it for a retry: the same key returns the same answer and the same link (repeated: true), never a second one. Lines name offerings by their card id (and variant_id when the card lists several). status: unknown (a cart link: payment is on the platform’s side) · created (the platform holds it) · pending_owner (WhatsApp) · confirmed · declined · failed. Get the user’s explicit yes before calling this. Follow the server instructions «HOW TO USE THE SUVERSE CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

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": {
      "business_id": "<business_id>",
      "lines": "<lines>"
    },
    "name": "place_order"
  }
}

Input Schema

NameRequiredDescriptionDefault
noteNoa note to the business, in the user’s words (not passed on a Shopify cart link)
linesYes
customerNoonly where the platform needs it (WhatsApp); omit for Shopify and Square
business_idYes
idempotency_keyNoyour own key for this order; reuse it on a retry

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare a non-read-only, open-world, non-destructive write, and the description goes well beyond them: live stock check, the `unavailable` error path with no order or link produced, the requirement to hand the checkout URL to the user as-is, the fact that no card is held or charged, and an idempotency-key scheme where a reused key returns the same link with `repeated: true`. The only gap is that `idempotentHint: false` sits in mild tension with the described key behavior and is not reconciled, though it is not a real contradiction since idempotency only applies when the optional key is supplied.

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 consent warning is correctly front-loaded, but the text is dense and partially repetitive — explicit user agreement is stated three times (opening warning, "Get the user's explicit yes", and the closing server-instructions paragraph), and the status enumeration is inline prose rather than a compact list. Substantively every sentence is useful, but the repetition and length cost it.

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?

For a multi-platform mutation tool with no output schema, the description supplies what an agent needs to act safely: per-platform side effects, the returned fields (`order_id`, `status`, `checkout_url`), the full status vocabulary including `unknown`/`pending_owner`, failure modes, and retry semantics. Nothing material about calling or interpreting the result 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?

With schema coverage at 60%, the description carries real weight: it explains that lines reference offerings by card id and need `variant_id` only when the card lists several variants, that `customer` is required only for WhatsApp and should be omitted for Shopify/Square, and that `note` is not forwarded on a Shopify cart link. That meaningfully extends what the schema says, though quantity bounds and line limits are left entirely to the schema.

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 title and description state a concrete verb and resource (place an order in the business's own system, buyer pays on the platform's checkout page) and immediately enumerate what changes per platform: Shopify returns a cart link, Square returns a payment link, WhatsApp messages the owner. It is clearly distinguishable from siblings like quote_order or book_slot because it repeatedly frames itself as the ordering step.

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 gives an explicit precondition ("for a business whose card shows an `order` action with method `connected`") and an explicit gate ("call it only after the user has explicitly agreed to this exact action... never on your own judgement", repeated as "Get the user's explicit yes before calling this"). It also states the separation rule from adjacent steps in the same flow — keep reading, quoting, requesting and ordering separate — which tells the agent what not to fold into this call.

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.