n8n MCP Server Trigger 완전 가이드 — 코딩 없이 커스텀 MCP 서버 만들고 Claude Desktop에 연결하기
2024년 11월, Anthropic이 Model Context Protocol(MCP) 를 오픈 소스로 공개하면서 AI와 외부 도구의 연결 방식이 근본적으로 바뀌었습니다. MCP 이전에는 Claude 같은 AI 모델이 외부 서비스와 소통하려면 복잡한 커스텀 통합 코드를 직접 작성해야 했습니다. 그러나 MCP 덕분에 이제는 표준화된 방식으로 어떤 도구든 AI에 연결할 수 있게 되었습니다. 마치 USB-C가 각종 기기의 충전 방식을 통일한 것처럼요.
처음 n8n MCP Server Trigger를 시도하는 분 중 상당수가 "mcp-remote 설정이 왜 필요한지 모르겠다"거나 "Test URL을 Claude Desktop에 등록했는데 연결이 안 된다"는 상황에서 막힙니다. 이 글은 바로 그 지점에서 출발합니다.
n8n은 자체 호스팅이 가능한 오픈 소스 워크플로우 자동화 플랫폼으로, 400개 이상의 서비스 연동과 시각적 편집 환경을 제공합니다. n8n의 MCP Server Trigger 노드를 사용하면 단 한 줄의 코드 없이도 나만의 커스텀 MCP 서버를 구축하고, Claude Desktop에서 자연어로 외부 서비스를 조작할 수 있습니다. 이 글에서는 MCP Server Trigger의 동작 원리부터 Claude Desktop 연결 설정, 실전 활용 사례, 그리고 흔히 빠지는 함정까지 단계별로 살펴봅니다.
목차
핵심 개념
MCP란 무엇이고 왜 중요한가
MCP(Model Context Protocol)는 AI 모델이 외부 도구·데이터 소스·시스템과 상호작용하는 방식을 표준화한 오픈 프로토콜입니다. 클라이언트(Claude Desktop 등)가 서버에 tools/list 요청을 보내 사용 가능한 도구 목록을 받고, 이후 tools/call로 특정 도구를 실행하는 구조입니다.
MCP란 AI 모델과 외부 세계 사이의 공통 인터페이스입니다. 서버 개발자는 어떤 클라이언트든 연결할 수 있는 표준 방식으로 도구를 노출하고, 클라이언트 개발자는 어떤 서버든 동일한 방식으로 연결할 수 있습니다.
2025년 초 기준으로 이미 수천 개의 MCP 서버가 커뮤니티를 통해 배포되고 있으며, n8n은 이 생태계에서 "코딩 없는 MCP 서버 빌더" 역할을 맡고 있습니다.
n8n MCP Server Trigger의 동작 원리
MCP Server Trigger 노드는 n8n 워크플로우를 MCP 서버로 변환하는 트리거 노드입니다. 이 노드 하나로 n8n 인스턴스 자체가 MCP 서버가 되어, Claude Desktop 같은 클라이언트가 HTTP(SSE) 엔드포인트를 통해 워크플로우 내 Tool 노드들을 호출할 수 있게 됩니다.
중요한 점은 MCP Server Trigger 노드는 단독으로 작동하지 않는다는 것입니다. 반드시 하나 이상의 Tool 노드와 연결되어야 하며, 각 Tool 노드가 Claude에게 노출될 개별 "도구"가 됩니다.
[Claude Desktop]
│ tools/list, tools/call (stdio)
▼
[mcp-remote 프록시] ── stdio → SSE 변환 ──▶
│ HTTP(SSE)
▼
[n8n: MCP Server Trigger]
├── [Tool: Notion 노드]
├── [Tool: Google Calendar 노드]
└── [Tool: HTTP Request 노드]mcp-remote는 Claude Desktop 쪽(stdio)에서 n8n 쪽(SSE)으로 단방향 변환을 수행합니다. Claude Desktop이 stdio로 보낸 명령을 HTTP SSE 요청으로 바꿔 n8n에 전달하는 역할입니다.
노드는 두 가지 URL을 제공합니다.
| URL 종류 | 용도 | 활성화 조건 |
|---|---|---|
| Test URL | 워크플로우 편집 중 실시간 테스트 | 편집 모드에서 "Listen for Test Event" 활성화 시 |
| Production URL | 실제 운영 환경 | 워크플로우 "Active(게시)" 상태 시 |
Bearer Token 인증 n8n MCP Server Trigger는 Bearer Token 방식의 인증을 지원합니다. 클라이언트는 모든 요청에
Authorization: Bearer <token>헤더를 포함해야 합니다. Bearer Token은 MCP Server Trigger 노드를 클릭하면 나타나는 설정 패널 상단의 Credentials 탭에서 확인하거나 새로 생성할 수 있습니다.
SSE와 stdio의 차이, 그리고 브리지 도구
n8n의 MCP 서버는 SSE(Server-Sent Events) 기반으로 동작하지만, Claude Desktop은 stdio(표준 입출력) 기반 MCP 서버를 기대합니다. 이 프로토콜 차이를 해소하기 위해 중간에 프록시 도구가 필요합니다.
SSE(Server-Sent Events)란 서버에서 클라이언트로 단방향 실시간 데이터를 스트리밍하는 HTTP 기반 프로토콜입니다. WebSocket과 달리 단방향이며, HTTP 위에서 동작해 방화벽 통과가 용이합니다. 반면 stdio는 터미널의 표준 입출력을 활용한 프로세스 간 통신 방식으로, Claude Desktop이 로컬 MCP 서버와 소통할 때 사용합니다.
가장 널리 사용되는 프록시 도구는 다음 두 가지입니다.
| 도구 | 방향 | 특징 |
|---|---|---|
| mcp-remote | SSE 원격 서버 → stdio | Node.js 기반, npx로 즉시 실행 가능 |
| supergateway | stdio ↔ SSE/WebSocket 양방향 | 양방향 게이트웨이, 더 유연한 구성 지원 |
Claude Desktop의 설정 파일 경로는 운영체제에 따라 다릅니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
등록 형식은 다음과 같습니다.
{
"mcpServers": {
"my-n8n-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://<N8N_HOST>/mcp/<WORKFLOW_PATH>",
"--header",
"Authorization: Bearer <MCP_BEARER_TOKEN>"
]
}
}
}실전 적용
예시 1: 자연어로 Notion 작업 관리하기
가장 직관적인 활용 사례입니다. Claude Desktop에서 "오늘 할 일 세 개를 Notion에 추가해줘"라고 입력하면 실제 Notion 데이터베이스에 항목이 생성되는 흐름을 구성해봅니다.
n8n 워크플로우 구성
[MCP Server Trigger]
│
└── [Notion Tool 노드]
├── 작업: "데이터베이스에 페이지 생성"
├── 데이터베이스 ID: (고정값 — Notion에서 복사한 DB ID 직접 입력)
└── 제목: {{$fromAI('title', '추가할 할 일 항목의 제목', 'string')}}Claude Desktop 설정
워크플로우를 Active 상태로 게시한 뒤 Production URL을 claude_desktop_config.json에 등록하고 Claude Desktop을 재시작하면 즉시 사용할 수 있습니다.
핵심 설정 항목
| 설정 항목 | 값 | 설명 |
|---|---|---|
| Tool 이름 | add_notion_task |
Claude가 이 이름으로 도구를 인식 |
| Tool 설명 | "Notion 데이터베이스에 새 할 일을 추가합니다. 파라미터: title (string, 필수)" | Claude가 언제 이 도구를 쓸지 판단하는 근거 |
$fromAI() 표현식 |
동적 파라미터 바인딩 | Claude가 자연어에서 추출한 값을 노드로 전달 |
$fromAI()표현식 n8n Tool 노드의 필드 값 입력란에 직접 작성하는 특수 표현식입니다. 형식은$fromAI('파라미터명', '설명', '타입')이며, 예를 들어$fromAI('title', '추가할 할 일 제목', 'string')처럼 사용합니다. Claude가 자연어 입력에서 해당 값을 추출해 필드에 자동 바인딩해줍니다. 데이터베이스 ID처럼 고정된 값은$fromAI()대신 노드 설정에서 직접 입력하는 것이 적합합니다.
예시 2: 사내 REST API를 AI 도구로 노출하기
별도의 MCP 서버를 개발하지 않고도 기존 REST API를 Claude의 도구로 만들 수 있습니다.
n8n 워크플로우 구성
[MCP Server Trigger]
├── [HTTP Request Tool: 재고 조회]
│ └── GET https://internal-api.company.com/inventory
│ Query: item={{$fromAI('item_name', '조회할 제품 코드 또는 제품명', 'string')}}
│
└── [HTTP Request Tool: 주문 생성]
└── POST https://internal-api.company.com/orders
Body: {{$fromAI('order_data', '주문 정보 (JSON 형식)', 'string')}}이렇게 구성하면 Claude Desktop에서 "창고에 A-001 부품 재고가 얼마나 남아 있어?"라고 물어봤을 때, Claude가 자동으로 재고 조회 도구를 선택하고 item_name에 "A-001"을 바인딩해서 API를 호출합니다.
Tool 노드 설명 작성 팁
좋은 예: "제품 코드 또는 제품명으로 창고 재고 수량을 조회합니다.
파라미터: item_name (string, 필수) — 예: 'A-001', '볼트'"
나쁜 예: "재고를 조회합니다"Claude는 Tool 설명을 읽고 어떤 도구를 언제 써야 할지 판단합니다. 설명이 구체적일수록 의도에 맞는 도구가 선택될 가능성이 높아집니다.
예시 3: 멀티 워크플로우 디스커버리 서버
n8n 내부에 수십 개의 워크플로우가 있을 때, Claude가 "어떤 자동화가 있어?"라고 물으면 전체 목록을 반환하고 원하는 것을 즉시 실행할 수 있는 구조입니다.
에이전트 오케스트레이션이란 하나의 AI 에이전트(Claude 등)가 여러 하위 시스템이나 다른 에이전트를 조율·호출하는 아키텍처 패턴입니다. Claude → n8n → 외부 서비스로 이어지는 다단계 실행 구조가 대표적인 예입니다.
아래는 MCP Server Trigger에 연결할 Tool 노드들을 개념적으로 나타낸 것입니다. 실제 n8n에서는 각 항목이 별도의 Tool 노드로 구성되며, 이 다이어그램을 어딘가에 직접 입력하는 용도가 아닙니다.
워크플로우 구성
[MCP Server Trigger]
├── [Tool: list_workflows]
│ 설명: "현재 활성화된 모든 n8n 워크플로우 목록을 반환합니다"
│
├── [Tool: execute_workflow]
│ 설명: "워크플로우 ID로 특정 워크플로우를 즉시 실행합니다"
│ 파라미터: workflow_id (string, 필수)
│
└── [Tool: get_workflow_status]
설명: "특정 워크플로우의 마지막 실행 결과와 상태를 조회합니다"
파라미터: workflow_id (string, 필수)이 패턴은 에이전트 오케스트레이션의 실무 활용 예시입니다. Claude가 MCP를 통해 n8n을 호출하고, n8n 워크플로우 내부에서 다시 다른 시스템이나 MCP 서버를 호출하는 중첩 구조로 확장될 수 있습니다.
장단점 분석
장점
| 항목 | 내용 |
|---|---|
| 코딩 불필요 | n8n 시각적 편집기로 MCP 도구를 구성하므로, MCP 서버 개발 지식이 없어도 됩니다 |
| 400+ 통합 즉시 활용 | Google Calendar, Gmail, Slack, Notion 등 기존 n8n 통합을 MCP 도구로 즉시 래핑할 수 있습니다 |
| 빠른 프로토타이핑 | 워크플로우 수정 → Test URL로 즉시 확인 → 배포까지 수 분 내 반복이 가능합니다 |
| 동적 도구 확장 | Tool 노드 추가만으로 기존 클라이언트 설정 변경 없이 새 도구를 노출할 수 있습니다 |
| 자체 호스팅 지원 | 데이터가 외부로 나가지 않아 보안·컴플라이언스 요구사항을 충족하기 용이합니다 |
단점 및 주의사항
| 항목 | 내용 | 대응 방안 |
|---|---|---|
| SSE ↔ stdio 브리지 필요 | Claude Desktop은 stdio 기반이므로, n8n의 SSE 기반 MCP 서버에 접속하려면 mcp-remote 또는 supergateway 프록시가 반드시 필요합니다 | npx mcp-remote 명령어로 간단히 설정 가능합니다 |
| 수평 스케일 아웃 제약 | SSE는 동일 서버 인스턴스와 지속 연결을 유지해야 합니다 | /mcp* 요청을 단일 replica로 라우팅하는 Ingress/로드밸런서 설정이 필요합니다 |
| 프로토콜 변화 속도 | MCP 사양이 빠르게 변화 중입니다(2025년 3월 Streamable HTTP 개정) | n8n 버전을 최신으로 유지하고, 릴리즈 노트를 주기적으로 확인하는 것을 권장합니다 |
| 디버깅 난이도 | Claude → mcp-remote → n8n → 외부 API 구조에서 오류 추적이 어렵습니다 | n8n 실행 로그와 Claude Desktop 로그(macOS: ~/Library/Logs/Claude/)를 함께 확인합니다 |
| Bearer Token 보안 | claude_desktop_config.json에 토큰을 평문 저장하면 보안 위험이 생깁니다 |
환경변수($MCP_TOKEN) 또는 OS 키체인과 연동된 시크릿 관리 도구 활용을 권장합니다 |
실무에서 가장 흔한 실수
- Tool 노드 설명을 너무 짧게 작성하는 것 — Claude는 설명을 읽고 어떤 도구를 선택할지 결정합니다. "데이터 조회"보다는 "제품 코드를 받아 창고 재고를 조회하고 수량과 위치를 반환합니다. 파라미터: item_name (string, 필수)"처럼 구체적으로 작성하는 것이 훨씬 더 정확한 도구 선택으로 이어집니다.
- Test URL을 Claude Desktop에 등록하는 것 — Test URL은 워크플로우가 편집 모드에서 "Listen for Test Event"를 활성화한 상태일 때만 동작합니다. Claude Desktop에 등록할 URL은 워크플로우를 Active로 게시한 뒤 생성되는 Production URL이어야 합니다.
claude_desktop_config.json수정 후 Claude Desktop을 재시작하지 않는 것 — MCP 서버 설정 변경은 Claude Desktop을 완전히 종료하고 재시작해야 적용됩니다. 단순히 창을 닫는 것으로는 부족할 수 있으며, macOS에서는 메뉴바 아이콘까지 완전히 종료해야 합니다.
마치며
n8n MCP Server Trigger는 MCP 서버 개발의 진입 장벽을 획기적으로 낮춰, 코드 없이도 Claude 같은 AI 에이전트가 실제 외부 시스템을 조작할 수 있는 강력한 도구 레이어를 구축할 수 있게 해줍니다.
n8n에 익숙한 분이라면 오늘 당장 첫 번째 MCP 도구를 만들어볼 수 있습니다. 아래 세 단계를 따라가시면 Claude Desktop에서 자연어로 외부 서비스를 호출하는 경험을 해보실 수 있습니다.
- n8n 인스턴스를 준비합니다. 로컬 환경이라면 아래 명령어로 즉시 실행할 수 있습니다. 외부에서 접근 가능해야 한다면 ngrok으로 임시 퍼블릭 URL을 생성하거나, n8n Cloud의 무료 플랜을 활용해보시면 좋습니다.
docker run -it --rm --name n8n -p 5678:5678 n8nio/n8n # 로컬 개발 시 외부 접근이 필요하다면: ngrok http 5678- n8n에서 새 워크플로우를 만들고 MCP Server Trigger를 구성합니다.
- 노드 검색창에서 "MCP Server Trigger"를 검색해 추가합니다.
- Notion, Google Calendar 등 원하는 Tool 노드 하나를 Trigger에 연결합니다.
- Tool 노드의 이름과 설명을 구체적으로 작성합니다.
- 워크플로우 우측 상단의 토글을 눌러 Active 상태로 게시합니다.
- MCP Server Trigger 노드 설정 패널의 Credentials 탭에서 Production URL과 Bearer Token을 메모해둡니다.
- Claude Desktop의 설정 파일을 열고 MCP 서버를 등록합니다. 앞서 안내한 mcp-remote 설정 형식에 Production URL과 Bearer Token을 입력하고, Claude Desktop을 완전히 재시작하면 자연어로 외부 서비스를 호출하는 경험을 바로 해보실 수 있습니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
다음 글: n8n MCP Client Tool 노드로 Claude 에이전트가 외부 MCP 서버(GitHub, Slack, 사내 시스템)를 직접 호출하는 중첩 에이전트 아키텍처 구축 방법
참고 자료
- MCP Server Trigger node documentation | n8n Docs
- Set up and use n8n MCP server | n8n Docs
- MCP Client Tool node documentation | n8n Docs
- Connect Claude Desktop App to MCP Server Trigger node | n8n Community
- n8n MCP Server Trigger with Claude: Complete Setup Guide | Synta
- Build your own N8N workflows MCP server | n8n workflow template
- MCP Will be the Death of Low-Code Automation, and Other Spooky Stories | n8n Blog
- GitHub - czlonkowski/n8n-mcp
- GitHub - supercorp-ai/supergateway
- mcp n8n: ultimate guide to connect Claude to your workflows | agence-scroll.com
- Orchestrating Agentic AI systems with n8n and MCP | Medium