Feriados
Server Details
Portugal's public holidays: national, regional and municipal (all 308 concelhos), 2026 and 2027.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
list_holidays returns a full year's set of holidays, while next_holiday returns a single upcoming holiday from a date. The two purposes are clearly distinct with no overlap in intent.
Both names follow a clean verb_noun snake_case pattern (list_holidays, next_holiday). The convention is predictable and readable.
Two tools is on the thin side, but the domain (Portuguese public holiday lookup) is genuinely narrow and both tools earn their place covering the list and next-holiday cases.
The surface covers the two core queries well, but lacks checks like 'is a given date a holiday' or date-range/type filtering. These are minor gaps an agent can work around by combining the existing tools.
Available Tools
2 toolslist_holidaysAInspect
List Portugal's public holidays for a year (2026 or 2027): national, plus municipal and regional ones when a municipality is given.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| municipality | No | Optional municipality (concelho), e.g. "Lisboa" or "Evora"; accents optional. Adds its municipal holiday and, in the Azores or Madeira, the regional ones. Without it, only national holidays. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. It usefully reveals a constraint absent from the schema (year is limited to 2026 or 2027) and the conditional content of results (national only vs. plus municipal/regional). It omits return format, ordering, and error behavior for invalid years.
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 sentence that front-loads the verb and resource, then layers the year constraint and the conditional scope of results. No filler, no restatement of the name or title.
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 two-parameter read tool with no annotations and no output schema, the description covers purpose, the year value range, and conditional output content. It leaves the return shape and the relationship to next_holiday unexplained, which is a real gap given there is no output schema to fall back on.
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 only 50%, with 'year' carrying no schema description; the description fills that gap by pinning year to 2026 or 2027. Municipality semantics live almost entirely in the schema field description, so the description adds marginal value there but adequately compensates for the undocumented required 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?
States a specific verb and resource with scope: 'List Portugal's public holidays for a year'. It contrasts implicitly with the sibling next_holiday via the plural 'holidays for a year' framing, but never names the sibling or explicitly rules it out, so it falls 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?
Usage is implied through the '(2026 or 2027)' constraint and the conditional 'when a municipality is given', which tells the agent how to broaden the result set. However, there is no explicit guidance on when to pick this over next_holiday or what happens outside the supported year range.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_holidayAInspect
Return the first Portuguese public holiday on or after a date (YYYY-MM-DD, default today in Lisbon), for the whole country or for one municipality.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| municipality | No | Optional municipality (concelho), e.g. "Lisboa" or "Evora"; accents optional. Adds its municipal holiday and, in the Azores or Madeira, the regional ones. Without it, only national holidays. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: the default date is today in Lisbon, the default scope is national-only when municipality is omitted, and supplying a municipality adds its municipal (and regional, in Azores/Madeira) holidays. It does not cover invalid-input or error behavior, but the defaults are the key traits an agent needs.
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 sentence that front-loads the core action and packs format, default, and scope into compact parentheticals with zero waste.
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 two-param, zero-required tool with no output schema or annotations, the description covers defaults, formats, and scope behavior well. It could say a bit more about error handling for malformed dates, but nothing essential to selecting or invoking it 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 coverage is only 50% — 'after' has no schema description — but the description supplies its format (YYYY-MM-DD), its default (today in Lisbon), and its semantics (on or after). The municipality semantics live in the schema itself, so both parameters end up fully understood.
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 (Return) and resource (the first Portuguese public holiday on or after a date), and the 'first ... on or after' framing implicitly distinguishes it from the sibling list_holidays. It stops short of naming that sibling, 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?
Conveys scope choices (whole country vs. one municipality) and the default date, which implies when the tool applies, but never explicitly states when to prefer it over list_holidays or what conditions select the municipality path beyond the field itself.
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.
2 tool updates
- First observed
list_holidays - First observed
next_holiday
Related MCP Connectors
Latvian public holidays, days off and annual leave for 2026 and 2027, computed from Latvian law.
Public holidays (UK, US, DE, FR), tax-year dates and DST switches for 2026-2028.
Plan annual leave around public holidays: bridge days and long weekends for 200+ countries.
Government and OpenHolidays calendars: regional scope, multilingual names, dated sources and gaps. Datoka portal and connection guide: https://datoka.dev/qa.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT and stamp duty) and look up annual IMI property tax rates and costs for all 308 municipalities, with sources and year.MIT
- FlicenseAqualityDmaintenanceProvides verified ANZ public holidays, school terms, and business-day calculations for all 9 regions of Australia and New Zealand, backed by data for 2026 and 2027.3-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to look up public and school holidays across roughly 30 European countries for any date range, including localized holiday names, nationwide status, and regional subdivision coverage. Also lists covered countries and their subdivisions so school-term queries can be scoped to a specific region.19 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.