n8n과 Claude MCP(Model Context Protocol) 연동으로 사내 전산 업무 무인화하기
오픈소스 n8n과 앤트로픽 표준 프로토콜(MCP)을 결합하여 보안 걱정 없는 온프레미스 AI 자동화 구축
이지웍스랩 클라우드팀 · 2026-08-17 · B2B 업무 자동화 · 읽는 데 8분
앤트로픽(Anthropic)이 발표한 MCP(Model Context Protocol)는 AI 모델이 외부 시스템과 대화하는 전 세계 표준 프로토콜로 자리잡았습니다. 특히 오픈소스 n8n과 결합했을 때, 개발자가 아닌 실무자도 채팅만으로 사내 ERP 시스템을 조작할 수 있는 혁신적인 환경이 만들어집니다.
1. 왜 Zapier 대신 n8n + MCP인가?
Zapier는 사용하기 쉽지만 건당 과금 구조로 인해 대량의 정산 데이터를 처리할 때 비용이 기하급수적으로 증가합니다. 또한 데이터가 해외 서버를 경유하므로 금융·의료 정보를 다루는 조직에서는 내부 심의를 통과하기 어렵습니다.
반면 n8n은 자체 서버(AWS/GCP/사내 서버)에 설치할 수 있어 월 비용이 고정되며, MCP를 통해 Claude Desktop이나 IDE에서 곧바로 사내 n8n 워크플로우를 자연어로 호출할 수 있습니다.
MCP(Model Context Protocol)는 AI 모델과 외부 도구를 연결하는 표준 규격입니다. 도구를 MCP 서버로 한 번만 노출해두면 특정 AI 제품에 종속되지 않고 여러 클라이언트에서 동일하게 재사용할 수 있다는 점이 가장 큰 실무적 이점입니다.
| 비교 항목 | Zapier / Make | n8n + MCP 셀프호스팅 |
|---|---|---|
| 과금 구조 | 실행 건당 과금 (대량 처리 시 급증) | 서버 비용 고정 (실행 횟수 무제한) |
| 데이터 소재 | 해외 SaaS 서버 경유 | 사내망 또는 자사 클라우드 내부 |
| AI 연동 | 제공 커넥터 범위 내 제한 | MCP로 임의 워크플로우를 도구화 |
| 초기 구축 난이도 | 낮음 (즉시 사용) | 중간 (Docker 및 SSL 설정 필요) |
2. 실무 적용: 10초 만에 끝나는 거래처 미수금 조회 봇
Claude에게 "이번 달 30일 이상 미수금이 연체된 의약품 도매상 목록 뽑아서 정산팀 슬랙으로 공유해줘"라고 입력하면, Claude가 n8n의 미수금 조회 노드를 MCP로 호출하고 결과를 정리해 슬랙에 발송합니다.
구현 관점에서는 n8n 워크플로우 하나가 곧 도구 하나입니다. 웹훅 트리거로 시작해 DB 조회, 데이터 정제, 슬랙 발송까지 노드로 연결한 뒤, 해당 웹훅을 MCP 서버의 도구로 등록하면 끝입니다.
이 구조의 장점은 업무 로직이 프롬프트가 아니라 n8n 워크플로우에 남는다는 점입니다. 담당자가 바뀌어도 워크플로우 화면만 보면 어떤 로직인지 파악할 수 있어, 프롬프트 안에 규칙을 숨겨두는 방식보다 인수인계가 훨씬 수월합니다.
{
"mcpServers": {
"n8n-internal": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"],
"env": {
"MCP_BASE_URL": "https://n8n.internal.company.co.kr",
"MCP_API_KEY_HEADER": "X-N8N-API-KEY"
}
}
}
}
3. Docker Compose 기반 n8n 셀프호스팅 구성
n8n을 실무에 올릴 때 가장 흔한 실패 원인은 데이터 영속성 설정 누락입니다. 볼륨을 지정하지 않고 컨테이너를 재시작하면 그동안 만든 워크플로우와 자격 증명이 통째로 사라집니다.
두 번째는 웹훅 URL 설정입니다. WEBHOOK_URL 환경변수를 외부 도메인으로 지정하지 않으면 n8n이 localhost 기준 주소를 발급해, 외부 서비스에서 웹훅을 호출할 수 없는 상태가 됩니다.
세 번째는 실행 이력 누적입니다. 기본 설정에서는 모든 실행 로그가 무기한 쌓여 수개월 뒤 디스크를 가득 채웁니다. 보존 기간을 지정해 자동 정리되도록 처음부터 설정해두는 편이 안전합니다.
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.internal.company.co.kr
- N8N_PROTOCOL=https
# 외부 도메인 미지정 시 웹훅이 localhost로 발급되어 호출 불가
- WEBHOOK_URL=https://n8n.internal.company.co.kr/
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
# 실행 이력 14일 초과분 자동 정리 (디스크 고갈 방지)
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=336
volumes:
# 볼륨 누락 시 재시작마다 워크플로우 전량 소실
- ./n8n_data:/home/node/.n8n
4. 운영 전 필수 점검: 인증과 키 로테이션
n8n 웹훅은 기본적으로 URL을 아는 누구나 호출할 수 있습니다. 사내용이라 하더라도 헤더 인증이나 기본 인증을 반드시 걸어야 하며, 특히 DB를 조회하는 워크플로우는 인증 없이 노출하면 그 자체가 데이터 유출 경로가 됩니다.
API 키는 분기 단위 로테이션을 원칙으로 하십시오. 로테이션 절차를 문서화해두지 않으면 담당자 퇴사 시점에 아무도 키를 바꾸지 못해 수년간 방치되는 상황이 반복됩니다.
마지막으로 MCP를 통해 노출하는 도구 범위를 최소화하십시오. '무엇이든 실행 가능한 만능 워크플로우'를 도구로 열어두면, AI가 의도치 않은 조합으로 호출했을 때 통제할 방법이 없습니다. 업무 단위로 잘게 쪼갠 도구가 안전합니다.
자주 막히는 지점
외부 서비스에서 n8n 웹훅을 호출하면 연결이 되지 않습니다.
원인: WEBHOOK_URL 환경변수가 설정되지 않아 n8n이 localhost 기준 주소를 발급했습니다.
해결: WEBHOOK_URL을 실제 외부 접근 도메인으로 지정하고 컨테이너를 재생성한 뒤, 워크플로우 화면에서 발급된 URL이 도메인 기준으로 바뀌었는지 확인하십시오.
컨테이너 재시작 후 저장된 자격 증명이 모두 오류를 냅니다.
원인: N8N_ENCRYPTION_KEY를 지정하지 않아 재시작 시 새 키가 생성되고 기존 암호화 데이터를 복호화하지 못합니다.
해결: 고정 암호화 키를 환경변수로 명시하고 안전한 곳에 백업하십시오. 이미 키를 분실했다면 자격 증명을 전부 재등록하는 방법 외에는 복구가 불가능합니다.
핵심 요약
- 대량 처리에서는 건당 과금 SaaS보다 셀프호스팅 n8n의 총소유비용이 압도적으로 유리합니다.
- MCP로 도구를 한 번 노출해두면 AI 클라이언트가 바뀌어도 자동화 자산이 그대로 재사용됩니다.
- 업무 로직을 프롬프트가 아닌 워크플로우에 남겨야 인수인계와 감사 대응이 가능합니다.
- 볼륨·WEBHOOK_URL·암호화 키 세 가지 설정 누락이 셀프호스팅 사고의 대부분을 차지합니다.
자주 묻는 질문
n8n 셀프호스팅에 어느 정도 서버 사양이 필요한가요?
하루 수천 건 수준의 업무 자동화라면 vCPU 2코어, 메모리 4GB 사양으로 충분합니다. 대용량 파일 파싱을 워크플로우 안에서 직접 처리한다면 메모리를 8GB 이상으로 올리는 편이 안정적입니다.
MCP 연동에 별도 개발이 필요한가요?
n8n 워크플로우를 웹훅으로 노출하고 MCP 서버 설정에 등록하는 수준이면 되므로 별도 백엔드 개발은 거의 필요하지 않습니다. 다만 인증 헤더 처리와 응답 스키마 정리는 직접 설계해야 합니다.
기존 Zapier 워크플로우를 n8n으로 옮길 수 있나요?
자동 변환 도구는 없으므로 재구성이 필요합니다. 다만 노드 개념이 유사해 실무자가 하루 정도면 주요 워크플로우를 옮기며, 이 과정에서 불필요해진 단계를 정리하는 효과도 함께 얻습니다.