Cup24.it Availability
Server Details
Search private healthcare appointment availability across Cup24.it: services, doctors, clinics.
- Status
- Healthy
- Uptime
- 100.0% over 41 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
simple_search_availability appears to duplicate advanced_search_availability with no clear distinction in purpose or parameters. The other tools are distinct, but this overlap creates ambiguity in tool selection.
All names use snake_case, but conventions vary: search_available_clinics_map and search_suggest_city start with 'search', while advanced_search_availability, simple_search_availability, and smart_suggest_service use adjective prefixes. search_suggest_city is an awkward combination of two verbs. Still readable overall.
Five tools is well-scoped for a booking availability server, covering the essential search paths (city, service, clinic, slots) without unnecessary bloat.
The core discovery workflow (city -> service -> clinic -> availability) is covered, and advanced_search_availability returns booking_url for handoff. Minor gaps include no dedicated doctor search tool and the redundancy of simple_search_availability, but the surface is functional.
Available Tools
5 toolsadvanced_search_availabilityARead-onlyInspect
[DETAIL TOOL] Search appointment slots/cards. Use directly when clinic is known, or after search_available_clinics_map selection. Params: city (required), medical_service, doctor, clinic, start_day/end_day (YYYY-MM-DD). Date rules: 'tomorrow/domani' is the day after today; 'next week/prossima settimana' means the next calendar Monday-Sunday week, not tomorrow. If no results with doctor/clinic filters, automatically retries without them. Returns slots with booking_url for checkout (supports pre-filled params: &name=&last_name=&email=&phone=&tax_code=).
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name (full or partial, e.g., 'Firenze', 'Milan') | |
| clinic | No | Clinic/facility name (full or partial) | |
| doctor | No | Doctor name (full or partial, e.g., 'Mario Rossi') | |
| end_day | No | Ending date for availability search (YYYY-MM-DD) | |
| detailed | No | Return full slot details (default: false, returns summary) | |
| start_day | No | Starting date for availability search (YYYY-MM-DD, default: today) | |
| medical_service | No | Service name or symptom description (full or partial, e.g., 'Rx Braccio', 'blood test', 'back pain') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotation, the description discloses important behavioral details: date interpretation rules, automatic retry without filters when no results are found, and the return of booking URLs with pre-fillable parameters. This significantly helps an agent anticipate tool 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?
The description is dense but well-structured, starting with the core purpose, then usage, parameters, date rules, retry behavior, and return value. Each sentence adds necessary information without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description covers the return value (slots with booking_url) and key behavioral rules thoroughly. It provides enough context for an agent to select and invoke the tool correctly, including parameter formats and fallback logic.
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?
While the schema already describes all parameters (100% coverage), the description adds semantic value by explaining date rule nuances ('tomorrow/domani', 'next week') and the retry behavior. This goes beyond the schema descriptions, though it doesn't add detailed semantics for every parameter.
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 appointment slots/cards, using a specific verb and resource. It also sets it apart as a DETAIL TOOL and provides usage context that distinguishes it from sibling tools like search_available_clinics_map.
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?
Explicit guidance is given on when to use the tool directly (when clinic is known) and when to use it after search_available_clinics_map selection. This provides clear usage conditions and implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_available_clinics_mapARead-onlyInspect
[MAP TOOL] Discover clinics with availability and render them on map/sidebar. Params: city (required) + one of medical_service/doctor/clinic, optional date/time range. Date rules: 'tomorrow/domani' is the day after today; 'next week/prossima settimana' means the next calendar Monday-Sunday week, not tomorrow. Then wait for user click in widget; after selection run advanced_search_availability with city + medical_service + selected clinic.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name (full or partial, e.g., 'Firenze', 'Milan') | |
| clinic | No | Clinic/facility name (optional, narrows clinic search) | |
| doctor | No | Doctor name (optional, narrows clinic search) | |
| end_day | No | End date (YYYY-MM-DD) | |
| distance | No | Max distance in km (default: 15) | |
| end_time | No | Daily end time HH:mm (e.g., 18:00) | |
| start_day | No | Start date (YYYY-MM-DD, default: today) | |
| start_time | No | Daily start time HH:mm (e.g., 09:00) | |
| medical_service | No | Service name or symptom description (e.g., 'ecografia addome completo') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, but the description adds crucial behavioral context: the tool requires a user click in the widget and then delegates to advanced_search_availability. It also clarifies date semantics ('tomorrow', 'next week'), which are essential for correct usage. 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?
The description is compact and front-loaded: the first sentence states the main purpose, and the second sentence provides essential usage constraints and workflow steps. Every sentence earns its place, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no output schema), the description provides a solid overall picture: it explains the output behavior (map/sidebar rendering), the interactive wait, and the follow-up tool call. It does not cover error handling or pagination, but the core workflow is sufficiently described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 9 parameters with descriptions, but the description adds significant semantic constraints not present in the schema: the requirement to provide one of medical_service/doctor/clinic combined with city, and the interpretation of natural-language date expressions. This goes beyond what the schema alone conveys.
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 function with a specific verb: 'Discover clinics with availability and render them on map/sidebar.' It also distinguishes itself from sibling tools by emphasizing the map/sidebar rendering and the interactive widget workflow, which is unique among the listed sibling 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?
The description provides explicit usage guidance by specifying the required parameter combination (city plus one of medical_service/doctor/clinic) and the follow-up call to advanced_search_availability after widget interaction. However, it does not explicitly name alternative tools for when this tool should not be used, though the context implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_suggest_cityARead-onlyInspect
Find cities by partial name. Use when: User mentions unfamiliar city or you need coordinates. Returns: City names, coordinates, province, region. Follow: Use city name with advanced_search_availability.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Partial city name (e.g., 'milan', 'rome') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read behavior is known. The description adds value by disclosing the exact return fields ('City names, coordinates, province, region') and the partial-match behavior, which is important because there is no output schema. This exceeds the baseline for annotation-backed tools.
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 compact and well-organized into three labeled sections: action, usage trigger, returns, and follow-up. Every sentence serves a distinct purpose without redundancy. It is front-loaded with the core action and provides essential details efficiently.
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 input schema (one parameter), strong annotations (read-only, non-destructive), and lack of an output schema, the description covers all essential aspects: what it does, when to use it, what it returns, and how to proceed afterward. There are no significant gaps for a tool of this complexity.
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 parameter 'term' is already well-described as a 'Partial city name.' The description's phrase 'by partial name' reinforces this but does not add new semantic detail beyond the schema. With a single, clearly documented parameter, the 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 the tool's function with a specific verb and resource: 'Find cities by partial name.' It distinguishes itself from siblings (which focus on availability searches) by being a location lookup tool. The return fields are also listed, further clarifying its purpose.
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 provides explicit usage context: 'Use when: User mentions unfamiliar city or you need coordinates.' It also directs the agent on next steps: 'Follow: Use city name with advanced_search_availability.' This clearly informs when to use this tool and how to apply its output, even if it doesn't formally mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simple_search_availabilityCRead-onlyInspect
Search available booking slots.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name (full or partial, e.g., 'Firenze', 'Milan') | |
| end_day | No | Ending date for availability search (YYYY-MM-DD) | |
| start_day | No | Starting date for availability search (YYYY-MM-DD, default: today) | |
| medical_service | Yes | Service name or symptom description (full or partial, e.g., 'Rx Braccio', 'blood test', 'back pain') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds no additional behavioral context such as response format, filtering behavior, or limitations. It merely restates the function without providing insights beyond what annotations already cover.
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 sentence with no wasted words, making it highly concise. However, it is somewhat minimal and borders on tautology, which prevents a perfect score.
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?
As a search tool with four parameters, no output schema, and several siblings, the terse description does not address usage context, result expectations, or the distinction from the advanced search tool. This leaves significant gaps for an agent to correctly invoke the 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?
The input schema has 100% description coverage, documenting all four parameters including their formats and examples. Since the schema carries the semantic load, the description's lack of parameter details is acceptable, and the baseline score 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?
The description 'Search available booking slots.' clearly states the tool's function with a specific verb and resource. However, it does not differentiate from the sibling tool 'advanced_search_availability', relying only on the name 'simple' to hint at a distinction.
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 provides no guidance on when to use this tool versus alternatives like 'advanced_search_availability' or 'search_available_clinics_map'. There are no usage conditions, exclusions, or prerequisites mentioned, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_suggest_serviceARead-onlyInspect
Smart service finder (text search + AI combined). Use when: User has vague symptoms/descriptions OR you need to explore service options before booking. Runs parallel search and AI prediction, merges results by relevance. Returns: Service names and IDs. Follow: Use service info with advanced_search_availability.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Service name, symptom, or medical need description (e.g., 'blood test', 'back pain', 'x-ray arm') | |
| top_k | No | Number of results to return (default: 5, max: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral context by explaining it 'Runs parallel search and AI prediction, merges results by relevance,' and discloses return values ('Service names and IDs'). This goes beyond annotations without contradicting them.
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 and well-structured, leading with the core purpose, then usage conditions, behavior, return value, and a follow-up recommendation. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With simple schema, good annotations, and no output schema, the description provides sufficient context: what it does, when to use, what it returns, and a next step. It could theoretically mention pagination or top_k behavior, but the schema covers that, so this is complete enough.
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%, and both parameters have descriptions in the schema itself. The tool description does not add extra parameter details; the 'text' param's flexibility (vague symptoms) is already in the schema. Thus baseline 3 is appropriate since schema carries the burden.
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 function: 'Smart service finder (text search + AI combined)' with a specific verb ('find') and resource ('services'). It distinguishes itself from siblings by emphasizing vague symptoms and exploration before booking, making it clear this is for fuzzy discovery rather than precise lookup.
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?
Explicit 'Use when' conditions are given: 'User has vague symptoms/descriptions OR you need to explore service options before booking.' This provides clear context for when to invoke it. However, it lacks explicit when-not-to-use or direct alternative tool names, though it references 'advanced_search_availability' as a follow-up, implying a workflow.
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.
15 tool updates
- Changed
advanced_search_availability1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Removed
company_resolution - Removed
entity_resolution - Removed
get_availability_link - Removed
get_management_url - Removed
get_order_refund_details - Removed
list_orders - Removed
refund_url - Removed
search_availability_by_doctor - Changed
search_available_clinics_map1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Removed
search_knowledge_base - Changed
search_suggest_city1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Removed
service_info - Changed
simple_search_availability5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / end_day / descriptionPrevious value: -"Ending date for availability search (YYYY-MM-DD, default: 30 days after start_day)"New value: +"Ending date for availability search (YYYY-MM-DD)" - removed
Input schema / properties / lowest_priceRemoved value: -{ - "description": "When true, return the lowest-priced available slots first.", - "type": "boolean" -} - removed
Input schema / properties / part_of_dayRemoved value: -{ - "anyOf": [ - { - "enum": [ - "morning", - "afternoon", - "day" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Part of the day to search: morning (00:00-14:00), afternoon (14:00-23:59). Use day, null, or omit for no time filter." -} - changed
Input schema / properties / start_day / descriptionPrevious value: -"Starting date for availability search (YYYY-MM-DD). Omit to search from today; never pass a past date."New value: +"Starting date for availability search (YYYY-MM-DD, default: today)"
- Changed
smart_suggest_service1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
15 tool updates
- Changed
advanced_search_availability1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Added
company_resolution - Added
entity_resolution - Added
get_availability_link - Added
get_management_url - Added
get_order_refund_details - Added
list_orders - Added
refund_url - Added
search_availability_by_doctor - Changed
search_available_clinics_map1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Added
search_knowledge_base - Changed
search_suggest_city1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Added
service_info - Changed
simple_search_availability5 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / end_day / descriptionPrevious value: -"Ending date for availability search (YYYY-MM-DD)"New value: +"Ending date for availability search (YYYY-MM-DD, default: 30 days after start_day)" - added
Input schema / properties / lowest_priceAdded value: +{ + "description": "When true, return the lowest-priced available slots first.", + "type": "boolean" +} - added
Input schema / properties / part_of_dayAdded value: +{ + "anyOf": [ + { + "enum": [ + "morning", + "afternoon", + "day" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Part of the day to search: morning (00:00-14:00), afternoon (14:00-23:59). Use day, null, or omit for no time filter." +} - changed
Input schema / properties / start_day / descriptionPrevious value: -"Starting date for availability search (YYYY-MM-DD, default: today)"New value: +"Starting date for availability search (YYYY-MM-DD). Omit to search from today; never pass a past date."
- Changed
smart_suggest_service1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
1 tool update
- Changed
simple_search_availability3 fields changed- removed
Input schema / properties / clinicRemoved value: -{ - "description": "Clinic/facility name (full or partial)", - "type": "string" -} - removed
Input schema / properties / doctorRemoved value: -{ - "description": "Doctor name (full or partial, e.g., 'Mario Rossi')", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "city" -]New value: +[ + "city", + "medical_service" +]
1 tool update
- Changed
simple_search_availability1 field changed- removed
Input schema / properties / detailedRemoved value: -{ - "description": "Return full slot details (default: false, returns summary)", - "type": "boolean" -}
1 tool update
- Added
simple_search_availability
1 tool update
- Changed
advanced_search_availability1 field changed- added
Input schema / properties / end_dayAdded value: +{ + "description": "Ending date for availability search (YYYY-MM-DD)", + "type": "string" +}
4 tool updates
- First observed
advanced_search_availability - First observed
search_available_clinics_map - First observed
search_suggest_city - First observed
smart_suggest_service
Related MCP Connectors
Find Italian doctors and health practitioners: profile, services, prices, free booking slots.
Find and book UK private physiotherapy, osteopathy and chiropractic clinics, with live availability.
Find local services, check live availability, and book real appointments with consent.
Search providers, check availability, book evaluations, and estimate insurance copays.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables finding doctors in Romania by county, speciality, language, name, and weekly availability, with fuzzy name matching and nearby-county fallback.24 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Doctolib's public data to find practitioners, retrieve all available appointment slots in a geographic area, access practice details, and receive alerts when new slots open.MIT
- AlicenseAqualityBmaintenanceFind 76,000+ curated healthcare service vendors across 25 categories and all 50 US states. Search by category, specialty, city, state, and EHR system to identify billing, credentialing, EHR, and practice-consulting vendors that serve medical practices.3MIT
- FlicenseAqualityDmaintenanceEnables users to interact with the CUF health portal to retrieve patient information, appointments, clinical documents, invoices, and prescriptions through natural language.122-
Glama MCP Gateway
Add one secure layer between your agents and this server.