Kanadischer Feiertags-API MCP-Server
Dies ist ein Engineering, AI RAG-Bereich Automatisierungsworkflow mit 15 Nodes. Hauptsächlich werden HttpRequestTool, McpTrigger und andere Nodes verwendet. AI-Agent mit dem Canada Holidays API verbinden, unterstützt 6 Provinzen und Feiertagsoperationen
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Verwendete Nodes (15)
Kategorie
{
"id": "yP9uGLQmy5COX7bz",
"meta": null,
"name": "Canada Holidays API MCP Server",
"tags": [],
"nodes": [
{
"id": "26a8df5c-db6d-43cd-94bd-9810f78f5a92",
"name": "Setzenup-Anleitung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1380,
-240
],
"parameters": {
"color": 4,
"height": 1060,
"content": "### ⚙️ Setup Instructions\n\n1. **Import Workflow**: \nLoad this workflow into your n8n instance\n\n2. **Authentication**: \nNo authentication required\n\n3. **Activate Workflow**:\nEnable the workflow to start the MCP server\n\n4. **Get MCP URL**: \nCopy the webhook URL from the MCP trigger\n\n5. **Connect AI Agent**:\nUse the MCP URL in your AI agent configuration\n\n\n### 💡 Usage Notes\n• Parameters are auto-populated by AI using $fromAI() expressions\n• With 6 API endpoints available as tools\n• Responses maintain original API structure\n\n\n### 🛠️ Customization\n• Add data transformation nodes if needed\n• Implement custom error handling\n• Add logging or monitoring nodes\n\n• Modify parameter defaults in any HTTP request node as needed\n\n### 💬 Need Help?\nPing me on [discord](https://discord.me/cfomodz) for integration guidance and custom automations. Check the [n8n documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/) for more information."
},
"typeVersion": 1
},
{
"id": "1ff9f466-d977-439d-9038-dcc022355864",
"name": "Workflow-Übersicht",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-240
],
"parameters": {
"width": 420,
"height": 920,
"content": "## 🛠️ Canada Holidays MCP Server ✅ 6 operations\n\n### About\nThis API lists all 31 public holidays for all 13 provinces and territories in Canada, including federal holidays.\n\n### 🔧 How it Works\n\nThis workflow converts the Canada Holidays API into an MCP-compatible interface for AI agents.\n\n• **MCP Trigger**: Serves as your server endpoint for AI agent requests\n• **HTTP Request Nodes**: Handle API calls to https://canada-holidays.ca\n• **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n• **Native Integration**: Returns responses directly to the AI agent\n\n\n### 📋 Available Operations (6 endpoints)\n\n**Info (2 operations)**\nGet API Root, Get API Schema\n\n**Holidays (2 operations)**\nList All Holidays, Get Holiday by ID\n\n**Provinces (2 operations)**\nList All Provinces, Get Province by ID\n\n"
},
"typeVersion": 1
},
{
"id": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"name": "Kanada Feiertage MCP-Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-620,
-240
],
"webhookId": "42046709-1e8c-4dcc-8608-5f28f5a6bd25",
"parameters": {
"path": "canada-holidays-mcp"
},
"typeVersion": 1
},
{
"id": "6b54fafa-84dc-4c18-b64e-9d0ad3d78fb6",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
-100
],
"parameters": {
"color": 2,
"width": 500,
"height": 200,
"content": "## Info"
},
"typeVersion": 1
},
{
"id": "01bca653-9e1a-40e0-884c-6f322987a420",
"name": "Get API Root",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
-60
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1",
"options": {},
"toolDescription": "Root"
},
"typeVersion": 4.2
},
{
"id": "b679949c-71f9-4c6c-9746-2a80b0d19651",
"name": "Get API Schema",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
-60
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1/spec",
"options": {},
"toolDescription": "Get JSON schema"
},
"typeVersion": 4.2
},
{
"id": "bd922cde-17ae-4ed7-a408-d942c744ac96",
"name": "Beschreibung - info",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-60
],
"parameters": {
"width": 500,
"height": 120,
"content": "## 📋 Info\n\nGet welcome message and links"
},
"typeVersion": 1
},
{
"id": "eecf420a-542e-400d-8ed7-ade3d47f2c7d",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
140
],
"parameters": {
"color": 3,
"width": 500,
"height": 200,
"content": "## Holidays"
},
"typeVersion": 1
},
{
"id": "84a77685-cb5e-4828-a1a8-a762ecf29481",
"name": "Alle Feiertage auflisten",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
180
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1/holidays",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "year",
"value": "={{ $fromAI('year', 'A calendar year', 'number', 2023) }}"
},
{
"name": "federal",
"value": "={{ $fromAI('federal', 'A boolean parameter. If true or 1, will return only federal holidays. If false or 0, will return no federal holidays.', 'string') }}"
},
{
"name": "optional",
"value": "={{ $fromAI('optional', 'A boolean parameter. If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC.', 'string', 'false') }}"
}
]
},
"toolDescription": "Get all holidays\n\nParameters:\n- Query parameters:\n • year (optional) - A calendar year\n • federal (optional) - A boolean parameter. If true or 1, will return only federal holidays. If false or 0, will return no federal holidays.\n • optional (optional) - A boolean parameter. If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC."
},
"typeVersion": 4.2
},
{
"id": "12c8c861-1b3e-4094-a5e8-9ae1cc0279b3",
"name": "Feiertag nach ID abrufen",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
180
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1/holidays/{{ $fromAI('holidayId', 'Primary key for a holiday', 'number') }}",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "year",
"value": "={{ $fromAI('year', 'A calendar year', 'number', 2023) }}"
},
{
"name": "optional",
"value": "={{ $fromAI('optional', 'A boolean parameter. If false or 0 (default), will return provinces for which this is a legislated holiday. If true or 1, will return provinces which optionally celebrate this holiday.', 'string', 'false') }}"
}
]
},
"toolDescription": "Get a holiday by id\n\nParameters:\n- Path parameters:\n • holidayId (required) - Primary key for a holiday\n- Query parameters:\n • year (optional) - A calendar year\n • optional (optional) - A boolean parameter. If false or 0 (default), will return provinces for which this is a legislated holiday. If true or 1, will return provinces which optionally celebrate this holiday."
},
"typeVersion": 4.2
},
{
"id": "ce0e58c1-04f3-4c9a-9240-4d22461087b3",
"name": "Beschreibung - holidays",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
180
],
"parameters": {
"width": 500,
"height": 120,
"content": "## 📋 Holidays\n\nGet holiday(s) with associated provinces"
},
"typeVersion": 1
},
{
"id": "c049349a-1c8c-4fb5-9f67-c150db9b4762",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
380
],
"parameters": {
"color": 4,
"width": 500,
"height": 200,
"content": "## Provinces"
},
"typeVersion": 1
},
{
"id": "6c878999-dbb6-4c39-90da-b9884756757a",
"name": "Alle Provinzen auflisten",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
420
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1/provinces",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "year",
"value": "={{ $fromAI('year', 'A calendar year', 'number', 2023) }}"
},
{
"name": "optional",
"value": "={{ $fromAI('optional', 'A boolean parameter. If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC.', 'string', 'false') }}"
}
]
},
"toolDescription": "Get all provinces\n\nParameters:\n- Query parameters:\n • year (optional) - A calendar year\n • optional (optional) - A boolean parameter. If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC."
},
"typeVersion": 4.2
},
{
"id": "a3ecbce6-be8c-405f-9002-8608968c456c",
"name": "Provinz nach ID abrufen",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
420
],
"parameters": {
"url": "=https://canada-holidays.ca/api/v1/provinces/{{ $fromAI('provinceId', 'A Canadian province abbreviation', 'string') }}",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "year",
"value": "={{ $fromAI('year', 'A calendar year', 'number', 2023) }}"
},
{
"name": "optional",
"value": "={{ $fromAI('optional', 'A boolean parameter (AB and BC only). If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC.', 'string', 'false') }}"
}
]
},
"toolDescription": "Get a province or territory by abbreviation\n\nParameters:\n- Path parameters:\n • provinceId (required) - A Canadian province abbreviation\n- Query parameters:\n • year (optional) - A calendar year\n • optional (optional) - A boolean parameter (AB and BC only). If false or 0 (default), will return only legislated holidays. If true or 1, will return optional holidays from Alberta and BC."
},
"typeVersion": 4.2
},
{
"id": "46d3c8cc-f003-4fac-b200-377446393a7d",
"name": "Beschreibung - provinces",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
420
],
"parameters": {
"width": 500,
"height": 120,
"content": "## 📋 Provinces\n\nGet province(s) with associated holidays"
},
"typeVersion": 1
}
],
"active": false,
"shared": [
{
"role": "workflow:owner",
"project": {
"id": "G5fce9xGuBAsWBXe",
"icon": null,
"name": "David Ashby <david.ashby.lds@gmail.com>",
"type": "personal",
"createdAt": "2025-06-04T02:55:02.013Z",
"updatedAt": "2025-06-04T02:56:01.361Z",
"projectRelations": [
{
"role": "project:personalOwner",
"user": {
"id": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
"role": "global:owner",
"email": "david.ashby.lds@gmail.com",
"disabled": false,
"lastName": "Ashby",
"settings": {
"npsSurvey": {
"responded": true,
"lastShownAt": 1749357655581
},
"userActivated": true,
"userActivatedAt": 1749075994495,
"easyAIWorkflowOnboarded": true,
"firstSuccessfulWorkflowId": "3N3vVikZb3MckFYm"
},
"createdAt": "2025-06-04T02:55:01.745Z",
"firstName": "David",
"isPending": false,
"updatedAt": "2025-06-08T04:40:58.399Z",
"mfaEnabled": false,
"personalizationAnswers": {
"version": "v4",
"personalization_survey_n8n_version": "1.95.3",
"personalization_survey_submitted_at": "2025-06-04T02:56:07.075Z"
}
},
"userId": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
"createdAt": "2025-06-04T02:55:02.013Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-06-04T02:55:02.013Z"
}
]
},
"createdAt": "2025-07-01T23:47:09.323Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-07-01T23:47:09.323Z",
"workflowId": "yP9uGLQmy5COX7bz"
}
],
"pinData": {},
"settings": {
"timezone": "America/New_York"
},
"createdAt": "2025-07-01T23:47:09.319Z",
"updatedAt": "2025-07-01T23:47:50.000Z",
"versionId": "f0456ddc-0a71-4826-843a-962b06de880b",
"isArchived": false,
"staticData": null,
"connections": {
"01bca653-9e1a-40e0-884c-6f322987a420": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
},
"b679949c-71f9-4c6c-9746-2a80b0d19651": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
},
"12c8c861-1b3e-4094-a5e8-9ae1cc0279b3": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
},
"84a77685-cb5e-4828-a1a8-a762ecf29481": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
},
"a3ecbce6-be8c-405f-9002-8608968c456c": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
},
"6c878999-dbb6-4c39-90da-b9884756757a": {
"ai_tool": [
[
{
"node": "88d82a73-f595-4dfe-a3e1-345ab61d4f7f",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"triggerCount": 0
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Engineering, KI RAG
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
David Ashby
@cfomodzA hacker by nature, programmer by trade ⚒️ I'm looking to collaborate on things that save human labor 📫 How to reach me Github👇 -> Discord
Diesen Workflow teilen