Skip to main content
Glama

Read an existing own booking

get_booking_status
Read-onlyIdempotent

Use this when reading the OAuth-selected existing booking’s current recorded booking, payment and assignment state. Do not use for its timeline (use get_booking_history instead). For its existing unpaid checkout use get_booking_payment_review; for original submission recovery use get_offer_status. Omit bookingKey at the OAuth endpoint to use the selection; an explicit ID/reference cannot switch it. The app-session endpoint requires a key. Authority is checked on every call; not_found denies access without proving absence and unavailable leaves state unverified. Safe to repeat; no provider refresh or booking action occurs. Stored flags are not fresh payment, dispatch or completion proof.

Input Schema

NameRequiredDescriptionDefault
bookingKeyNoOmit to use exactly the booking already selected by this OAuth connection. If supplied, use that same booking's ID or visible reference; another identifier cannot switch selection or grant access.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "booking": {
      -        "additionalProperties": false,
      -        "description": "Booking state read from the stored reservation; it may lag provider events.",
      -        "properties": {
      -          "recordedStatus": {
      -            "description": "Stored reservation status string. It is not a new provider confirmation.",
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "recordedStatus"
      -        ],
      -        "type": "object"
      -      },
      -      "bookingKey": {
      -        "description": "Internal reservation ID for this selected booking. Returned in the available branch of get_offer_status/prepare_offer or an authorized booking read, not in prepared. It grants no access by itself.",
      -        "maxLength": 128,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "bookingReference": {
      -        "description": "Stored customer-visible reservation reference, falling back to bookingKey when absent. Customer OAuth accepts it only for its already-selected booking; it is not the supplier offerKey.",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "fulfillment": {
      -        "additionalProperties": false,
      -        "description": "Flags derived from stored assignments and status, not live fulfillment confirmation.",
      -        "properties": {
      -          "chauffeurAssignmentRecorded": {
      -            "description": "True when a chauffeur ID is stored on the reservation; it does not confirm dispatch or acceptance.",
      -            "type": "boolean"
      -          },
      -          "completionRecorded": {
      -            "description": "True only when the stored reservation status is completed; no fresh service-completion check is made.",
      -            "type": "boolean"
      -          },
      -          "vehicleAssignmentRecorded": {
      -            "description": "True when a vehicle ID is stored on the reservation; it does not confirm availability or execution.",
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "chauffeurAssignmentRecorded",
      -          "vehicleAssignmentRecorded",
      -          "completionRecorded"
      -        ],
      -        "type": "object"
      -      },
      -      "payment": {
      -        "additionalProperties": false,
      -        "description": "Recorded payment state from this booking, without a payment-provider refresh.",
      -        "properties": {
      -          "recordedStatus": {
      -            "description": "Stored reservation payment-status string; no payment or refund is initiated or newly confirmed.",
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "recordedStatus"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "available",
      -        "description": "The selected booking was accessible and its stored fields passed validation; no provider refresh occurred.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "bookingKey",
      -      "bookingReference",
      -      "booking",
      -      "payment",
      -      "fulfillment"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "invalid_request",
      -        "description": "Input does not match the booking-read contract.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "login_required",
      -        "description": "The original signed-in session must be established or renewed before reading.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "not_found",
      -        "description": "The selected booking is not accessible under current authority; this does not prove it is absent.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "unavailable",
      -        "description": "The stored booking could not be read or validated safely; this is not vehicle-availability evidence.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "booking": {
      +        "additionalProperties": false,
      +        "description": "Stored booking state.",
      +        "properties": {
      +          "recordedStatus": {
      +            "description": "Stored reservation status.",
      +            "maxLength": 64,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "recordedStatus"
      +        ],
      +        "type": "object"
      +      },
      +      "bookingKey": {
      +        "description": "Stored reservation id. It grants no access alone.",
      +        "maxLength": 128,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "bookingReference": {
      +        "description": "Customer reference, or the reservation id.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "fulfillment": {
      +        "additionalProperties": false,
      +        "description": "Stored assignment flags.",
      +        "properties": {
      +          "chauffeurAssignmentRecorded": {
      +            "description": "A driver id is stored.",
      +            "type": "boolean"
      +          },
      +          "completionRecorded": {
      +            "description": "Stored status is completed.",
      +            "type": "boolean"
      +          },
      +          "vehicleAssignmentRecorded": {
      +            "description": "A vehicle id is stored.",
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "chauffeurAssignmentRecorded",
      +          "vehicleAssignmentRecorded",
      +          "completionRecorded"
      +        ],
      +        "type": "object"
      +      },
      +      "payment": {
      +        "additionalProperties": false,
      +        "description": "Stored payment state.",
      +        "properties": {
      +          "recordedStatus": {
      +            "description": "Stored payment status.",
      +            "maxLength": 64,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "recordedStatus"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "available",
      +        "description": "Stored booking fields passed validation.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "bookingKey",
      +      "bookingReference",
      +      "booking",
      +      "payment",
      +      "fulfillment"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "invalid_request",
      +        "description": "Input does not match the booking-read contract.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "login_required",
      +        "description": "The original signed-in session must be established or renewed before reading.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "not_found",
      +        "description": "The selected booking is not accessible under current authority; this does not prove it is absent.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "unavailable",
      +        "description": "The stored booking could not be read or validated safely; this is not vehicle-availability evidence.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / bookingKey / description
      Previous value: -"Internal booking ID for the one selected booking. At the customer OAuth endpoint, its visible bookingReference is accepted too. Copy the same booking's bookingKey or bookingReference from an available get_offer_status/prepare_offer or authorized booking-read result. prepared returns links, not these IDs. The supplier offerKey is not a booking identifier; the identifier grants no access by itself."New value: +"Omit to use exactly the booking already selected by this OAuth connection. If supplied, use that same booking's ID or visible reference; another identifier cannot switch selection or grant access."
    • removedInput schema / required
      Removed value: -[
      -  "bookingKey"
      -]
  3. Changed2 schema fields changed
    • changedInput schema / properties / bookingKey / description
      Previous value: -"Internal booking ID for the one selected booking. At the customer OAuth endpoint, its visible bookingReference is accepted too. Use a value returned for that same booking; the identifier grants no access by itself."New value: +"Internal booking ID for the one selected booking. At the customer OAuth endpoint, its visible bookingReference is accepted too. Copy the same booking's bookingKey or bookingReference from an available get_offer_status/prepare_offer or authorized booking-read result. prepared returns links, not these IDs. The supplier offerKey is not a booking identifier; the identifier grants no access by itself."
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "booking": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "recordedStatus": {
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "recordedStatus"
      -        ],
      -        "type": "object"
      -      },
      -      "bookingKey": {
      -        "maxLength": 128,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "bookingReference": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "fulfillment": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "chauffeurAssignmentRecorded": {
      -            "type": "boolean"
      -          },
      -          "completionRecorded": {
      -            "type": "boolean"
      -          },
      -          "vehicleAssignmentRecorded": {
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "chauffeurAssignmentRecorded",
      -          "vehicleAssignmentRecorded",
      -          "completionRecorded"
      -        ],
      -        "type": "object"
      -      },
      -      "payment": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "recordedStatus": {
      -            "maxLength": 64,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "recordedStatus"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "available",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "bookingKey",
      -      "bookingReference",
      -      "booking",
      -      "payment",
      -      "fulfillment"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "invalid_request",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "login_required",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "not_found",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "unavailable",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "booking": {
      +        "additionalProperties": false,
      +        "description": "Booking state read from the stored reservation; it may lag provider events.",
      +        "properties": {
      +          "recordedStatus": {
      +            "description": "Stored reservation status string. It is not a new provider confirmation.",
      +            "maxLength": 64,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "recordedStatus"
      +        ],
      +        "type": "object"
      +      },
      +      "bookingKey": {
      +        "description": "Internal reservation ID for this selected booking. Returned in the available branch of get_offer_status/prepare_offer or an authorized booking read, not in prepared. It grants no access by itself.",
      +        "maxLength": 128,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "bookingReference": {
      +        "description": "Stored customer-visible reservation reference, falling back to bookingKey when absent. Customer OAuth accepts it only for its already-selected booking; it is not the supplier offerKey.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "fulfillment": {
      +        "additionalProperties": false,
      +        "description": "Flags derived from stored assignments and status, not live fulfillment confirmation.",
      +        "properties": {
      +          "chauffeurAssignmentRecorded": {
      +            "description": "True when a chauffeur ID is stored on the reservation; it does not confirm dispatch or acceptance.",
      +            "type": "boolean"
      +          },
      +          "completionRecorded": {
      +            "description": "True only when the stored reservation status is completed; no fresh service-completion check is made.",
      +            "type": "boolean"
      +          },
      +          "vehicleAssignmentRecorded": {
      +            "description": "True when a vehicle ID is stored on the reservation; it does not confirm availability or execution.",
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "chauffeurAssignmentRecorded",
      +          "vehicleAssignmentRecorded",
      +          "completionRecorded"
      +        ],
      +        "type": "object"
      +      },
      +      "payment": {
      +        "additionalProperties": false,
      +        "description": "Recorded payment state from this booking, without a payment-provider refresh.",
      +        "properties": {
      +          "recordedStatus": {
      +            "description": "Stored reservation payment-status string; no payment or refund is initiated or newly confirmed.",
      +            "maxLength": 64,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "recordedStatus"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "available",
      +        "description": "The selected booking was accessible and its stored fields passed validation; no provider refresh occurred.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "bookingKey",
      +      "bookingReference",
      +      "booking",
      +      "payment",
      +      "fulfillment"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "invalid_request",
      +        "description": "Input does not match the booking-read contract.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "login_required",
      +        "description": "The original signed-in session must be established or renewed before reading.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "not_found",
      +        "description": "The selected booking is not accessible under current authority; this does not prove it is absent.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "unavailable",
      +        "description": "The stored booking could not be read or validated safely; this is not vehicle-availability evidence.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed1 schema field changed
    • addedInput schema / properties / bookingKey / description
      Added value: +"Internal booking ID for the one selected booking. At the customer OAuth endpoint, its visible bookingReference is accepted too. Use a value returned for that same booking; the identifier grants no access by itself."
  5. Added

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations, it discloses authority checks on every call, not_found semantics, unavailable-state uncertainty, idempotent safety, no provider refresh or booking action, and that stored flags are not proof of fresh payment, dispatch, or completion. This is unusually rich behavioral context.

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?

The description is dense but front-loaded and purposeful. Every sentence carries operational or routing information, with no filler.

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?

Given that an output schema exists, the description does not need to explain return values. It still covers access semantics, endpoint behavior, error implications, idempotency, and non-freshness caveats completely.

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?

Schema coverage is 100%, so the schema already documents bookingKey. The description still adds useful endpoint-level meaning: omission uses the OAuth-selected booking, explicit IDs cannot switch selection, and the app-session endpoint requires a key.

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 clearly states a specific read operation over an existing booking’s recorded booking, payment, and assignment state. It distinguishes this from sibling tools by explicitly naming get_booking_history, get_booking_payment_review, and get_offer_status.

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?

It gives explicit when-to-use guidance and names alternatives for adjacent needs: timeline, unpaid checkout review, and original submission recovery. It also clarifies bookingKey omission versus app-session endpoint requirements.

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