Skip to main content
Glama

Andrii Co. Notary & Apostille Assistant

request_booking

Submit a booking request — a lead, NOT a confirmed appointment; the notary follows up. Use when ready to book AND the customer is not signed in; a signed-in customer goes through book_appointment instead. Requires: service (e.g. office, mobile, loan), the FULL LEGAL NAME as on government ID, and an email or phone (collect both). Pass the chosen startUnix from search_availability as desired_time_unix; to modify an open request pass existing_reference, never a duplicate. Returns a reference for check_request_status; fails if the name or a valid contact is missing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe customer's FULL LEGAL NAME exactly as on their government-issued ID (never a nickname or chat display name) — notarial records and apostille filings print it. Ask if you only know a first name.
emailNoEmail. Collect BOTH an email AND a phone in one question when possible; at least one is required.
notesNoAnything else the notary should know.
phoneNoPhone with country code (e.g. +1...). The notary confirms fastest by phone/SMS — ask for it even when an email is known.
addressNoMeeting address — MOBILE ONLY. Office and apostille visits automatically use our Bothell office; omit this for them.
serviceYesService: office | mobile | apostille | loan.
desired_timeNoThe wanted time in plain words, when no exact slot was chosen (rides the notes; the notary confirms a real time).
document_countNoNumber of documents. Default 1.
desired_time_unixNoThe chosen slot's `startUnix` from search_availability (Unix seconds). Pass it so the request carries the exact wanted time — still a request, never a hold.
existing_referenceNoTo ADD to or change an EXISTING request instead of creating a second one (e.g. "also apostille it", "make it 3 documents"), pass that request's reference id here — the same email/phone must be provided so we can verify it's the same customer. Nothing new is created.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
statusNoAccount tools: the booking's status after this call (Pending after book_appointment).
messageYesCustomer-facing outcome; relay it as written — bookings are requests until the notary confirms.
manageUrlNoGuest requests: the emailed confirm/cancel link, when one was minted (null otherwise).
onAccountNoTrue when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.
referenceNoRequest / order reference for check_request_status (guest tools) or my_bookings (account tools).
appendedToExistingNoTrue when existing_reference was given and the request was extended, not duplicated.
ourComparableQuoteCentsNorequest_price_match only, when computable.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "appendedToExisting": {
      +      "description": "True when existing_reference was given and the request was extended, not duplicated.",
      +      "type": "boolean"
      +    },
      +    "manageUrl": {
      +      "description": "Guest requests: the emailed confirm/cancel link, when one was minted (null otherwise).",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "description": "Customer-facing outcome; relay it as written — bookings are requests until the notary confirms.",
      +      "type": "string"
      +    },
      +    "ok": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "onAccount": {
      +      "description": "True when the request was filed on the signed-in customer's own account — they can then list it with my_bookings and change it with reschedule_booking / cancel_booking. Absent or false means a guest request, managed through the emailed link.",
      +      "type": "boolean"
      +    },
      +    "ourComparableQuoteCents": {
      +      "description": "request_price_match only, when computable.",
      +      "type": "integer"
      +    },
      +    "reference": {
      +      "description": "Request / order reference for check_request_status (guest tools) or my_bookings (account tools).",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Account tools: the booking's status after this call (Pending after book_appointment).",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses critical behavior: the booking is not a confirmed appointment, the notary follows up, passing existing_reference modifies rather than creates a duplicate, and the call fails if name or valid contact is missing. This is substantial behavioral context that the boolean annotations alone cannot convey.

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 every clause earns its place: core distinction, usage condition, required inputs, cross-tool parameter provenance, modification behavior, and failure conditions. Key information is front-loaded, with the most important distinction stated first.

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 10 parameters and an output schema, the description covers the essential decision criteria, required fields, cross-tool dependencies, modification semantics, and what the caller receives for follow-up. The rich input schema and output schema handle the remaining details, so nothing needed to call the tool correctly is missing.

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 parameters well and the baseline is 3. The description adds meaningful semantics by requiring the FULL LEGAL NAME, insisting both email and phone be collected, tying desired_time_unix to search_availability's startUnix, and explaining existing_reference as an edit mechanism with 'never a duplicate'.

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 verb and resource ('Submit a booking request') and immediately clarifies that this is a lead, not a confirmed appointment. It also distinguishes itself from the sibling book_appointment, leaving no ambiguity about what the tool does.

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?

Explicitly says when to use this tool ('ready to book AND the customer is not signed in') and when not to ('a signed-in customer goes through book_appointment instead'). It also connects to search_availability for the time parameter and check_request_status for the returned reference, giving clear routing and follow-up 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