Skip to main content
Glama

Server Details

Find local services, read availability, and create short-lived booking holds.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a distinct purpose: searching, profiling, listing services, checking availability, holding slots, and checking booking status. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, e.g., book_get_availability, book_hold_slot, search_providers. Slight variation in prefix does not hinder clarity.

Tool Count5/5

Six tools cover the full booking workflow without redundancy or excess. Each tool serves a necessary step in the process.

Completeness5/5

The tool set covers the entire booking flow from discovery to confirmation, including error handling with alternative slots. No obvious gaps for the stated purpose.

Available Tools

6 tools
book_get_availabilityList open appointment timesA
Read-only
Inspect

List open appointment times for one service, grouped by day, with the business's timezone. Always present times to the user in that timezone. Each slot includes a canonical holdLabel and expiresNote; copy those exact values into book_hold_slot when the user chooses the slot.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe provider slug from search_providers or get_provider.
partySizeNoNumber of people, when the user states one and the service supports it.
serviceKeyYesThe service key from book_list_services.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior5/5

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

The description adds context beyond annotations: mentions timezone handling, and instructs to copy holdLabel and expiresNote into book_hold_slot. Annotations already declare readOnlyHint=true and destructiveHint=false, so this is consistent and helpful.

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?

Two sentences: first states purpose concisely, second provides actionable guidance. No wasted words, front-loaded with purpose.

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?

With annotations and output schema present, the description is fully adequate. It covers purpose, usage context, timezone, and linkage to the sibling tool book_hold_slot. Nothing missing.

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?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameters further.

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 the tool lists open appointment times for one service, grouped by day, with timezone. It uses specific verb 'list' and resource 'open appointment times', and distinguishes from siblings like book_hold_slot and book_get_booking_status.

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?

The description implies when to use this tool (before booking) by instructing to copy values into book_hold_slot, but it does not explicitly state when not to use or mention alternatives. Clear context for usage is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

book_get_booking_statusCheck a booking's statusA
Read-only
Inspect

Check what happened to a held slot: still held, confirmed by the user, or expired. Call this when the user says they finished on the confirmation page (or asks whether it went through) so you can confirm the booking in the conversation. Returns no personal details.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe provider slug from search_providers or get_provider.
holdTokenNoThe token from the confirmUrl path, if you kept it.
confirmUrlNoThe confirmUrl returned by book_hold_slot; the token is read from it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds that the tool 'Returns no personal details' and explains the outcome statuses, providing useful behavioral context beyond annotations.

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 three concise sentences, each adding value: purpose, usage guidance, and privacy note. No unnecessary words.

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

Completeness4/5

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

