Skip to main content
Glama

Request a consult

request_booking
Destructive

Use this when the user wants to book a local home-service appointment and has already chosen an open time. Confirms a free consult when the slot is open. Calling this again with the same details can create a second booking; if unsure, check get_booking_status first. Requires consent: before calling, show the user the consent text in the consent field and get their agreement. Also requires a name, a valid email, and a problem description. service_address is optional for a phone consult and required for an on-site visit. Disposable, reserved, and blocked email domains are rejected. job_summary falls back to problem. service_area is inferred from the address or city, otherwise the shop city. A phone consult accepts a street, a city and ZIP, or a PO Box. An on-site visit needs a street address. Shop-specific booking rules and emergency_phone come from get_business. offering is an id from get_business. start is an ISO-8601 timestamp, for example 2026-10-20T14:00:00-04:00. The start is at least 2 hours ahead and no more than 21 days ahead. A start outside that window names the field start. Returns status confirmed, a cancel link, and verify_url when the signed receipt is ready. The receipt page does not show the customer. An optional idempotency_key repeats the same result for that shop. Rate limited per IP and per shop, with a per-shop daily cap.

Input Schema

NameRequiredDescriptionDefault
nameYesCustomer name. Example: Ada Lovelace.
emailYesCustomer email on a real domain. Example: ada@gmail.com. Disposable and example.com addresses are rejected.
phoneNoCustomer phone. Example: 3525550100. Optional.
startYesISO-8601 timestamp with an offset. Example: 2026-10-20T14:00:00-04:00. At least 2 hours ahead and no more than 21 days ahead.
consentYesRequired. Before you call this tool, show the user this exact text and get their agreement: "I agree to Booqer's Terms and Privacy Policy and consent to Booqer sharing my request with this shop so they can contact me about it." Terms: https://booqer.ai/terms. Privacy Policy: https://booqer.ai/privacy. Set true only after the user agrees. Without consent true the call is rejected and nothing is stored.
problemYesWhat is wrong, in the customer's words. Example: Gate will not close.
shop_idYesEnrolled shop id from search_businesses. Examples: florida-pole-barn, florida-security-concepts, booqer-demo-shop.
offeringYesService id from get_business. Example: project_consult.
job_summaryNoShort job summary. Falls back to problem when omitted.
service_areaNoCity or county. Inferred from the address when omitted. Example: Clermont.
idempotency_keyNoOptional key of 8 to 80 letters, numbers, dots, underscores, colons, or hyphens. A repeat with the same key and shop returns the first booking instead of creating another.
service_addressNoStreet, city and ZIP, or PO Box. Optional for a phone consult. Required for an on-site visit. Example: 100 Demo Drive, Clermont FL 34711.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it warns that a repeat call can create a duplicate booking, explains idempotency_key behavior, requires consent text be shown first, lists rejected email domains, states per-IP/per-shop rate limits and a daily cap, and defines the 2-hour/21-day start window. This is exactly the mutation-risk context an agent needs on top of destructiveHint=true.

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?

Dense single block, but front-loaded with the trigger condition and duplicate-booking warning, and every clause carries a rule the agent must apply. Some sentences duplicate the schema verbatim (ISO-8601 example, disposable-domain rejection), which is minor redundancy rather than padding.

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 12-parameter mutation tool with 7 required fields, it covers consent, validation, timing windows, deduplication, rate limits, and return values; with an output schema and destructive annotation present, nothing an agent needs to call this 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 description coverage is 100%, so the baseline is 3, but the description adds cross-field semantics the schema does not: job_summary falling back to problem, service_area inference, address requirements per consult type, and offering/start provenance. It does repeat some schema content (start format, email rejection), which keeps it from a 5.

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?

States a specific verb and resource ('book a local home-service appointment', 'Confirms a free consult when the slot is open'), which cleanly separates the consult flow from the general service flows. Sibling differentiation is partial: it explicitly references get_booking_status and get_business as supporting tools but never says when to prefer request_service or submit_service_request instead of this one.

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 clear precondition ('has already chosen an open time') and an explicit alternative ('if unsure, check get_booking_status first'), both of which direct agent behavior. It stops short of naming the competing booking siblings as alternatives for non-consult cases, so routing is clear but not exhaustive.

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