Skip to main content
Glama

check_booking_link

Read-onlyIdempotent

Free, instant pre-flight check for a booking URL. Classifies which booking platform a URL belongs to and tells you whether import_booking_url will accept it, WITHOUT fetching the page or spending money. Returns the platform, the exact smb_id import_booking_url would assign, the channels the booking will route through, and the inferred country. Use it to de-risk a paid booking BEFORE calling import_booking_url + schedule_appointment.

EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Is this a bookable link? https://cal.com/jane" -> call check_booking_link({"url": "https://cal.com/jane"}) -> then import_booking_url({"booking_url": "https://cal.com/jane"}) user: "Can you book me here: https://www.opentable.com/r/acme-bistro" -> call check_booking_link({"url": "https://www.opentable.com/r/acme-bistro"})

WHEN TO USE: Call this the moment a user pastes a URL and you are not sure it is a bookable page, or before you commit to a paid schedule_appointment. It is free and sub-100ms, so run it as a guard: if supported=true, proceed to import_booking_url with confidence; if supported=false, fall back to find_business or call_business instead of wasting a booking attempt. WHEN NOT TO USE: Do not use to confirm the page is currently live/available — this tool does not fetch the URL, it only classifies its shape. It is not a substitute for import_booking_url (which actually registers the business) or verify_business (which confirms an already-imported smb_id). COST: free - no key required LATENCY: ~20ms

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesFull http(s) URL to classify, e.g. 'https://cal.com/jane' or 'https://www.opentable.com/r/acme'.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations, the description discloses critical behaviors: it does NOT fetch the URL, costs nothing, takes ~20ms, and only classifies URL shape rather than confirming liveness. This prevents the agent from over-trusting the result and is exactly the kind of context 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 well-structured with clear sections, front-loaded purpose, example user queries, and explicit when-to-use guidance. Every sentence earns its place by helping an agent select and invoke the tool safely; none of it is filler or repetition.

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?

Even without an output schema, the description enumerates the returned fields (platform, smb_id, channels, country), explains what the tool will not do, and provides fallback recommendations. This fully equips an agent to call the tool, interpret results, and decide next steps.

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?

The single required 'url' parameter has 100% schema description coverage with examples. The tool description adds context about it being a 'booking URL' and showing example chains, but the schema already documents the full http(s) format and gives concrete examples, so the description adds only marginal semantic value.

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 precise verb and resource: 'Free, instant pre-flight check for a booking URL.' It clearly differentiates itself from siblings by classifying the platform and predicting whether import_booking_url will accept it without fetching the page. This makes the tool's scope unmistakable even before considering the schema.

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?

WHEN TO USE and WHEN NOT TO USE sections are explicit: use it as a guard before paid booking attempts, and do not substitute it for import_booking_url or verify_business. It also names alternatives like find_business and call_business as fallbacks, giving the agent a concrete decision path.

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.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool maps to a distinct stage or concern: link preflight vs import, business discovery vs verification, scheduling, async status/outcome, cost preview, and health. The closest pair (check_booking_link and import_booking_url) is explicitly differentiated as a free guard vs actual registration.

Naming Consistency4/5

Nearly all tools follow a consistent verb_noun snake_case pattern such as find_business, verify_business, schedule_appointment, and get_status. The only real deviation is self_test, which is a standard health-check name but not verb_noun.

Tool Count5/5

Nine tools is well-scoped for an appointment-booking service that also needs async operation tracking, cost estimation, and health checks. Each tool has a clear role and none feel redundant or tacked on.

Completeness4/5

The toolset covers the main lifecycle: find or import an SMB, verify it, schedule/cancel/reschedule, poll status, retrieve outcomes, and preview costs. Minor gaps exist—send_message and capture_lead are referenced as downstream operations but not exposed, and there is no direct tool for listing supported platforms.