With an output schema (not shown but indicated) and comprehensive annotations, the description provides sufficient context for a simple status-checking tool. It explains purpose, when to call, and that no personal details are returned.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds some context (e.g., 'The token from the confirmUrl path') but doesn't significantly enhance understanding beyond the schema.

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 uses a specific verb ('Check') and resource ('a booking's status'), and explicitly lists the possible statuses ('still held, confirmed by the user, or expired'). It clearly distinguishes from siblings like book_hold_slot and book_get_availability.

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?

The description provides explicit context: 'Call this when the user says they finished on the confirmation page (or asks whether it went through).' It does not mention when not to use or alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

book_hold_slotHold a time slotAInspect

Hold one open time slot (a self-expiring reservation, about 10 minutes) and get back a confirmation URL. The first argument, holdLabel, must be copied exactly from the chosen book_get_availability slot so the approval card describes the true booking details. Caboo validates holdLabel against slug, serviceKey, and slotId before creating any hold. Give the user ONLY the confirmUrl — Caboo's page collects their contact details and consent; never ask for name, email, or phone in chat. If the slot was just taken, the error includes alternative open times to offer instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe provider slug from search_providers or get_provider.
slotIdYesThe slotId from book_get_availability the user chose.
holdLabelYesThe exact human-readable booking sentence from the chosen book_get_availability slot's holdLabel. It must describe this slug, serviceKey, and slotId; Caboo rejects mismatches before creating a hold.
partySizeNoNumber of people, when the user stated one for availability.
serviceKeyYesThe service key from book_list_services.
expiresNoteYesCopy this exact value from the chosen availability slot's expiresNote: "held for ~10 minutes". It makes the approval card explain the short hold lifetime before machine ids.
idempotencyKeyNoOptional retry key, accepted for forward compatibility. Holds are short-lived; re-holding a taken slot returns slot_already_claimed with alternatives.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior4/5

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

The description adds behavioral context beyond annotations: the hold is self-expiring (~10 minutes), validation of holdLabel against other fields, and error handling with alternative times. Annotations already indicate it's not read-only (readOnlyHint=false) but description enriches with details. No contradiction with annotations.

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 concise (5 sentences) and front-loaded: first sentence delivers the core purpose, followed by essential instructions. Every sentence adds value, no redundancy.

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

Completeness4/5

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

Given the complexity (7 params, 5 required, output schema exists), the description covers the workflow, validation, error handling, and user interaction rules. It feels complete for a holding action; omitting details about output schema is acceptable since it exists separately.

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%, but the description adds critical meaning: holdLabel must be copied exactly from availability, expiresNote must be the fixed enum value 'held for ~10 minutes', and idempotencyKey is optional for retry. This clarifies usage beyond schema definitions.

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 the tool's function: 'Hold one open time slot (a self-expiring reservation, about 10 minutes) and get back a confirmation URL.' It distinguishes from sibling tools like book_get_availability (which lists slots) and book_get_booking_status (which checks status) by focusing on the action of holding a specific slot.

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?

The description provides clear context on when to use the tool: after selecting a slot from book_get_availability, copying the holdLabel exactly. It also instructs to give the user only the confirmUrl and not ask for personal info. However, it lacks explicit exclusions or when-not-to-use scenarios relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

book_list_servicesRead bookable servicesA
Read-only
Inspect

List one business's services with duration and displayed price. Call this before book_get_availability when the right service is not yet known.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe provider slug from search_providers or get_provider.
bookableOnlyNoWhen true, return only services that can be booked online.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false; description adds that it lists duration and price, and provides a usage context, which is additional value beyond annotations.

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?

Two sentences, front-loaded with core purpose, no wasted words.

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?

With output schema present, description need not detail return values. The description covers purpose, usage, and context sufficiently given the tool's simplicity.

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?

Schema description coverage is 100%, so the schema already documents both parameters. The description does not add further meaning to parameters, thus baseline score.

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 the tool lists services with duration and displayed price, and distinguishes from siblings by specifying when to use it (before book_get_availability when service is unknown).

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?

Explicitly says 'Call this before book_get_availability when the right service is not yet known', providing clear context and a usage scenario. Lacks exclusion of when not to use but is still helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_providerRead a business profileA
Read-only
Inspect

Get one business's public profile by slug: identity, location, contact, services overview, booking policies, capabilities (which actions this business currently supports), and public links.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe provider slug from search_providers or get_provider.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to disclose read-only behavior. It adds detail on what is returned (public profile categories) but no further behavioral traits.

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?

The description is a single sentence that packs in all return categories. It is concise but slightly long; breaking into two sentences could improve readability. No wasted words.

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 the simple input (1 parameter) and existing output schema, the description adequately details all return categories: identity, location, contact, services overview, booking policies, capabilities, and public links. No gaps.

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%, baseline 3. The description adds context by stating the slug identifies the business and references where to get it, adding meaning beyond the schema definition.

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 the tool retrieves a business's public profile by slug, listing all key data categories. It effectively distinguishes from sibling tools like search_providers (which searches) and book_* tools (which handle bookings).

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?

The description implies the slug comes from search_providers or get_provider, providing context for when to use this tool. However, it does not explicitly state when not to use it or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_providersSearch local businessesA
Read-only
Inspect

Find local service businesses on Caboo by name, category, or area. Returns published businesses with the actions each one supports in its capabilities array. An empty providers list is a valid result — relay it politely; never invent businesses.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum providers to return (default 5).
queryNoFree-text business name or need, e.g. "braider" or "Braids by Ada".
categoryNoBusiness category, e.g. "hair salon", "law firm".
localityNoSuburb, city, or area, e.g. "Gardens" or "Cape Town".

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesA one-sentence human-readable result summary, also returned as the first text content item.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral guidance: 'An empty providers list is a valid result — relay it politely; never invent businesses.' No contradiction with annotations.

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?

Two concise sentences. The first sentence states the purpose, and the second provides critical behavioral guidance. No wasted words.

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 the output schema exists and annotations cover safety, the description adequately handles purpose, param scope, and empty result behavior. No missing elements.

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?

Schema coverage is 100% with detailed parameter descriptions. The tool description mentions 'by name, category, or area' but does not add significant new meaning beyond the schema.

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 'Find local service businesses on Caboo by name, category, or area,' specifying the verb 'Find' and the resource 'local service businesses.' It distinguishes from sibling tools, which focus on booking and availability.

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?

The description implies usage for searching businesses by criteria but does not explicitly state when to use versus alternatives. However, sibling tools are all booking-related, making the context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources