Urlaub Smart
Server Details
Plan vacation days around public holidays, bridge days and school holidays in DE, AT and CH
- Status
- Healthy
- Uptime
- 99.8% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Most tools are clearly distinct, but best_bridge_days and plan_vacation overlap significantly: both return booking dates, holidays used, factors, and markdown tables. The descriptions help separate them, but an agent could still struggle to choose between them.
Tool names are all lowercase snake_case, but the pattern is mixed: list_regions and plan_vacation follow verb_noun, while best_bridge_days, childcare_gap, and public_and_school_holidays are noun phrases. The names are readable but not consistently structured.
Five tools is well-scoped for a vacation-planning domain: one reference tool for regions, one raw holiday data tool, two planning tools, and one specialized childcare coverage tool. Each tool has a justified place in the set.
The tool surface covers the full workflow: discovering regions, retrieving public and school holidays, computing optimal vacation plans, finding bridge days, and evaluating school holiday coverage for parents. No critical dead ends or missing operations are apparent.
Available Tools
5 toolsbest_bridge_daysBest bridge days and leversAInspect
The six best non-overlapping vacation levers of a year for a region: classic bridge days (1 vacation day → 4 days off) and holiday clusters (e.g. 4 days → 10 days off), with booking dates, holidays used and factor. Includes a markdown table and the page URL.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Planning year; defaults to the year people currently plan for | |
| locale | No | Language of names and explanations (German only) | de |
| region | Yes | Region as name, slug or ISO code, e.g. "Bayern", "bavaria", "DE-BY", "Tirol", "Zürich" or a country like "Deutschland" / "AT". Germany, Austria and Switzerland only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It does disclose the main output behavior: non-overlapping levers, booking dates, holidays used, factor, a markdown table, and a page URL. It does not cover failure modes, data source behavior, or rate limits, but for a read-only informational tool the disclosed output shape is reasonably 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 dense, front-loaded sentences with no filler. The ratio examples clarify the otherwise jargon-y term 'levers,' and the output details earn their place. 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?
For a read-only tool returning a fixed six-item list, the description covers the result categories, included fields, markdown table, and page URL. Input parameters are fully documented in the schema, so the absence of an output schema is adequately compensated by the concrete output description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds useful context around what 'levers' and 'factor' mean, but it does not add parameter-specific guidance beyond what the schema already provides for year, locale, and region.
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 exactly what the tool computes: the six best non-overlapping vacation levers for a year and region, with concrete examples of the lever types. This is specific enough to distinguish it from sibling tools like public_and_school_holidays and plan_vacation, even though those siblings are not named.
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 scope 'of a year for a region' and the focus on optimized bridge days/clusters implies the use case, so an agent can infer when to use it. However, there is no explicit guidance about when to prefer it over plan_vacation or public_and_school_holidays, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
childcare_gapSchool-holiday childcare gapAInspect
How much of a region's school holidays two vacation accounts cover, and which weeks stay open. School holidays run to about 60 working days a year while a vacation account holds 30, so a care day always costs exactly one vacation day and a joint family holiday costs two and covers one. Answers "can we cover the school holidays" for parents.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Planning year; defaults to the year people currently plan for | |
| locale | No | Language of names and explanations (German only) | de |
| region | Yes | Region as name, slug or ISO code, e.g. "Bayern", "bavaria", "DE-BY", "Tirol", "Zürich" or a country like "Deutschland" / "AT". Germany, Austria and Switzerland only. | |
| jointDays | No | Care days the family wants to spend together; they cost both parents a day and cover one. Default 10. | |
| vacationDays | No | Vacation days of the first parent | |
| partnerVacationDays | No | Vacation days of the second parent; omit to ask for one person alone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the core behavioral model: school holidays are about 60 working days, a vacation account holds 30 days, a care day costs exactly one vacation day, and a joint family holiday draws from both accounts while covering one day. With no annotations, the description carries the burden and does so meaningfully, though it stops short of describing the output format or edge cases.
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 sentences with no filler: result, underlying model, and intended use case. The most important information is front-loaded, and every sentence 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?
The description explains the computation and roughly what the tool returns—coverage amount and open weeks—but it does not specify whether the coverage figure is days or a percentage or how the weeks list is structured. With no output schema and no annotations, that level of detail would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds a useful global invariant: a care day always costs exactly one vacation day. This connects vacationDays, partnerVacationDays, and jointDays into a coherent calculation model beyond what the individual field descriptions say.
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 is specific about what the tool computes: how much of a region's school holidays two vacation accounts cover and which weeks remain open. It clearly states the question it answers for parents, but it does not explicitly distinguish itself from sibling tools like best_bridge_days or plan_vacation.
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 clear context for when to use the tool: it answers 'can we cover the school holidays' for parents. It does not mention when not to use it or point to alternatives, but the use case is explicit enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regionsList supported countries and regionsAInspect
Countries and their regions (German states, Austrian states, Swiss cantons, …) with codes, names and slugs accepted by the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does not explicitly state that the tool is read-only or has no side effects, though the nature of a reference list implies safety. This lack of explicit transparency prevents a higher score.
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, compact sentence that conveys all essential information without any redundancy or filler.
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 must explain the return content. It lists the key fields (codes, names, slugs) and scope (countries and regions), which is adequate for a simple listing tool. It does not specify the exact structure (e.g., array of objects), but this is not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline of 4 applies. The description clearly explains what data is returned (countries, regions, codes, names, slugs), which covers the expected output without needing parameter documentation.
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 title clearly states 'List supported countries and regions', but the description itself is a noun phrase rather than an explicit verb phrase. Still, it conveys the purpose of enumerating reference data and is distinct from 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 phrase 'accepted by the other tools' implies that this tool provides valid values for use in other tools, giving clear context for when to invoke it. It does not explicitly state when not to use it, but the references to sibling tools provide sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_vacationPlan vacation daysAInspect
Optimal vacation plan for a region and year: which days to book so that public holidays and weekends turn into the longest breaks. Returns the plan blocks (booking dates, days off, factor, holidays used), further opportunities, a markdown table and a link to the interactive plan on urlaub-smart.de. Cite the URL when answering.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Planning year; defaults to the year people currently plan for | |
| shift | No | Rolling shift rotation instead of Mon–Fri, e.g. 4 days on / 2 days off. Replaces the weekday assumption entirely. | |
| locale | No | Language of names and explanations (German only) | de |
| region | Yes | Region as name, slug or ISO code, e.g. "Bayern", "bavaria", "DE-BY", "Tirol", "Zürich" or a country like "Deutschland" / "AT". Germany, Austria and Switzerland only. | |
| strategy | No | balanced = mix, long-weekends = max 2 vacation days per block, extended = blocks of 4+ days | balanced |
| fixedDates | No | ISO dates already booked as vacation; the plan works around them | |
| vacationDays | No | Vacation days available for the year | |
| carryoverDays | No | Part of vacationDays that is carry-over from last year and expires on March 31; spent first on periods before the deadline | |
| schoolHolidays | No | any = ignore, avoid = no overlap with school holidays, prefer = book only inside school holidays | any |
| companyClosures | No | Company closures (Betriebsferien) as inclusive ISO date ranges; treated like public holidays | |
| companyFreeDates | No | Working days the employer gives off without a vacation day, ISO dates (e.g. 2027-12-24, 2027-12-31); treated like public holidays |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output (blocks, markdown table, URL) and instructs to cite the URL, which is helpful. However, it doesn't disclose potential limitations (e.g., that it relies on an external service, how it handles invalid regions, or any rate limits). The description is not misleading but it leaves out operational details that could affect agent behavior, like whether the plan is computed locally or via a remote service.
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 three sentences long, front-loaded with the core purpose, then lists the output components and a specific instruction to cite the URL. Every sentence earns its place: the first defines what the tool does, the second enumerates the return values, and the third gives a critical usage directive. There is no fluff 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?
For a tool with 11 parameters, a nested object, and no output schema, the description adequately conveys the overall function and output format. It explains the return structure (blocks, opportunities, table, link) and includes an actionable instruction. It doesn't describe how parameters like shift or schoolHolidays affect the plan, but those are covered in the schema. The description is sufficient for an agent to understand when and how to use the tool, though it could mention the supported regions explicitly (though that's in the 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%, meaning every parameter already has a description in the schema. The tool description adds no additional parameter-level semantics beyond naming 'region and year' in the opening sentence. Since the schema handles parameter documentation, the description doesn't need to add more, but it also doesn't provide any extra context that the schema lacks. This is a solid baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: creating an optimal vacation plan for a region and year by suggesting booking days that maximize breaks around holidays and weekends. It specifies the resource (vacation plan) and the action (plan), and it distinguishes itself from siblings like best_bridge_days by focusing on the comprehensive planning output (blocks, opportunities, markdown table, link) rather than just listing bridge days.
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 explains what the tool does and what it returns, including the interactive link. It doesn't explicitly contrast with sibling tools or state when to prefer this over best_bridge_days, but the purpose is clear enough that an agent can infer it is the full planning tool. The mention of 'optimal vacation plan' and the detailed output implies it is the go-to for vacation planning, while siblings are more specific. This is good but lacks an explicit when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
public_and_school_holidaysPublic and school holidaysAInspect
All public holidays (with weekday, national/regional scope, weekend flag) and school holiday periods for a region and year. Source: OpenHolidaysAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Planning year; defaults to the year people currently plan for | |
| locale | No | Language of names and explanations (German only) | de |
| region | Yes | Region as name, slug or ISO code, e.g. "Bayern", "bavaria", "DE-BY", "Tirol", "Zürich" or a country like "Deutschland" / "AT". Germany, Austria and Switzerland only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It clarifies that the tool returns data from OpenHolidaysAPI and specifies the data content, but it does not mention any side effects, limitations, or operational characteristics beyond the returned data. For a read-only data fetch, this is adequate but not rich; no explicit mention of safety or cost.
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 two sentences: the first front-loads the core functionality, the second cites the source. There is zero waste, and the most important information (what the tool returns and for what inputs) is presented first. This is an exemplary concise description.
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 simple data-retrieval tool with no output schema, the description adequately covers the returned content and the input scope. It does not mention error conditions or the exact output structure, but given the tool's straightforward nature and that the schema covers the parameters, the description is nearly complete. A small gap is the absence of any note about regional constraints (e.g., only Germany, Austria, Switzerland) which is present in the region parameter but not repeated in the description.
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 all three parameters (year, locale, region) with descriptions. The tool description adds only that it takes a 'region and year', which is already in the schema. It does not compensate for or enrich the parameter semantics beyond the schema, hence the baseline score of 3.
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 exactly what the tool returns: all public holidays (with weekday, scope, weekend flag) and school holiday periods for a given region and year. It names the specific data categories and the input (region, year), making it clearly distinguishable from siblings like best_bridge_days or plan_vacation.
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?
No guidance is given on when to use this tool versus its siblings. There is no mention of alternatives, use cases, or conditions that would lead an agent to choose this over best_bridge_days or childcare_gap. The description is purely descriptive and leaves usage decisions 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.
4 tool updates
- Changed
best_bridge_days1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\""New value: +"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\". Germany, Austria and Switzerland only."
- Changed
childcare_gap1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\""New value: +"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\". Germany, Austria and Switzerland only."
- Changed
plan_vacation1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\""New value: +"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\". Germany, Austria and Switzerland only."
- Changed
public_and_school_holidays1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\""New value: +"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\". Germany, Austria and Switzerland only."
2 tool updates
- Added
childcare_gap - Changed
plan_vacation1 field changed- added
Input schema / properties / shiftAdded value: +{ + "description": "Rolling shift rotation instead of Mon–Fri, e.g. 4 days on / 2 days off. Replaces the weekday assumption entirely.", + "properties": { + "firstWorkingDay": { + "description": "ISO date of the first working day of a cycle", + "type": "string" + }, + "offDays": { + "maximum": 14, + "minimum": 1, + "type": "integer" + }, + "onDays": { + "maximum": 14, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "onDays", + "offDays", + "firstWorkingDay" + ], + "type": "object" +}
3 tool updates
- Changed
best_bridge_days1 field changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of names and explanations"New value: +"Language of names and explanations (German only)"
- Changed
plan_vacation1 field changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of names and explanations"New value: +"Language of names and explanations (German only)"
- Changed
public_and_school_holidays1 field changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of names and explanations"New value: +"Language of names and explanations (German only)"
4 tool updates
- First observed
best_bridge_days - First observed
list_regions - First observed
plan_vacation - First observed
public_and_school_holidays
Related MCP Connectors
Public holiday data for 30+ countries. Check holidays, working days and calendars via AI assistants.
Free German workforce calculators (bridge days, net working time, staffing/PeBeM) - no auth needed.
Plan trips and track visa days per traveller across 39,601 entry rules
Public holidays for 100+ countries — by year, or the next ones coming up. Via Nager.Date.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePublic holiday data for 30+ countries. Check holidays, working days, and full calendars via AI assistants like Claude and Cursor.MIT
- AlicenseNot gradedqualityBmaintenanceProvides public holidays, long weekends, and country data for 202 countries via the Nager.Date API, with client-side filtering and timezone-aware checks.BSD Zero Clause
- AlicenseAqualityBmaintenanceMCP server for Swiss school and public holidays across all 26 cantons, with differentiation by school type. No API key required.13MIT
- FlicenseNot gradedqualityNot gradedmaintenanceQuery school vacation calendars for Belgium, Netherlands, and Luxembourg (2019-2028). Check vacation dates, retrieve vacation periods, and list supported regions across multiple educational zones.-
Glama MCP Gateway
Add one secure layer between your agents and this server.