Skip to main content
Glama

BOP

Server Details

Search gyms and personal trainers in Taiwan, check open time slots, and book or cancel sessions.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct action in the booking lifecycle: search, business lookup, availability, request, payment, status, modification, cancellation, and external booking link. Although complete_booking and request_booking both concern creating a final booking, their descriptions make the boundary clear: request_booking creates the booking, while complete_booking only pays an awaiting_payment booking.

Naming Consistency5/5

All tool names use consistent snake_case with a predictable verb_noun pattern: search_businesses, get_business, get_availability, request_booking, complete_booking, get_booking_status, modify_booking, cancel_booking, get_booking_link. The convention is uniform across the entire set.

Tool Count5/5

Nine tools are well-scoped for a booking platform, covering the full customer-facing lifecycle without redundant operations. Each tool has a clear purpose and earns its place.

Completeness5/5

The surface covers discovery, business details, availability, booking creation, online payment, status lookup, modification, cancellation, and external-link booking. No obvious lifecycle gap remains for the stated booking domain.

Available Tools

9 tools
cancel_bookingCancel a bookingA
DestructiveIdempotent
Inspect

Cancel a confirmed, pending or awaiting_payment booking made with request_booking, when the customer asks to. Frees the place for others and cannot be undone; a booking paid online is refunded minus the card processing fee Stripe charged and BOP's fee (5.5% + NT$10). Online cancellation closes at the business's cutoff (online_cancellation in get_business; 120 minutes before the start time unless the business sets a longer one).

NameRequiredDescriptionDefault
booking_idYesbooking_id returned by request_booking
business_idYesbusiness_id from search_businesses
status_tokenYesstatus_token returned once by request_booking

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, so the description supplements the safety profile with concrete consequences: irreversible, frees the place for others, refund minus Stripe's processing fee and BOP's 5.5% + NT$10 fee, and an online cutoff that defaults to 120 minutes before start. These are exactly the irreversibility, cost, and timing facts an agent needs before invoking a destructive mutation, and nothing contradicts the annotations.

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?

Three sentences, front-loaded with the core action and eligibility, followed by consequences and constraints; every sentence carries decision-relevant information. It is dense with fee and cutoff detail but none of it is padding.

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

Completeness5/5

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

For a 3-parameter destructive mutation with no output schema, the description covers eligibility states, provenance of identifiers, irreversibility, refund economics, and the time window in which online cancellation is possible. An agent has everything needed to call it correctly and warn the customer in advance.

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?

All three parameters are already fully documented in the schema at 100% coverage, including where booking_id and status_token come from, so the description adds no new parameter-level detail. Baseline 3 is appropriate given the schema carries the semantic load.

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 first sentence states a specific verb (cancel) plus the resource and the exact eligible states (confirmed, pending, awaiting_payment), which directly contrasts with the sibling modify_booking and complete_booking. An agent can identify the operation and its accepted inputs without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear trigger ('when the customer asks to') and names request_booking as the origin of the booking, plus a precondition drawn from get_business (online_cancellation cutoff, default 120 minutes). It stops short of explicitly routing the agent to modify_booking when the customer wants to change rather than cancel, so alternatives are only partially covered.

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

complete_bookingPay for a bookingA
Idempotent
Inspect

Pay for a booking whose status is awaiting_payment, with a payment credential the customer approved for the booking's amount and currency. payment.handler_id must come from the booking's payment_handlers ("stripe_payments"), and credential is {type: "stripe_payment_token", token: "spt_…"}: a Stripe shared payment token issued to the handler's business_profile. Charges the customer once (repeating the call does not charge twice). Returns the booking (confirmed, or pending if the business confirms it) and the payment result; if payment.status is requires_action, open payment.redirect_url for the customer and call again with the same credential.

NameRequiredDescriptionDefault
paymentYesPayment credential for this booking
booking_idYesbooking_id returned by request_booking
business_idYesbusiness_id from search_businesses
status_tokenYesstatus_token returned once by request_booking
idempotency_keyNoOptional key (8–64 letters, digits, _ . : -) that makes retries safe: the same key with the same parameters returns the original result

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare non-read-only, idempotent, non-destructive, open-world, but the description adds real substance: it explains that the customer is charged once, that repeat calls do not double-charge, and it documents the two-phase requires_action flow with redirect_url. That is behavioral context the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the precondition and action, then the credential shape, then the retry/follow-up semantics — a logical order. The middle sentence is dense with nested colons and quotes, which slightly hurts readability, but no sentence is disposable.

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

Completeness5/5

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

For a five-parameter, nested-object, no-output-schema mutation tool, the description covers what it does, what it returns (booking confirmed or pending, plus the payment result and its possible requires_action status), and how to complete the flow. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds constraint-level meaning beyond the schema: the credential must be one the customer approved for the booking's exact amount and currency, and handler_id must be sourced from the booking's payment_handlers. It does not cover business_id, booking_id, status_token, or idempotency_key, which the schema handles.

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?

States a specific verb ('Pay for') plus the resource and an explicit precondition ('a booking whose status is awaiting_payment'), which cleanly separates it from request_booking, modify_booking, and cancel_booking. The agent knows exactly what this tool accomplishes without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage conditions: the booking must be awaiting_payment, handler_id must come from the booking's payment_handlers, and if payment.status is requires_action the agent must open payment.redirect_url and call again with the same credential. It does not explicitly name a sibling alternative or say when not to call it, which keeps it just under a 5.

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

get_availabilityCheck open time slotsA
Read-onlyIdempotent
Inspect

List open time slots (Asia/Taipei) for one service in the next 1–14 days, with remaining capacity. Use the returned slot value as-is in request_booking. Read-only.

NameRequiredDescriptionDefault
daysNoHow many days ahead, default 14
teacherNoOnly slots taught by this teacher or trainer
service_idYesservice_id from get_business
business_idYesbusiness_id from search_businesses

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so repeating 'Read-only' adds little; the real value is beyond the structured fields — the Asia/Taipei timezone for returned slots, the fact that remaining capacity is included, and the instruction to pass the slot value verbatim into request_booking (implying it is an opaque token). It does not say what an empty result looks like, but the behavioral profile is solid.

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 short sentences with zero filler; scope, timezone, and capacity come first, then the downstream handoff. Every clause earns its place.

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?

For a read-only tool with rich annotations, complete schema coverage, and no output schema, the description covers the essentials: horizon, timezone, capacity, and how to consume the result. The only gap is the shape of the response when no slots exist, which an agent may need to handle.

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 all four parameters including the 1–14 day bound and id derivation are already documented. The description reinforces 'one service' (single service_id) and the day window, but adds no format or syntax detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('List open time slots'), scopes it to one service, a bounded horizon (1–14 days), and adds timezone plus remaining capacity. An agent can distinguish this read-side availability lookup from the write-side siblings like request_booking or modify_booking without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent forward: 'Use the returned slot value as-is in request_booking' is a concrete when-to-use handoff, and 'Read-only' signals this is not a booking action. It stops short of naming when NOT to call it (e.g., to check an existing reservation, use get_booking_status), so no exclusions are stated.

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

get_booking_statusCheck booking statusA
Read-onlyIdempotent
Inspect

Get the current status of a booking made with request_booking (confirmed, waiting for the business, awaiting online payment, declined, or cancelled), including payment and refund details. Read-only.

NameRequiredDescriptionDefault
booking_idYesbooking_id returned by request_booking
business_idYesbusiness_id from search_businesses
status_tokenYesstatus_token returned once by request_booking

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so 'Read-only' in the description adds nothing new, but the enumeration of status states and the note that payment and refund details are included is real behavioral context beyond the annotations. It stops short of explaining token expiry or whether status can change after a terminal state.

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?

A single front-loaded sentence with a compact parenthetical list of status values; every clause carries information. The trailing 'Read-only.' repeats the annotation and is minor waste.

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?

For a simple read tool with fully described parameters and no output schema, the description is nearly complete: it lists status values and mentions payment/refund details in the result. Minor gaps remain around the status_token's single-use nature and whether the status is a snapshot.

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 each parameter's origin (booking_id, status_token from request_booking; business_id from search_businesses) is already documented in the schema. The description adds no additional parameter semantics, which is the baseline 3 case.

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?

States a specific verb and resource ('Get the current status of a booking') and enumerates the possible status values, which tells an agent exactly what the tool returns. Referencing that the booking was made with request_booking separates it from mutate/query siblings like cancel_booking or 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description and schema descriptions imply the correct context (a booking previously created via request_booking), but there is no explicit when-to-use versus when-not-to-use guidance or naming of alternatives for related queries. Usage is inferable but not stated.

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

get_businessGet business detailsA
Read-onlyIdempotent
Inspect

