8
n8n 한국어amn8n.com

캐나다 공휴일 API MCP 서버

중급

이것은Engineering, AI RAG분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 HttpRequestTool, McpTrigger 등의 노드를 사용하며. 연결AI 대리인을 캐나다 공휴일 API에 연결하여 6개 주와 공휴일 작업 지원

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 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)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수15
카테고리2
노드 유형3
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
David Ashby

David Ashby

@cfomodz

A 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에서 보기

이 워크플로우 공유

카테고리

카테고리: 34