Skip to main content
Glama

Create a checkout session

create_checkout

Start a TestWell order for the user: tests/panels, the US state where they will visit the lab (required for pricing and lab routing), and the buyer's name, email and phone. Returns priced line items in cents, the single $6 lab fee, the total, any blocking messages, and pay_online_url — a prefilled cart the user can pay in a browser when the platform has no payment token. Use dry_run to preview without creating a session.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
buyerNo
itemsYes
stateNoUS state code or name where the blood will be drawn
dry_runNoPrice only; do not create a session

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
linksYes
orderNo
statusYes
totalsYes
dry_runNo
currencyYes
messagesYes
line_itemsYes
pay_online_urlNoPrefilled cart for browser payment when the platform has no payment token
fulfillment_optionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the minimal annotations, the description reveals key side effects and behavioral details: it creates a session, supports a dry_run that avoids creation, returns blocking messages, prices line items in cents, includes a $6 lab fee, and emits pay_online_url only when there is no payment token. This is rich, non-obvious context that substantially helps an agent predict outcomes.

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?

Three focused sentences carry all essential information: action and inputs, output behavior, and the dry_run exception. There is no filler, and the most decision-relevant information is front-loaded.

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 tool with nested objects and conditional behavior, the description covers inputs, outputs, pricing, blocking messages, the conditional pay URL, and dry_run. Minor gaps remain around quantity semantics and whether buyer/state are truly required given the schema, but the description gives an agent enough to invoke the tool confidently.

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 only 50% schema description coverage, the description compensates by explaining buyer name/email/phone, items as tests/panels, state as the US lab location, and dry_run as a preview mode. It does not explain the quantity field, and the statement that state is 'required' is slightly stronger than the schema's required list, but overall it adds meaningful semantics beyond 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 description opens with a specific action, 'Start a TestWell order,' and clearly enumerates the inputs: tests/panels, state, and buyer information. It also distinguishes this creation tool from sibling completion/update tools by framing it as the start of a checkout session rather than an update or quote-only operation.

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?

It explicitly explains when to use dry_run ('preview without creating a session') and why state is needed ('required for pricing and lab routing'). However, it does not name alternatives like quote_order, complete_checkout, or update_checkout, so routing between siblings is mostly implied rather than explicit.

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