캐나다 공휴일 API MCP 서버
중급
이것은Engineering, AI RAG분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 HttpRequestTool, McpTrigger 등의 노드를 사용하며. 연결AI 대리인을 캐나다 공휴일 API에 연결하여 6개 주와 공휴일 작업 지원
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
사용된 노드 (15)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "yP9uGLQmy5COX7bz",
"meta": null,
"name": "Canada Holidays API MCP Server",
"tags": [],
"nodes": [
{
"id": "26a8df5c-db6d-43cd-94bd-9810f78f5a92",
"name": "설정 안내",
"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": "워크플로우 개요",
"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": "캐나다 공휴일 MCP 서버",
"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": "스티커 메모",
"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": "설명 - 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": "스티커 메모2",
"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": "모든 공휴일 목록",
"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": "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": "설명 - 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": "스티커 메모3",
"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": "모든 주 목록",
"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": "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": "설명 - 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
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 엔지니어링, AI RAG
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
api.clarify.io MCP 서버
Clarify API 및 AI 에이전트 통합을 사용한 오디오/비디오 데이터 검색 및 분석
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
27 노드David Ashby
엔지니어링
대학橄榄球 데이터 API MCP 서버
전체 데이터 API 접근 권한을 가진 대학橄榄球 분석 플랫폼
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
83 노드David Ashby
엔지니어링
Lyft MCP 서버
MCP를 사용하는 완전한 Lyft API 통합, 16가지 작업 지원
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
25 노드David Ashby
엔지니어링
[eBay] 피드 API MCP 서버
MCP 서버 기반 eBay Feed API 완전 통합, AI 대리자에 적합
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
31 노드David Ashby
엔지니어링
[eBay] 상품 구독 소스 서비스 MCP 서버
AI 대리자를 위한 eBay 상품 구독 소스 서비스 API 게이트웨이 생성
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
11 노드David Ashby
엔지니어링
미국 EPA 법 집행 및 준수 이력 온라인(ECHO) 고급 버전 - 청정수 법(CWA) Rest 서비스 MCP 서버
EPA 청정수 법률 데이터 접근 및 준수 모니터링 API 통합
Http Request Tool
Mcp Trigger
Http Request Tool
Mcp Trigger
43 노드David Ashby
엔지니어링
워크플로우 정보
난이도
중급
노드 수15
카테고리2
노드 유형3
저자
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
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유