Get one business's public profile (city, address, hours, booking and cancellation policy, contact, FAQ) and its active services with prices, durations and weekly schedules. Read-only.

NameRequiredDescriptionDefault
business_idYesbusiness_id from search_businesses

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the trailing 'Read-only.' mostly restates structured data rather than adding disclosure. The description does reveal what the record contains (policies, schedules, active services), which is useful, but says nothing about behavior on unknown/inactive business IDs or response size.

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?

A single dense sentence that front-loads the action and resource, then lists the returns compactly. No filler and nothing buried.

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 no output schema, the description correctly carries the return-value burden by enumerating the profile fields and service attributes. It stops short of covering error behavior for missing or inactive businesses, which an agent would want for an id-based lookup.

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?

Only one parameter and schema description coverage is 100%, with the schema itself explaining that business_id comes from search_businesses. The description adds no format, casing, or validation detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('one business's public profile') and enumerates the payload: city, address, hours, policies, contact, FAQ, plus active services with prices, durations and schedules. The singular-by-id framing distinguishes it from the search_businesses sibling, though the distinction is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance, and no alternative is named. Usage is only inferable from the required business_id, whose schema description points back to search_businesses as the source of the identifier.

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

modify_bookingChange a bookingA
Destructive
Inspect

Change the slot or quantity of a pending, awaiting_payment or confirmed booking, when the customer asks to. Replaces the booking's time or quantity and frees the old place. Use a slot value from get_availability. A booking paid online can change its slot but not its quantity (cancel and rebook instead). Changes close at the same cutoff as online cancellation.

NameRequiredDescriptionDefault
slotNoNew slot value from get_availability
quantityNoNew number of people or places
booking_idYesbooking_id returned by request_booking
business_idYesbusiness_id from search_businesses
status_tokenYesstatus_token returned once by request_booking
idempotency_keyNoOptional key (8–64 letters, digits, _ . : -) that makes retries safe: the same key with the same parameters returns the original result

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag this as destructive and non-idempotent, and the description earns its keep by explaining exactly what the destructive behavior destroys ('frees the old place') and under what conditions a change is rejected (quantity change on online-paid bookings, cutoff timing). This is the kind of context annotations cannot express.

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?

Four short sentences, each carrying a distinct constraint: purpose and eligibility first, then the value source, then the paid-booking restriction, then the timing cutoff. No filler and no repetition of schema text.

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?

For a destructive mutation with no output schema, the description covers eligibility, value sourcing, constraints, and timing, which is nearly everything needed to call it correctly. The remaining gap is the partial-update semantics (must slot or quantity be supplied, can both be set at once).

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%, so the baseline is 3; the description adds real meaning beyond it by constraining when `quantity` is even usable (not for online-paid bookings) and pointing `slot` at get_availability as the value source. It doesn't clarify whether slot and quantity can be changed in the same call or what happens if neither is supplied.

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?

States a specific verb (change) and the exact fields it can change (slot or quantity), plus the eligible booking states (pending, awaiting_payment, confirmed). This is clearly distinguishable from siblings like cancel_booking and request_booking without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the trigger condition ('when the customer asks to'), the authoritative source for the slot value (get_availability), and an explicit alternative path: for online-paid bookings, cancel and rebook instead of changing quantity. It also names the timing boundary ('same cutoff as online cancellation'), so when-not-to-use is covered too.

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

request_bookingRequest a bookingAInspect

Create a booking for one open slot on behalf of the customer, after the customer has agreed to the service, time, quantity and contact details. Sends the customer's name, phone and email to the business. The result is either 'confirmed' or 'pending' (waiting for the business to confirm). Payment is at the venue, unless the business takes online payment (payment in get_business): then the status is 'awaiting_payment' with amount, currency, expires_at and payment_handlers, and the place is held until expires_at for complete_booking. Returns booking_id and a one-time status_token for get_booking_status, complete_booking, modify_booking and cancel_booking. Repeating the call for the same contact details, service and slot is rejected as a duplicate.

NameRequiredDescriptionDefault
noteNoOptional request for the business, e.g. 'first time, please arrive early'. Do not include health or medical information.
slotYesslot value from get_availability, e.g. 2026-10-20T19:30
emailYesCustomer's email, for the business to reach them
phoneYesCustomer's mobile phone, for the business to reach them
quantityYesNumber of people or places
service_idYesservice_id from get_business
business_idYesbusiness_id from search_businesses
customer_nameYesName the business should use
idempotency_keyNoOptional key (8–64 letters, digits, _ . : -) that makes retries safe: the same key with the same parameters returns the original result

TDQS

A4.6/5.0
Behavior5/5

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

Goes far beyond the annotations by disclosing the full outcome space ('confirmed', 'pending', 'awaiting_payment' with amount, currency, expires_at and payment_handlers), the place-hold semantics until expires_at, the default payment-at-venue rule, the one-time status_token, and duplicate-call rejection. This is exactly the behavioural context an agent needs before a write call.

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 purpose is front-loaded in the first clause and every subsequent sentence carries distinct information (recipient of contact data, outcome statuses, payment branch, credentials returned, duplicate rule). It is a dense single paragraph with nested parentheticals, which costs a little readability but no sentence is filler.

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

Completeness5/5

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

For a 9-parameter write tool with no output schema, the description supplies everything missing: return values (booking_id, status_token), all possible result statuses, the payment branch, hold expiry, and retry/duplicate behaviour. An agent could invoke and handle the response correctly from the description alone.

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%, so the baseline is 3, but the description adds meaning: slot, service_id and business_id are tied to the specific sibling tools that produce them, and the duplicate-rejection rule explains how retries behave (interacting with the optional idempotency_key). It does not explain the note field or quantity bounds, which the schema already covers.

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?

States a specific verb and resource ('Create a booking for one open slot on behalf of the customer') and immediately scopes it with prerequisites (customer agreement on service, time, quantity, contact details). It is clearly distinguished from siblings by naming get_availability, get_business, get_booking_status, complete_booking and modify_booking as separate steps.

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 gives a clear precondition ('after the customer has agreed...') and points to the source tools for its inputs (slot from get_availability, service_id from get_business). It also implies the follow-on path via complete_booking when payment is pending, but never states an explicit exclusion such as 'use modify_booking to change an existing booking'.

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

search_businessesSearch businessesA
Read-onlyIdempotent
Inspect

Search BOP's listed businesses by keyword (business name, city or district, or type of class) and/or category. Returns up to 10 businesses with a few matching services. Read-only.

NameRequiredDescriptionDefault
limitNoMaximum results, default 5
keywordNoWords to match, e.g. 'personal training' or 'Taipei'
categoryNogym, coaching (personal trainers), sauna, or recovery

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful return behavior by saying it returns up to 10 businesses with a few matching services. It does not discuss pagination, ordering, or empty-result behavior, so it is not fully rich.

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 two tight sentences with the core purpose and return behavior front-loaded. There is no filler, and the redundant 'Read-only' phrase is minor.

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?

For a simple search tool with fully described parameters and rich annotations, the description covers the essential purpose, inputs, and result size. Because there is no output schema, it carries some burden for return values, and it provides only a brief indication of what is returned. It is sufficient but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters and sets the baseline at 3. The description adds some semantic context by saying keyword matches business name, city or district, or type of class, and by noting keyword and category can be combined. It does not go beyond the schema on the limit parameter, but the added keyword meaning is meaningful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: search BOP's listed businesses. It also explains that search can be by keyword and/or category and says results include up to 10 businesses with matching services. It does not explicitly distinguish this from the sibling tool get_business, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the discovery tool for finding businesses by keyword or category. However, it does not explicitly state when to use this versus get_business, nor does it mention when not to use it. Usage is clear enough but left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updates
    • First observedcancel_booking
    • First observedcomplete_booking
    • First observedget_availability
    • First observedget_booking_link
    • First observedget_booking_status
    • First observedget_business
    • First observedmodify_booking
    • First observedrequest_booking
    • First observedsearch_businesses

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to find gyms and studios, check schedules and prices, start trial classes, and, after OAuth sign-in, view, book, or cancel classes with a membership. Public tools require no account, while member tools enforce each gym's booking rules and never pass payment data to the assistant.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to find coach-built training programs, coaching brains, races, gyms, classes and sports clinics, preview and build workouts with exercise demos, swap exercises, and plan around a sport or race. With OAuth it can also save workouts and programs, send coach notes to members, and read a member's logged history, planned sessions and lift progress.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables querying Anytime Fitness club occupancy, hourly forecasts, nearby clubs, and personal visit history through natural language.
    4
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to query and manage Altea Active memberships through natural language, including schedules, spot availability, instructor sessions, bookings, cancellations, and waitlists.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources