Skip to main content
Glama

Create Booking

create_booking

Book a charter with a captain. A captain with Instant Book on returns a Stripe Checkout link (payment.kind checkout_link) for the charterer to complete payment. A captain who reviews every request first (get_quote's instantBook: false) is sent a request instead: nothing is charged, the result is a request with the estimated total and deposit, and if the captain accepts, the charterer is emailed a link to pay. Optionally attach a partner/affiliate code to credit a referrer; partnerCode can't be used on a request (PARTNER_CODE_NOT_AVAILABLE_FOR_REQUESTS). harborId must be a harbor this captain departs from: one of get_captain's harbors, or any list_harbors harbor when get_captain lists none. create_booking refuses any other harbor with HARBOR_NOT_OFFERED, and that error's harbors field lists the ones the captain departs from.

Input Schema

NameRequiredDescriptionDefault
dateYes
emailYes
phoneYes
harborIdYes
lastNameYes
firstNameYes
partySizeYes
startTimeYes
durationIdYes
captainSlugYes
partnerCodeNo
pricingTierIdYes
specialRequestsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / email / maxLength
      Added value: +254
    • changedInput schema / properties / email / pattern
      Previous value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    • addedInput schema / properties / firstName / maxLength
      Added value: +100
    • addedInput schema / properties / lastName / maxLength
      Added value: +100
    • addedInput schema / properties / phone / maxLength
      Added value: +40
  2. Changed1 schema field changed
    • changedInput schema / properties / partySize / maximum
      Previous value: -9007199254740991New value: +13
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare the generic write profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description goes well beyond that: it discloses that money is actually charged in the instant-book path, that the request path charges nothing and produces a pending request with estimated total and deposit, and it names two specific error codes (PARTNER_CODE_NOT_AVAILABLE_FOR_REQUESTS, HARBOR_NOT_OFFERED) plus the harbors field on the error. That is exactly the side-effect detail an agent needs before committing a payment flow.

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?

It's a single dense paragraph but front-loaded with the core action and the two outcome branches before the constraint details. Nearly every sentence carries a distinct rule; the harbor-constraint material is stated twice (the rule and then restated via the error), which is mild redundancy but defensible as emphasis.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-required-parameter mutation tool with no output schema, the description does unusually well on outcomes and errors, but leaves the sourcing of the identifier parameters unexplained, which is the main thing that will cause a failed call. Given the tool's complexity, one more sentence on where durationId/pricingTierId/captainSlug originate would make it complete.

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

Parameters2/5

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

With 13 parameters at 0% schema description coverage, the description carries the full burden and only explains two of them: harborId's provenance/constraint and partnerCode's restriction. It never says where durationId, pricingTierId, or captainSlug come from (presumably get_quote/get_captain), nor why partySize, specialRequests, or the contact fields matter. The two IDs are the highest-risk inputs and are entirely undefined.

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?

"Book a charter with a captain" gives a specific verb and resource, and the description immediately distinguishes the captain-charter flow from the sibling create_boat_rental by naming the captain/intermediary model. It also splits the operation into its two distinct outcomes (instant-book checkout vs. request), so an agent knows exactly what this 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?

It tells the agent to consult get_quote's instantBook flag and get_captain's harbors before calling, and states the condition under which partnerCode is invalid. What's missing is explicit routing against alternatives — it never says when to prefer create_boat_rental, or that availability should be checked first with check_availability.

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