ERA Phuket Booking
Server Details
Services, prices, free slots and booking at ERA Barbershop & Beauty Space, Phuket
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
list_services and search both query services/prices and their boundary is fuzzy (only 'returns ids for fetch' distinguishes them), and 'fetch' is a vague complement to both. create_booking versus get_booking_link are distinguishable by description, but an agent could reasonably pick either when a user says 'book me'.
Four tools follow a clear verb_noun pattern (create_booking, find_available_slots, get_booking_link, get_salon_info, list_services), but 'fetch' and 'search' are bare verbs with no object, breaking the convention and adding no domain signal.
Seven tools is a tight, well-scoped set for a salon booking flow. No tool feels purely decorative; the only redundancy is the overlapping search surface.
The pre-booking and create path is covered (services, slots, info, link, create), but there is no way to look up, cancel, or reschedule an existing booking, which are core lifecycle operations for a booking domain.
Available Tools
7 toolscreate_bookingBook an appointmentAInspect
Creates a real appointment in the salon calendar. ONLY call after the user explicitly confirmed: services, master (or any), date and time, their name and phone. The salon may contact the client to confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | ||
| comment | No | Wishes for the master, preferred language, etc. | |
| datetime | Yes | Start time from find_available_slots, e.g. 2026-10-22T14:00:00+07:00 | |
| staff_id | No | 0 or omitted = any available master | |
| client_name | Yes | ||
| service_ids | Yes | ||
| client_email | No | ||
| client_phone | Yes | International format, e.g. +66 81 234 5678 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=false, so the write/idempotency profile is covered. The description adds non-obvious behavior beyond that: the booking is real, and the salon may contact the client to confirm. It does not warn about duplicate submissions or what happens if the slot was taken.
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 compact sentences: the effect first, then the prerequisite gate. Every clause carries information and nothing is repeated from the schema or annotations.
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 mutating, open-world, non-idempotent tool with no output schema, the description covers the effect and the preconditions well. It leaves unstated what is returned (e.g. a booking id) and how conflicts or duplicate calls are handled, which is the main remaining gap.
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 50%, with datetime and staff_id already documented in-schema. The description maps its confirmation checklist onto service_ids, staff_id, datetime, client_name and client_phone, which helps prioritize inputs, but adds no format or syntax meaning beyond the schema, and lang/client_email remain unexplained.
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 ('Creates a real appointment in the salon calendar'), and the word 'real' hints that this commits an actual booking rather than producing a link. It does not explicitly name sibling tools like find_available_slots or get_booking_link, so an agent must infer the division of labor.
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?
Gives an explicit gating precondition: 'ONLY call after the user explicitly confirmed' with an enumerated checklist of services, master, date/time, name and phone. That is clear when-to-call guidance, though it never names an alternative tool or a when-not-to-call case beyond the missing-confirmation gate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch ERA itemBRead-onlyIdempotentInspect
Full details for an id returned by search.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered elsewhere. The description adds nothing behavioral on top: no not-found/expired-id behavior, no indication of what happens with a malformed id up to the 60-char limit.
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 front-loaded sentence with no filler or repetition of the title. It is arguably under-specified rather than bloated, which is a separate concern from conciseness.
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 low-complexity, single-parameter read tool with annotations covering the safety profile, a minimal description is defensible. But with no output schema, the vague promise of 'full details' leaves the agent unaware of the return shape, which is the one thing that should have been spelled out.
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 0%, so the description bears the burden for the single `id` parameter. It usefully states the id's provenance ('returned by search'), but gives no format, casing, or length guidance beyond the schema's maxLength of 60.
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 concrete operation (retrieve full details) on a specific resource (the item behind a search-result id), and ties it explicitly to the `search` sibling, so an agent can distinguish it from re-querying search. The resource itself ('ERA item') is only named in the title, which keeps it short of a 5.
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 phrase 'an id returned by search' implies the workflow precondition (call `search` first, then fetch), which is genuinely useful routing. However there is no statement of when NOT to use it or how it relates to the other siblings such as `get_salon_info` or `get_booking_link`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_available_slotsFree time slotsARead-onlyIdempotentInspect
Live free start times from the salon calendar for one or more services, optionally with a specific master (staff_id). Returns dates with times (Asia/Bangkok) and masters who do the service.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | First date to check, YYYY-MM-DD (default today) | |
| days | No | How many bookable days to return (default 3) | |
| staff_id | No | Master ID; omit or 0 for any master | |
| service_ids | Yes | Service IDs from list_services |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld. The description adds genuinely new context beyond that: the data is 'live' from the calendar, times are in Asia/Bangkok, and results include the masters who perform the service. No auth or rate-limit caveats are given, but the added return/timezone context is substantive.
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 tight sentences, zero waste, with the core action ('Live free start times...') front-loaded before the optional filter and return shape.
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 carries the burden of describing return values and does so ('dates with times (Asia/Bangkok) and masters who do the service'). It could be slightly richer about the shape/grouping of results, but nothing essential for calling the tool is missing.
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 every parameter (date, days, staff_id, service_ids) is already documented. The description reinforces the optional staff_id ('specific master (staff_id)') and the multi-service capability, but adds no format, constraint, or default detail beyond the schema. Baseline 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+resource ('Live free start times from the salon calendar') with the scope ('one or more services, optionally with a specific master'). It is clearly distinguishable from siblings like create_booking and list_services without opening a 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?
Usage is implied: this is the availability lookup you call before create_booking. But the description never explicitly says when to use it versus alternatives, nor does it state prerequisites (e.g. that services must come from list_services) or any when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_linkBooking linkBRead-onlyIdempotentInspect
A link where the user can complete booking themselves, with the service and master preselected.
| Name | Required | Description | Default |
|---|---|---|---|
| staff_id | No | ||
| service_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds the useful detail that the returned link carries preselected service and master, but says nothing about whether the link is persisted, time-limited, or how it is returned.
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?
A single compact sentence that front-loads the deliverable (a link) before the preselect detail. Nothing is wasted, though the phrasing describes the artifact rather than the action.
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 correctly tells the agent the return value is a link, and it covers both params conceptually. For a simple two-param read tool this is near-sufficient, but it leaves open whether the link is generated on demand or retrieved.
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 0%, so the schema offers no help, but the description maps the two params conceptually (service = service_id, master = staff_id), which is meaningful compensation. It still omits requiredness and value-format detail for both parameters.
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 states a specific resource (a booking link) and its scope (service and master preselected). It implicitly distinguishes from create_booking by making clear the user, not the agent, completes the booking, though it names no sibling 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?
There is no explicit when-to-use guidance or reference to alternatives like create_booking or find_available_slots. The agent must infer that this is for handing off booking to the user, which is a reasonable but undocumented inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_salon_infoSalon infoBRead-onlyIdempotentInspect
Address (English and Thai for taxi drivers), map links, opening hours, phone/WhatsApp/Telegram, languages spoken and booking options of ERA in Bang Tao, Phuket.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful content-level context (static venue metadata, Thai address for taxi drivers), but does not say the result is static/cacheable or what shape the response takes.
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?
A single dense sentence with every item earning its place, front-loading the most operationally useful facts (address, hours, contact). It is a fragment rather than a full sentence, but nothing is wasted.
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 effectively serves as the return-value contract by enumerating the fields returned. Combined with annotations covering safety and an empty input schema, an agent has enough to call it correctly; only the exact response format is 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no inputs are needed.
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 enumerates exactly what the tool returns – address in English and Thai, map links, opening hours, contact channels, languages, booking options – for one specific venue (ERA in Bang Tao, Phuket). It is clear what the resource is, though it is phrased as a content list rather than a verb+resource statement, and it does not name a sibling it differs from.
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?
There is no explicit guidance on when to call this versus alternatives. The mention of 'booking options' overlaps with get_booking_link without stating which one to use for making or linking a booking, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesServices & pricesARead-onlyIdempotentInspect
Search ERA services with current prices in THB, durations and master levels (ONE / PRO / PRIME). Use q for keywords in any language (e.g. "gel manicure", "балаяж", "beard").
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search text | |
| lang | No | Language for service names | |
| audience | No | Filter by audience |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds real context beyond them: prices are in THB, results carry durations and master levels (ONE/PRO/PRIME), and keyword matching works across languages. It omits any note on result size, pagination, or empty-result behavior.
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 tightly written sentences: the capability and returned fields come first, then the one actionable parameter hint. No filler, no repetition of the title, and the examples earn their space by showing multilingual matching.
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?
There is no output schema, so the description usefully names the shape of the response (prices, durations, master levels). All three parameters are documented and annotations carry the safety profile. It could be slightly more complete by indicating how results are ordered or bounded.
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, and the description genuinely adds meaning: it explains that q accepts free-text keywords in any language and gives concrete examples ('gel manicure', 'балаяж', 'beard'), which is more than the schema's bare 'Search text'. It says nothing extra about lang or audience beyond their enum values.
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 ('Search ERA services') and even enumerates the returned attributes (current prices in THB, durations, master levels), which makes it clearly distinct from generic siblings like search or fetch. It never names a sibling tool explicitly, so it stops short of full differentiation.
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 concrete guidance for the q parameter ('use q for keywords in any language') with multi-language examples, which implies the browse-vs-search modes since no parameters are required. There is no explicit when-to-use/when-not or pointer to an alternative tool such as find_available_slots for booking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch ERABRead-onlyIdempotentInspect
Search ERA services, prices and salon information. Returns ids for fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior. The description adds the searchable domain and that results are IDs for fetch, which helps workflow planning, but it does not cover auth needs, rate limits, or result format beyond IDs.
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, front-loaded with purpose and return behavior. There is no redundant or wasted text.
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 one-parameter read-only search with rich annotations and no output schema, the description supplies the essential purpose and return handoff to fetch. It is adequate, though it could mention query semantics and when to use it over sibling lookup 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?
The single 'query' parameter has 0% schema description coverage. The description indicates the query spans services, prices, and salon info, but gives no syntax, matching behavior, or format guidance.
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, 'Search', and the resources covered: services, prices, and salon information. It also states the follow-on behavior, returning IDs for fetch, which distinguishes it from fetch itself, though not explicitly from list_services or get_salon_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?
Implies use for discovery/search and that results feed into fetch, but does not state when to choose it over list_services or get_salon_info, nor any exclusions. Guidance is only inferred.
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.
7 tool updates
- First observed
create_booking - First observed
fetch - First observed
find_available_slots - First observed
get_booking_link - First observed
get_salon_info - First observed
list_services - First observed
search
Related MCP Connectors
Real-time booking for Korean beauty & wellness shops — search availability, get a booking link.
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 salons, barbershops, spas and med spas on Belcome, see services, prices and open times.
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
- AlicenseAqualityAmaintenanceSelf-hosted Fresha API and MCP server in Python: 17 Fresha tools for appointments, clients, services, team and reviews, on the session of your own Chrome. Personal use.217150 PyPI6PolyForm Noncommercial 1.0.0
- FlicenseNot gradedqualityDmaintenanceThe owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer-
- AlicenseNot gradedqualityDmaintenanceSurf Park live session availability for booking and cancellation. Made by surfers for wave pools worldwideMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.