Skip to main content
Glama

Commerce for Agents

Open Booking Form

start-booking
Read-onlyIdempotent

Opens the booking form for an offer from a comparison. This call submits, stores and sends NOTHING — it only renders the form; the user decides inside the form whether to file the request. Call it IMMEDIATELY and WITHOUT asking for confirmation, with the ref and the language of the conversation, whenever the user asks for the form or wants a tariff ('Bitte öffne das Buchungsformular', 'open the booking form', 'ich möchte diesen Tarif', 'den nehme ich', 'book #2', 'switch me to this'); a message like that usually comes from the 'Jetzt buchen' button the user just clicked. Do NOT collect any data first and never ask for personal data, an IBAN or consent in the chat: the form below the message takes everything (contract details on the first page, IBAN and consent on the second) and files the request itself. There is no self-service checkout link — never promise or invent one. After the call, say in one sentence that the form is shown below and that the user completes the booking there. Keywords: Buchungsformular öffnen, Tarif buchen, wechseln, Wechsel beauftragen, Vertrag abschließen, Wechselservice, open booking form, book, switch, sign up.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
refYesOffer reference from a compare-tariffs result (field `ref`). No personal data.
languageNoLanguage of the conversation; the booking form uses it. Default: de.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
refYes
cityNo
tariffYes
languageYes
providerYes
energyTypeYes
postalCodeYes
instructionYes
monthlyAvgEurYes
annualTotalEurYes
providerLogoUrlNo
annualConsumptionKwhYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Why are you calling this tool? Briefly describe the user's goal.",
      -  "type": "string"
      -}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description goes beyond these by explaining exactly what happens: the call only renders the form, the user completes and files the request inside the form, and the form collects contract details, IBAN, and consent. It also preemptively warns against promising a non-existent self-service checkout link.

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?

The description is long but well-structured: core behavior first, then trigger conditions, then prohibitions, then post-call behavior, then keywords. It is more verbose than strictly necessary—the keyword list repeats examples already given—but the density of actionable guidance justifies most of the length.

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 tool with only two simple parameters, an output schema, and strong annotations, the description covers every angle an agent needs: when to invoke, what data to pass, what not to do beforehand, what happens after the call, and even the exact follow-up sentence to say to the user. Nothing important is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already fully documents both `ref` and `language`. The description reinforces that `ref` comes from a compare-tariffs result and `language` should be the conversation language, but it adds no semantic detail beyond the schema's own descriptions. Baseline 3 is appropriate.

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 states a specific action ('Opens the booking form'), the object ('an offer from a comparison'), and immediately clarifies what the tool does NOT do ('submits, stores and sends NOTHING'). This clearly differentiates it from siblings like book-contract or submit-switch-request, which would actually file a booking.

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?

The description gives explicit when-to-call guidance ('IMMEDIATELY and WITHOUT asking for confirmation... whenever the user asks for the form or wants a tariff'), including concrete trigger phrases in German and English. It also provides strong when-not-to-call guidance: do not collect data, never ask for personal data/IBAN/consent in chat, and never invent a self-service checkout link.

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