Skip to main content
Glama

ProveCart: check a reservation before payment

provecart_check_reservation

Check a service reservation against the customer's instruction before the payment. Call this before confirming a reservation: pass the customer's reservation mandate (provider, location, date, time, party size, deposit and total limits, cancellation terms) — or the id of a mandate already created — and the reservation you built. ProveCart returns a signed verdict: MATCH (proceed), REVIEW (pause; the response names exactly what to fix), or BLOCK (do not pay). Every check leaves a sealed evidence record. ProveCart never holds or moves money. Non-MATCH responses follow the Agent Correction Format (ACF): a machine-readable corrections array (dimension, action, expected, actual, reason), a retry budget, and a sealed evidence pointer — spec: https://provecart.com/standards/correction-format. Requires an integrator API key in the X-API-Key header of the MCP request.

Input Schema

NameRequiredDescriptionDefault
mandateNoThe customer's instruction as a mandate object (the shape of the REST mandate endpoint for this kind). Provide either 'mandate' or 'mandate_id'.
mandate_idNoThe id of a mandate already created through the REST API. Provide either 'mandate' or 'mandate_id'.
reservationYesThe reservation the agent built: provider, location, date, time, party size, name, deposit, total, cancellation (the shape of POST /verify-reservation, without mandate_id).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Adds substantial behavior beyond the annotations: the three verdicts and what each implies, the Agent Correction Format for non-MATCH responses, the retry budget, the sealed evidence record, the no-money-movement guarantee, and the required X-API-Key header. The change is limited by one gap: it does not reiterate that non-MATCH responses should not be silently retried past the budget beyond a brief mention.

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?

Information is front-loaded: purpose first, then call timing, inputs, and return semantics. Dense but every sentence carries operative content, though the ACF specification link and the collection of format details make it longer than necessary for a three-parameter tool.

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?

With no output schema, the description fully accounts for return values (verdicts, corrections array, evidence pointer) and covers the authentication requirement, so an agent can invoke the tool correctly without further documentation. Nothing material is missing for a validation-only tool.

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?

Clarifies the either-or relationship between 'mandate' and 'mandate_id' and enumerates the semantically important mandate fields (provider, location, date, time, party size, deposit and total limits, cancellation terms), helping an agent understand what must be carried over from the customer instruction. Schema descriptions already document both fields, so the description leaves most of the remaining field-level details 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?

States a specific verb and resource ('Check a service reservation against the customer's instruction before the payment') and scopes it to reservations, which separates it from the sibling check_booking and check_order tools. It also declares the output contract (MATCH/REVIEW/BLOCK), so an agent knows exactly what the call produces.

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?

Gives clear timing guidance ('Call this before confirming a reservation') and explains the two mutually exclusive input paths (inline mandate vs. mandate_id). It never explicitly contrasts itself with the similarly named sibling checks (check_booking, check_order) or states when not to call it, so it stops short of full routing 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.

Resources