Skip to main content
Glama

Start a booking

request_booking
Idempotent

Start a booking with a Canopy-connected business. Canopy automatically routes to the correct flow based on the operator's booking mode: auto-confirm (booked right away in the business's calendar; the customer is emailed a confirmation), request-times (propose preferred times), or submission-only (callback request). Summarize the booking and get the customer's go-ahead before calling.

Input Schema

NameRequiredDescriptionDefault
notesNoExtra details for the business (added to the customer notes).
slot_idNoOpen slot from get_availability (instant-confirm businesses).
customerYesThe customer the appointment or callback is for.
service_idNoService to book (from get_availability). Needed for instant-confirm and preferred-times businesses.
location_idNoLocation for multi-location businesses.
operator_idYesoperator_id from canopy_check_bookable or resolve_business.
customer_zipNoCustomer's ZIP code, if known. For a business with several locations, Canopy uses the location nearest to it unless location_id (or a slot or service tied to one location) decides. The result names the location used.
idempotency_keyNoOptional. Reuse the same key when retrying so nothing is created twice. Derived automatically if omitted.
preferred_timesNo1 to 3 preferred time windows (businesses that review requests).
agent_callback_urlNoOptional HTTPS URL that receives a webhook when the business responds.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=true, openWorld=true, but the description adds real substance beyond them: each mode's real-world effect (auto-confirm writes to the business calendar and emails the customer; request-times proposes times; submission-only files a callback request). It does not cover failure behavior, whether a booking can be withdrawn afterwards, or auth requirements.

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 sentences, front-loaded with the action and the routing rule, ending with the confirmation step. No filler and no restatement of the title or schema.

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?

With 10 parameters, a nested customer object, and no output schema, the description covers the important unstated thing: that the mode is operator-determined and changes what actually happens. It leaves out how the agent discovers the operator's mode and what the call returns, though the schema points at get_availability and canopy_check_bookable for inputs.

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 description coverage is 100%, including notes on which mode each parameter serves (slot_id for instant-confirm, preferred_times for reviewed requests, customer_zip for multi-location disambiguation). The description adds no per-parameter meaning beyond that, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Start a booking with a Canopy-connected business') and explains that Canopy routes to one of three flows, which separates it from the narrower siblings like propose_times and request_callback. It never explicitly names those siblings, so an agent must infer that this tool subsumes some of their behavior.

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 a concrete pre-call protocol: 'Summarize the booking and get the customer's go-ahead before calling.' That is genuine usage guidance. It stops short of stating when-not to use it or which sibling to pick instead for a given operator mode, leaving the routing consequence implicit.

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