Teres — Booking for AI Agents
Server Details
Teres is the discovery and booking layer for AI agents. Search for real service businesses (barbershops, salons, spas, and more), check live availability, and create bookings directly in their existing systems — no API key required. Businesses connect their Square, and every MCP-compatible agent can find and book with them instantly. One of the first booking servers in the MCP registry.
- 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.2/5 across 10 of 10 tools scored.
Each tool targets a distinct operation: business search, info, services, availability, booking CRUD, and reviews. No overlap or ambiguity.
All tools follow a consistent verb_noun snake_case pattern (e.g., search_businesses, create_booking, cancel_booking).
10 tools is perfectly scoped for a booking system, covering discovery, booking lifecycle, and reviews without being excessive.
Covers the full workflow: search, business details, services, availability, create/retrieve/cancel/reschedule bookings, and reviews. No obvious gaps.
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 already indicate destructiveHint=true. The description adds valuable behavioral context: requiring both identifiers and mandating user confirmation of the cancellation policy before execution. 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 concise sentences with no extraneous information. The action and prerequisites are front-loaded, making it easy to scan.
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 output schema exists and annotations cover safety, the description covers prerequisites and the critical workflow step (confirming policy). It is complete for a cancellation tool, though success behavior is not described (likely covered by output 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%, so the schema already describes both parameters sufficiently. The description does not add new meaning beyond emphasizing that both are required, which is already in the schema.
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 action (cancel an existing booking) and the required inputs. It distinguishes from siblings implicitly (cancel vs. create/reschedule), but does not explicitly contrast with alternative tools.
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 specifies prerequisites (confirmation code and email) and provides a workflow instruction (present cancellation policy before proceeding). It does not explicitly state when not to use this tool, 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.
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 already indicate non-destructive, non-read-only nature. The description adds context about required customer info prompting and returns a booking confirmation with unique ID, but 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?
Two sentences with critical information front-loaded, zero waste. Every sentence adds value.
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 (implied by 'Returns a booking confirmation'), the description covers prerequisites, required parameters, and return value adequately. No missing context for an agent to use it correctly.
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 baseline 3. The description adds meaning by emphasizing customer fields (name, email) and explaining idempotency_key prevents duplicates, and start_time format—going beyond schema descriptions.
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 creates a new booking/appointment, specifying required customer information and time slot. It distinguishes from sibling tools like cancel_booking and reschedule_booking by focusing solely on creation.
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 instructs the agent to ask the user for name, email, and optionally phone before calling, and warns against fabricating details. This provides clear when-to-use guidance.
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 declare readOnlyHint=true and destructiveHint=false, so the reading nature is clear. The description adds value by stating that datetimes are in UTC, which is useful behavioral context. No contradictions, but the description could mention pagination or other behaviors.
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 the purpose immediately. Perfectly concise while covering key context (UTC).
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?
With an output schema present, the description doesn't need to detail return values. However, it omits mention of pagination (cursor, limit) and date range constraints, which are important for correct usage. The description is sufficient but could be more complete.
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 does not add extra meaning beyond the schema; it repeats the generic purpose. The parameters are well-documented in the schema, so the description's contribution is minimal.
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's purpose: check available time slots for a specific service at a business. It uses a specific verb ('Check') and identifies the resource ('available time slots'), effectively distinguishing it from sibling tools like create_booking or get_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 when checking availability but provides no explicit guidance on when to use this tool versus alternatives (e.g., list_services for service IDs). No 'when not to use' or context about prerequisites.
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 indicate read-only, and the description confirms it. It adds the verification requirement context, which is beyond what annotations provide. 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 filler. The key information is front-loaded and every sentence 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?
With an output schema and good annotations, the description covers the core purpose and verification need. Not every edge case is mentioned, but it is sufficient for a simple read tool.
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 fully documents both parameters. The description does not add new semantics beyond restating the requirement already evident from the 'required' field.
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 the specific verb 'get details' and the resource 'existing booking', clearly distinguishing it from sibling tools like 'create_booking' or 'cancel_booking'. The analogy to an airline confirmation adds clarity.
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 states the prerequisites (confirmation code and email) but does not explicitly indicate when not to use this tool or mention alternative tools for different scenarios.
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 declare readOnlyHint=true, so the safety profile is clear. The description adds valuable behavioral context by listing the output fields (address, hours, ratings, etc.), going 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 a single, concise sentence that immediately conveys the tool's purpose and key outputs without any 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 simple tool with one parameter, read-only annotation, and presence of an output schema, the description adequately covers what the tool does and what it returns. No gaps for an agent to understand usage.
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?
With 100% schema description coverage, the schema already sufficiently documents the single parameter location_id as a UUID. The tool description adds no additional parameter-specific meaning.
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 detailed information about a specific business location, listing the types of data included. It distinguishes from sibling tools like get_reviews or search_businesses that focus on subsets or searches.
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 implicitly indicates use when a specific location_id is known, but does not explicitly contrast with alternatives like search_businesses for when to search first. No direct when-not guidance.
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. The description adds beyond that by stating the data is anonymous and comes from verified bookings, providing additional behavioral 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?
The description is concise with three sentences, no wasted words. The most important information is front-loaded, making it efficient for an AI agent to parse.
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 simplicity of the tool and the presence of annotations and output schema, the description is complete. It covers purpose, usage context, and data characteristics without missing critical information.
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 baseline is 3. The description mentions the type of data returned ('anonymous ratings and comments') but does not add new meaning to the parameters beyond what the schema already 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 verb 'get' and the resource 'reviews for a business location'. It explains that it returns anonymous ratings and comments from verified bookings, and it distinguishes from siblings by specifying its use in helping users decide between businesses during discovery.
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 gives a clear context for use ('to help users decide between businesses during discovery'), but it does not explicitly state when not to use this tool or mention alternatives. The context is implied from sibling tools, but lacks explicit exclusions.
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 provide safety info (readOnlyHint=true, destructiveHint=false). The description adds no behavioral details beyond stating it returns service details, which is adequate but minimal.
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, clear and concise, with no unnecessary words. Information is front-loaded.
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 (one required param, output schema exists), the description adequately covers scope and return fields.
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 for the single parameter (location_id). The description does not add extra semantics beyond what the schema provides, so baseline of 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 it lists all services for a business and specifies returned fields (name, duration, price, bookable). It distinguishes from sibling tools 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?
The description implies usage when a list of services is needed, but does not explicitly mention when not to use or contrast with alternatives among siblings.
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 already indicate readOnlyHint=false and destructiveHint=false, so the description's confirmation that the code stays same adds useful context. However, it omits details like whether the old slot is freed or if notifications are sent. With annotations present, the description adds moderate value 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?
The description is concise with three sentences, each serving a purpose: core action, invariant, prerequisites, and advisory step. No redundant information.
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 annotations, full schema coverage (100%), and presence of an output schema, the description is adequate. It covers purpose, prerequisites, and a usage hint. It could mention error conditions or side effects but remains complete for a moderate-complexity tool.
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%, providing baseline 3. The description does not add meaning beyond what the schema already offers for parameters like new_start_time format or staff_id optionality. It does not elaborate on any parameter semantics.
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 'Reschedule' and the resource 'existing booking', and specifies that the confirmation code stays the same. It distinguishes from siblings like cancel_booking and create_booking by emphasizing modification rather than cancellation or new creation.
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 advises to check availability first using get_availability, providing clear context for when to use this tool. It also lists required inputs (confirmation code and customer email), though it could explicitly mention alternatives 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 declare read-only and non-destructive behavior. The description adds value by revealing that it returns businesses with real-time availability, photos, ratings, hours, and pricing, alongside the 'can be booked instantly' trait. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence delivers the core purpose, the second explains when to use and what it returns. Perfectly front-loaded and scannable.
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 output schema exists, the description doesn't need to detail return values. It covers the essential: what it searches, when to use (first), and key features (nearby search, included data). Minor omission: no mention of pagination cursor or how location/radius interact, but overall 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?
Schema coverage is 100%, so the description doesn't need to detail each parameter. However, it adds context for latitude/longitude by explicitly stating 'nearby search when latitude/longitude are provided.' This supplements the schema descriptions.
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 searches for businesses that can be booked instantly, with specific examples (haircut, massage, salon). It distinguishes from siblings by indicating it should be used FIRST for finding/bookable services, unlike get_business_info or get_availability which serve different purposes.
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 says 'use this tool FIRST' when a user wants to find or book a service, and mentions support for nearby search with lat/lng. While it doesn't list specific exclusions or alternatives, the guidance is clear and actionable.
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?
Description accurately describes the write operation and adds context about requiring explicit rating. Annotations already indicate non-read-only, non-destructive, so credits for additional behavioral detail are granted.
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 concise sentences with no filler. Front-loaded with the main action. Every sentence adds essential information.
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 schema coverage, output schema existence, and annotations, the description fully covers key constraints and usage context. No gaps identified.
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 covers all parameters (100% coverage). Description adds context beyond schema: rating must be explicitly provided by user, confirmation code is from booking, email is from booking. This adds meaning without redundancy.
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 it submits a review for a completed booking, using a specific verb and resource. It distinguishes from siblings like get_reviews which list 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?
Description specifies the prerequisite (confirmed booking) and instructs not to submit without explicit rating. However, it lacks explicit guidance on when to use alternatives like get_reviews.
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!