aria-mcp-helligdage-dk
by kimhjort
README.md
# aria-mcp-helligdage-dk
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server exposing Danish public holidays (helligdage) and notable days (mærkedage/flagdage) to AI assistants. Built for [ARIA](https://github.com/kimhjort/aria) and shareable with the community.
**Fully keyless** — public holiday data comes from the open nager.date API; notable days are computed in-house.
## Data Sources
| Source | What | Attribution |
|---|---|---|
| [nager.date](https://date.nager.at) | Official Danish public holidays (helligdage) | nager.date — Open Public Holidays API |
| In-house computation | Movable and fixed notable days (mærkedage/flagdage) | Anonymous Gregorian algorithm (computus) |
### Store bededag note
Store bededag (General Prayer Day, 4th Friday after Easter) was a Danish public holiday until 2023. It was **abolished as a public holiday from 2024** onwards. `get_notable_days` still includes it as a mærkedag — not a fridag — with a note, so ARIA can mention it when relevant.
## Install & Run
```bash
npx aria-mcp-helligdage-dk
```
Or install globally:
```bash
npm install -g aria-mcp-helligdage-dk
aria-mcp-helligdage-dk
```
Requires Node.js 20 or later.
## Tools
### `get_holidays`
Returns all official Danish public holidays (helligdage) for a given year, fetched live from nager.date.
**Parameters:**
| Name | Type | Default | Description |
|---|---|---|---|
| `year` | number | current year (Europe/Copenhagen) | Year to fetch holidays for |
**Returns:** Array of `{ date: "YYYY-MM-DD", name: string (Danish), isPublicHoliday: true }`
**Example output (2026):**
```json
[
{ "date": "2026-01-01", "name": "Nytårsdag", "isPublicHoliday": true },
{ "date": "2026-04-02", "name": "Skærtorsdag", "isPublicHoliday": true },
{ "date": "2026-04-03", "name": "Langfredag", "isPublicHoliday": true },
{ "date": "2026-04-05", "name": "Påskedag", "isPublicHoliday": true },
{ "date": "2026-04-06", "name": "2. påskedag", "isPublicHoliday": true },
{ "date": "2026-05-14", "name": "Kristi himmelfart", "isPublicHoliday": true },
{ "date": "2026-05-24", "name": "Pinsedag", "isPublicHoliday": true },
{ "date": "2026-05-25", "name": "2. pinsedag", "isPublicHoliday": true },
{ "date": "2026-06-05", "name": "Grundlovsdag", "isPublicHoliday": true },
{ "date": "2026-12-25", "name": "Juledag", "isPublicHoliday": true },
{ "date": "2026-12-26", "name": "2. juledag", "isPublicHoliday": true }
]
```
---
### `is_holiday`
Check whether a specific date is an official Danish public holiday.
**Parameters:**
| Name | Type | Default | Description |
|---|---|---|---|
| `date` | string | today (Europe/Copenhagen) | Date in YYYY-MM-DD format |
**Returns:** `{ date: "YYYY-MM-DD", isHoliday: boolean, name?: string }`
---
### `next_holidays`
Returns the next upcoming Danish public holidays from today.
**Parameters:**
| Name | Type | Default | Description |
|---|---|---|---|
| `count` | number | 5 | Number of upcoming holidays to return (max 20) |
**Returns:** Array of `{ date, name, isPublicHoliday: true }`, nearest first.
---
### `get_notable_days`
Returns computed Danish notable days (mærkedage/flagdage) for a given year. These are **not** public holidays (`isPublicHoliday: false`).
**Parameters:**
| Name | Type | Default | Description |
|---|---|---|---|
| `year` | number | current year (Europe/Copenhagen) | Year to compute notable days for |
**Returns:** Array of `{ date, name, isPublicHoliday: false, note? }`, sorted by date.
Included days:
- **Fastelavn** — 7 weeks (49 days) before Easter Sunday
- **Palmesøndag** — Sunday before Easter
- **Store bededag** — 26 days after Easter (abolished as public holiday from 2024; included as mærkedag with note)
- **Mors dag** — 2nd Sunday of May
- **Grundlovsdag / Fars dag** — 5 June (also a public holiday; noted as such)
- **Sankt Hans aften** — 23 June
- **Mortensaften** — 10 November
- **Juleaften** — 24 December
- **Nytårsaften** — 31 December
Movable dates (Easter-based) are computed via the **Anonymous Gregorian algorithm**, accurate for any year.
---
## ARIA Configuration
Add to your ARIA MCP configuration:
```json
{
"mcpServers": {
"helligdage-dk": {
"Command": "npx",
"Args": ["-y", "aria-mcp-helligdage-dk"]
}
}
}
```
## License
MIT — [Kim Hjort](https://github.com/kimhjort)
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing