Teres — Booking for AI Agents
Server Details
Search and book appointments at local businesses. Barbershops, salons, spas, and more.
- 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.
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.
Tool Definition Quality
Average 4.1/5 across 10 of 10 tools scored.
Each tool has a distinct purpose, covering search, business info, services, availability, booking CRUD, and reviews. No overlapping functionality; descriptions clearly differentiate roles (e.g., get_booking vs. get_business_info).
All tools follow a consistent verb_noun pattern in snake_case (e.g., search_businesses, create_booking, reschedule_booking). No mixing of styles or irregular names.
10 tools is appropriate for a booking system. The set covers essential operations without unnecessary extras, balancing completeness and manageability.
Covers the full booking lifecycle: search, business info, services, availability, create/get/cancel/reschedule bookings, and reviews. Minor gap: no tool to update customer details, but core workflows are supported.
Available Tools
10 toolscancel_bookingCancel bookingADestructiveInspect
Cancel an existing booking. Requires both the confirmation code and customer email. Before cancelling, present the cancellation policy to the user for confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_email | Yes | The email address used when booking | |
| confirmation_code | Yes | The 8-character confirmation code from the booking |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| end_time | No | |
| booking_id | No | |
| staff_name | No | |
| start_time | Yes | |
| location_id | No | |
| service_name | No | |
| business_name | No | |
| customer_name | No | |
| customer_email | No | |
| confirmation_code | Yes | |
| agent_instructions | No | |
| cancellation_policy | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, so the description does not need to restate destructiveness. It adds value by specifying the confirmation step (policy presentation), which is behavioral context beyond the annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, directly to the point, and front-loaded with the core purpose. Every sentence serves a specific function: stating the operation and listing requirements/guidance. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations, full schema coverage, and an output schema (not shown but stated), the description covers the essential context: what it does, prerequisites, and a user-facing step. It could be slightly more complete by mentioning if cancellation policies vary by booking or if there are time constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for both parameters (100% coverage), including the email format and the confirmation code length. The description adds no new parameter-level information beyond what the schema already offers, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Cancel an existing booking', identifying both the action (cancel) and the resource (booking). It is specific and uses strong verb-noun pairing. However, it does not explicitly distinguish itself from sibling tools like 'reschedule_booking', which is a similar operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that both 'confirmation_code' and 'customer_email' are required, and instructs the agent to 'present the cancellation policy to the user for confirmation' before proceeding. This provides clear when-to-use guidance and a pre-condition step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bookingCreate bookingAInspect
Create a new booking/appointment at a business. Requires customer information (name and email) and a selected time slot. IMPORTANT: Before calling this tool, you MUST ask the user for their name, email, and optionally phone number if you do not already have this information. Do not guess or fabricate customer details. Returns a booking confirmation with a unique booking_id.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional booking notes | |
| customer | Yes | Customer contact information | |
| staff_id | No | Optional preferred staff member ID | |
| service_id | Yes | The service ID (from list_services) | |
| start_time | Yes | Appointment start time in ISO 8601 UTC (e.g., '2026-04-05T14:00:00Z') | |
| location_id | Yes | The UUID of the location to book with | |
| idempotency_key | Yes | Unique key to prevent duplicate bookings |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| end_time | No | |
| booking_id | No | |
| staff_name | No | |
| start_time | Yes | |
| location_id | No | |
| service_name | No | |
| business_name | No | |
| customer_name | No | |
| customer_email | No | |
| confirmation_code | Yes | |
| agent_instructions | No | |
| cancellation_policy | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false), and description adds important behavioral context: idempotency key prevents duplicates, returns confirmation with booking_id, and warns against fabricating customer details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then critical usage note, then outcome. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites, and return value. Does not mention error cases or authorization, but output schema exists and tool complexity is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all properties. The description adds value beyond schema by highlighting the need for customer info and the return of a booking_id, but does not add per-parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Create' and resource 'booking/appointment', clearly distinguishing from sibling tools like cancel_booking or reschedule_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite: agent must ask for customer name/email/phone before use. Does not explicitly state when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availabilityGet availabilityARead-onlyInspect
Check available time slots for a specific service at a business. All datetimes are in UTC.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max slots to return (1-100, default 20) | |
| cursor | No | Pagination cursor from previous response | |
| date_to | Yes | End of date range — either 'YYYY-MM-DD' or full ISO 8601 UTC timestamp | |
| staff_id | No | Optional staff member ID to filter availability | |
| date_from | Yes | Start of date range — either 'YYYY-MM-DD' or full ISO 8601 UTC timestamp | |
| service_id | Yes | The service ID (from list_services) | |
| location_id | Yes | The UUID of the location |
Output Schema
| Name | Required | Description |
|---|---|---|
| slots | Yes | |
| next_cursor | Yes | |
| agent_instructions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that datetimes are in UTC but does not disclose other behaviors like pagination or empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no waste. The first sentence clearly states the purpose, and the second adds timezone context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with good annotations and schema, the description is mostly complete. It could mention pagination but overall covers the main behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add meaningful semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks available time slots for a service, using specific verbs and resources. It distinguishes from siblings like create_booking and cancel_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking availability before booking but does not explicitly state when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookingGet bookingARead-onlyInspect
Get details of an existing booking. Requires both the confirmation code and the customer's email address for verification — like an airline confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_email | Yes | The email address used when booking | |
| confirmation_code | Yes | The 8-character confirmation code from the booking |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| end_time | No | |
| booking_id | No | |
| staff_name | No | |
| start_time | Yes | |
| location_id | No | |
| service_name | No | |
| business_name | No | |
| customer_name | No | |
| customer_email | No | |
| confirmation_code | Yes | |
| agent_instructions | No | |
| cancellation_policy | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds context about the verification requirement (like an airline confirmation), which is useful but does not significantly complement the safety profile 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each adding essential information: first sentence states purpose, second explains the required verification. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (requires two identifiers, has an output schema, and annotations cover behavioral traits), the description is complete enough. The output schema handles return value details, so no further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for both parameters. The description reinforces the need for both fields and adds the '8-character' detail for confirmation_code, but this is already in the schema. No additional semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves booking details, specifying the verb 'Get' and the resource 'details of an existing booking'. It distinguishes from sibling tools like create_booking or cancel_booking by emphasizing retrieval and the required confirmation code and email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating the required parameters for verification, but it does not explicitly state when to use this tool versus alternatives like search_businesses or get_availability. No direct comparison or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_infoGet business infoARead-onlyInspect
Get detailed information about a specific business location, including name, address, phone, timezone, hours, photos, ratings, cancellation policy, and connected platforms.
| Name | Required | Description | Default |
|---|---|---|---|
| location_id | Yes | The UUID of the location to look up |
Output Schema
| Name | Required | Description |
|---|---|---|
| faqs | No | |
| hours | No | |
| phone | No | |
| staff | No | |
| photos | No | |
| address | No | |
| website | No | |
| timezone | No | |
| platforms | No | |
| location_id | Yes | |
| price_range | No | |
| rating_count | No | |
| business_name | No | |
| location_name | No | |
| rating_average | No | |
| agent_instructions | No | |
| cancellation_policy | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is clear. Description adds the list of returned fields but does not disclose additional behaviors (e.g., rate limits, auth). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence listing the key fields, which is efficient and front-loaded. It is concise but could be slightly more structured (e.g., bullet list of fields).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has output schema (not shown) and description lists key fields. Given the moderate complexity and rich annotations, the description covers the main details. Lacks mention of potential pagination or limits, but it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'location_id' with schema coverage 100%. Description does not add extra meaning beyond what the schema already provides (UUID format). Baseline is appropriate for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'get' and resource 'detailed information about a specific business location', listing multiple fields. It distinguishes from sibling tools like 'search_businesses' (search) and 'get_reviews' (reviews only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving business info by location_id but does not explicitly state when to use this tool versus siblings like 'get_booking' or 'get_reviews'. No when-not or alternative guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsGet reviewsARead-onlyInspect
Get reviews for a business location. Returns anonymous ratings and comments from verified bookings. Use this to help users decide between businesses during discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max reviews to return (1-50, default 10) | |
| cursor | No | Pagination cursor from previous response | |
| location_id | Yes | The UUID of the location |
Output Schema
| Name | Required | Description |
|---|---|---|
| reviews | Yes | |
| location_id | Yes | |
| next_cursor | Yes | |
| rating_count | Yes | |
| rating_average | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds that reviews are 'anonymous ratings and comments from verified bookings', providing data source context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loads core function and ends with usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and schema coverage is high, description adequately covers purpose and data source. Doesn't explain pagination in depth, but cursor and limit are in schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all 3 parameters. Description does not add information beyond schema, maintaining baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'get', resource 'reviews', and context 'business location'. Explicitly mentions purpose 'help users decide between businesses during discovery', setting it apart from siblings like submit_review (write) or search_businesses (search for businesses).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States usage context 'during discovery' to compare businesses, but lacks explicit when-not-to-use or alternatives. However, the purpose sentence implies appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList servicesARead-onlyInspect
List all services offered by a business. Returns service details including name, duration, price, and whether each service is bookable online.
| Name | Required | Description | Default |
|---|---|---|---|
| location_id | Yes | The UUID of the location |
Output Schema
| Name | Required | Description |
|---|---|---|
| services | Yes | |
| agent_instructions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds return field details (name, duration, price, bookable online) beyond annotations, providing useful behavioral context without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Action stated first, return fields listed second. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required parameter, output schema exists), the description fully covers what the tool does and returns. It is complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described location_id parameter. Description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List' and resource 'services' for a business, specifying return fields. It distinguishes from siblings like get_availability or get_business_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to list services vs get_availability). Lacks explicit when/when-not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reschedule_bookingReschedule bookingAInspect
Reschedule an existing booking to a new time. The confirmation code stays the same. Requires both the confirmation code and customer email. Check availability first with get_availability to find open slots.
| Name | Required | Description | Default |
|---|---|---|---|
| staff_id | No | Optional: change to a different staff member | |
| customer_email | Yes | The email address used when booking | |
| new_start_time | Yes | New appointment start time in ISO 8601 UTC (e.g., '2026-04-08T14:00:00Z') | |
| confirmation_code | Yes | The 8-character confirmation code from the booking |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| end_time | No | |
| booking_id | No | |
| staff_name | No | |
| start_time | Yes | |
| location_id | No | |
| service_name | No | |
| business_name | No | |
| customer_name | No | |
| customer_email | No | |
| confirmation_code | Yes | |
| agent_instructions | No | |
| cancellation_policy | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are neutral (not read-only, not destructive), and the description adds one behavioral detail: 'The confirmation code stays the same.' It does not elaborate on side effects (e.g., old slot freeing), auth requirements, or error conditions, so coverage is adequate but minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose. Every sentence adds value: purpose, behavioral fact, workflow guidance. No fluff or redundancy. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (no need to describe return), the description covers the main action, required inputs, and a key prerequisite. It omits mention of the optional staff_id parameter (changing staff during reschedule) and what happens to the original slot, but these are minor gaps for a tool with 100% schema coverage and a clear purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description restates required params but adds no new parameter-specific semantics beyond what the schema already provides (e.g., staff_id optionality, time format). The workflow hint relates to new_start_time indirectly but not a direct semantic addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Reschedule an existing booking to a new time', which is a specific verb+resource. It also adds that the confirmation code stays the same, distinguishing this from create_booking or cancel_booking by implication. The workflow hint to check availability further clarifies the tool's role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use this tool (to change time of an existing booking) and provides a clear prerequisite: 'Check availability first with get_availability to find open slots.' It also states required inputs. However, it doesn't explicitly mention when not to use it or compare to siblings like create_booking or cancel_booking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesSearch businessesARead-onlyInspect
Search for businesses that can be booked instantly. When a user wants to find or book a service (haircut, massage, salon, etc.), use this tool FIRST — it returns businesses with real-time availability that can be booked immediately, including photos, ratings, hours, and pricing. Supports nearby search when latitude/longitude are provided.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-100, default 20) | |
| query | No | Search term (business name, service type, etc.). Omit to list all businesses. | |
| cursor | No | Pagination cursor from previous response | |
| latitude | No | User's latitude for nearby search. Use with longitude. | |
| location | No | City, state, or zip code to search near | |
| longitude | No | User's longitude for nearby search. Use with latitude. | |
| radius_km | No | Search radius in kilometers (default 50, max 200). Only used with lat/lng. | |
| service_type | No | Type of service (e.g., 'haircut', 'massage') |
Output Schema
| Name | Required | Description |
|---|---|---|
| locations | Yes | |
| next_cursor | Yes | |
| agent_instructions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. However, it adds value by detailing return fields (photos, ratings, hours, pricing) and real-time availability, giving agents a concrete picture of the tool's behavior beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core purpose and immediately actionable guidance. No fluff; every clause serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 params, no required fields, output schema exists), the description effectively covers what the tool does, when to use it, and key capabilities like real-time availability. It could mention pagination more explicitly, but the output schema likely handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have descriptions in the schema (100% coverage), so baseline is 3. The description adds context on how lat/lng work together for nearby search and that query can be omitted to list all businesses, providing extra semantic value beyond the individual parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the action (search for businesses), the resource (businesses that can be booked instantly), and key differentiators (real-time availability, instant booking). It clearly distinguishes this from sibling tools like get_business_info or get_availability by framing it as the primary search entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides clear guidance on when to use this tool ('first' for finding/bookable services) and how to adjust search (nearby with lat/lng). It does not explicitly list alternatives or when not to use, but the context is strong enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_reviewSubmit reviewAInspect
Submit a review for a completed booking. The user must have a confirmed booking at this business. Ask the user for their rating (1-5 stars) and an optional comment. Do not submit a review without the user explicitly providing a rating.
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | Rating from 1 to 5 stars | |
| comment | No | Optional text review or comment | |
| customer_email | Yes | The email address used when booking | |
| confirmation_code | Yes | The 8-character confirmation code from the booking |
Output Schema
| Name | Required | Description |
|---|---|---|
| rating | Yes | |
| comment | Yes | |
| message | Yes | |
| review_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not read-only and not destructive. Description adds context: requires confirmed booking, explicit rating. Output schema covers return values. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, each sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites, user consent, and required fields. Output schema fills in return info. Missing mention of success feedback, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema describes all parameters. Description adds minor clarification (e.g., '8-character' for confirmation_code), but mostly redundant. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'submit' and resource 'review' with context 'for a completed booking'. It is distinct from sibling tools like cancel_booking or get_reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite: 'user must have a confirmed booking at this business' and warns against submitting without explicit rating. Could mention when not to use, but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!