Timio
Server Details
Find salons and barbers that book through Timio, see services and free times, get the booking link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool occupies a distinct stage of a single flow: discover businesses, list services, find free slots, and produce a pre-filled booking link. There is no overlap in resource or action, and the descriptions cross-reference each other (e.g. slots use ids from get_services), so an agent can select unambiguously.
All four names follow a uniform snake_case verb_noun pattern (search_businesses, get_services, get_available_slots, get_booking_link). The verb choice is meaningful — 'search' for discovery, 'get' for retrieval — with no style mixing.
Four tools is a tight, purposeful set that mirrors the actual booking funnel with no filler or redundant entries. It sits at the low end of the comfortable range, but the domain is narrow enough that nothing feels padded or missing at the surface level.
The end-to-end path from business discovery through service selection, availability, and a pre-filled booking link is fully covered, and booking itself intentionally happens on the Timio web page rather than via a tool. Minor gaps: no way to fetch a single business's full detail or professional list by id without re-searching, and no tool to check or cancel an existing appointment.
Available Tools
4 toolsget_available_slotsCheck free appointment timesARead-onlyIdempotentInspect
Free start times for one service, in the business's local time zone, for the next days. Use the service id from get_services. Optionally pick a professional and a start date. Times change as people book; the booking link shows the current times.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | First day to check, YYYY-MM-DD in the business's local date. Default: today. | |
| days | No | How many days to check (1 to 14). Default 7. | |
| business | Yes | The business identifier returned by search_businesses (the part after /agendar/ in its booking link). | |
| service_id | Yes | Service id from get_services. | |
| professional_id | No | Professional id from get_services. Leave out for any professional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for adding what they cannot: results are in the business's local time zone and are volatile ('times change as people book'). It does not describe output shape, but with no output schema this is a minor gap given the volatility warning is the key behavioral risk.
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 short sentences with the resource and scope front-loaded, followed by dependency guidance and then a freshness caveat. No sentence is redundant and nothing important is buried.
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 5-parameter read with no output schema, the description covers what is returned (start times), where the identifiers come from, the time-zone semantics, and result volatility. Only the exact return format (e.g., list of timestamp strings vs objects) is left unstated.
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 date format, days range, business id derivation, and professional_id. The description only restates optionality and adds the local-time-zone framing for dates, which is a small increment over the structured fields.
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?
States a specific verb+resource ('free start times for one service') plus scope qualifiers: single service, business local time zone, bounded horizon. It is clearly distinguishable from get_services (ids) and get_booking_link (booking), so an agent can pick it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to get_services for the service_id and notes that a professional filter is optional. The closing sentence about the booking link hints at get_booking_link for live times but never states the when-to-use condition for that alternative, so the routing is clear but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_linkGet the booking linkARead-onlyIdempotentInspect
Booking page link for a business, with the service, professional, date and time already chosen when given. The client confirms name and phone on that page; nothing is booked until they do.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD. | |
| time | No | HH:MM, 24-hour, from get_available_slots. | |
| business | Yes | The business identifier returned by search_businesses (the part after /agendar/ in its booking link). | |
| service_id | No | Service id from get_services. | |
| professional_id | No | Professional id from get_services. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description supplies the key behavioral fact an agent needs: generating the link books nothing, and the client commits by confirming name and phone on the page. That explains why readOnlyHint is true and prevents an agent from telling a user their appointment is confirmed. It omits link lifetime or single-use behavior, which would have made it a 5.
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 core output is stated first, followed by the one behavioral caveat that matters most. Every clause earns its place.
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 five well-documented parameters, one required, and annotations covering the safety profile, the description gives enough to call the tool correctly and to explain the result to a user. The return value (a URL) is only implied by the name rather than stated, a minor gap given there is no 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 description coverage is 100%, so each of the five parameters is already documented with source tools and formats. The phrase 'when given' adds a small amount of meaning by flagging that service, professional, date and time are optional pre-fills. That is a marginal gain over the schema, so the baseline applies.
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 says plainly that it produces a booking page link for a business, pre-populated with service, professional, date and time. An agent can tell this is a link/URL generator rather than a search or slot-lookup tool. It does not name the sibling tools, so differentiation comes only from the schema's cross-references rather than from the description itself.
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?
Usage is implied rather than stated: the reader infers this is the step taken after picking a business, service and slot. The hand-off to get_available_slots and get_services appears only in the schema's parameter descriptions, not in the tool description. There is no explicit when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesList a salon's servicesARead-onlyIdempotentInspect
List the services a business offers for online booking, with duration and price when the business shows prices, plus its professionals, address and booking link.
| Name | Required | Description | Default |
|---|---|---|---|
| business | Yes | The business identifier returned by search_businesses (the part after /agendar/ in its booking link). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds genuine value beyond that by disclosing the response contents and the conditional nature of pricing ('when the business shows prices'), which warns the agent that price may be absent.
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?
One dense sentence with the resource front-loaded and no filler. It is slightly run-on with the appended list of returned fields, but every clause carries information an agent needs.
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 no output schema, the description takes on the burden of describing return values and does so concretely. For a single-parameter read tool with full annotation coverage, the only real omission is guidance on ordering relative to sibling tools.
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% and the single 'business' parameter is fully explained there, including how to obtain it from search_businesses. The description adds no further parameter meaning, so the baseline of 3 applies.
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?
States a specific verb and resource ('List the services a business offers') and goes further by enumerating what comes back: duration, price, professionals, address and booking link. An agent can tell it apart from get_available_slots or get_booking_link by the returned content, though it never names those siblings explicitly.
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?
Usage is only implied by the phrase 'for online booking' — there is no explicit statement of when to call this versus search_businesses (to find the business first) or get_booking_link. The dependency on a business identifier from search_businesses appears only in the schema, not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesFind a salon that books through TimioARead-onlyIdempotentInspect
Find hair salons, barbershops, nail salons, brow and lash studios and beauty clinics that take online bookings through Timio, in Brazil, Ireland, the United States and Spain. Search by city or neighborhood, by the business name, or by service (for example 'gel nails', 'corte masculino', 'manicura'). Returns each business with its location, a few services and its booking link.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Business name, service or type of business, in any language. | |
| country | No | Limit to one country (ISO code). | |
| location | No | City or neighborhood, for example 'Pinheiros, São Paulo', 'Dublin' or 'Madrid'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context, and it does: it discloses what is returned per business (location, a few services, booking link) and the fact that results are limited to Timio-bookable businesses. It omits result-count limits or pagination behavior, which matters for a search tool.
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 tight sentences: what it finds, where, how to search, and what comes back. Nothing is redundant and the most important scope information leads.
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 three-optional-parameter search tool with no output schema, the description is nearly complete — coverage, verticals, query styles, and return contents are all stated. Only result-set sizing and behavior on empty/ambiguous queries are left unaddressed.
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 all three parameters are already documented, and the description largely echoes that (city/neighborhood, name, service). It adds mild value by emphasizing multilingual query terms in non-English languages, but gives no guidance on combining query with location or country.
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 names a specific verb (find) and resource (beauty businesses that book through Timio), and enumerates the supported verticals, so an agent knows exactly what this tool returns versus get_services or get_available_slots. The geographic scope and searchable facets are stated up front.
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?
Usage is implied rather than prescribed: it makes clear this is the entry point for locating a business, and the examples ('gel nails', 'Dublin') show valid search styles. However, it never states when to prefer this over get_services, nor does it say whether all parameters are optional or what happens with an empty query.
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.
4 tool updates
- First observed
get_available_slots - First observed
get_booking_link - First observed
get_services - First observed
search_businesses
Related MCP Connectors
Search and book appointments at local businesses. Barbershops, salons, spas, and more.
Find a salon, barber or studio, see free time, get the booking link. Serves claude.ai and ChatGPT.
Find businesses that use ServeCounter, see their services, prices and free times, and book.
Find local services, check live availability, and book real appointments with consent.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to look up businesses, find free appointment slots, book, list and cancel appointments at salons, barbershops, nail and brow studios and clinics. Works read-only without a customer login by returning a pre-filled booking link, and can also run against a built-in demo with sample businesses.5MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to query real-time reservation availability for Naver Booking places in Korea, including beauty salons, restaurants, and other categories.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search for businesses, check availability and pricing, and book appointments after user confirmation through trusted WebMCP tools.3 npmMIT
- AlicenseAqualityAmaintenanceBook a table, an appointment or a place in a class at a real local business. Live availability, instant confirmation, no account and no API key. Eight tools: search, fetch, get_business, check_availability, create_booking, check_booking, cancel_booking and request_listing. Guest emails in eight languages. Hosted at https://g-guest.app/api/mcp88 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.