Servidor MCP de la API de días festivos de Canadá
Este es unEngineering, AI RAGflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como HttpRequestTool, McpTrigger. conexiónAIagente至加拿大节假日API,支持6省及节假日操作
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (15)
Categoría
{
"id": "yP9uGLQmy5COX7bz",
"meta": null,
"name": "Canada Holidays API MCP Server",
"tags": [],
"nodes": [
{
"id": "26a8df5c-db6d-43cd-94bd-9810f78f5a92",
"name": "Instrucciones de Configuración",
"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": "Descripción General del Flujo de Trabajo",
"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": "Servidor MCP de Días Festivos de Canadá",
"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": "Nota Adhesiva",
"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": "Obtener Raíz API",
"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": "Obtener Esquema API",
"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": "Descripción - 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": "Nota Adhesiva2",
"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": "Listar Todos los Días Festivos",
"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": "Obtener Día Festivo por ID",
"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": "Descripción - 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": "Nota Adhesiva3",
"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": "Listar Todas las Provincias",
"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": "Obtener Provincia por ID",
"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": "Descripción - 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
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Ingeniería, RAG de IA
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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
Compartir este flujo de trabajo