MCP (Model Context Protocol)¶
n8n 기반 MCP 통합 서버 관리 가이드입니다.
📋 개요¶
n8n이란?¶
**n8n**은 오픈소스 워크플로우 자동화 플랫폼으로, 2019년 베를린에서 개발되었습니다. 기술팀에게 코드의 유연성과 노코드의 속도를 동시에 제공합니다.
| 특징 | 설명 |
|---|---|
| 통합 | 400개 이상의 사전 구축된 통합 지원 |
| 유연성 | JavaScript/Python 코드 또는 드래그-앤-드롭 |
| 배포 | 셀프 호스팅 또는 클라우드 |
| 템플릿 | 600개 이상의 워크플로우 템플릿 |
MCP란?¶
**MCP (Model Context Protocol)**는 AI 모델이 외부 도구, API 및 데이터 소스와 표준화된 방식으로 상호작용할 수 있게 해주는 프로토콜입니다.
flowchart LR
subgraph AI["AI 클라이언트"]
A[Claude Desktop]
B[Cursor]
end
subgraph MCP["MCP 서버"]
C[n8n MCP Trigger]
end
subgraph Tools["도구/서비스"]
D[이메일]
E[API]
F[데이터베이스]
end
AI --> MCP
MCP --> Tools
🚀 n8n 설치¶
Docker 설치 (권장)¶
# 볼륨 생성
docker volume create n8n_data
# 컨테이너 실행
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
npm 설치¶
설치 후 http://localhost:5678에서 접속 가능합니다.
⚙️ MCP 서버 트리거 설정¶
기본 설정 단계¶
flowchart TD
A[새 워크플로우 생성] --> B[MCP 서버 트리거 추가]
B --> C[URL 경로 설정]
C --> D[인증 설정]
D --> E[도구 노드 연결]
E --> F[워크플로우 활성화]
설정 옵션¶
| 옵션 | 설명 | 예시 |
|---|---|---|
| MCP URL 경로 | 트리거 엔드포인트 | /mcp/abc123 (자동 생성) |
| 인증 | 접근 제어 | Bearer, Header, None |
워크플로우 구조¶
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ AI 모델 요청 │ --> │ MCP 서버 트리거 │ --> │ 도구 노드(들) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
v v
┌──────────────┐ ┌──────────────┐
│ 요청 처리 │ │ 응답 반환 │
└──────────────┘ └──────────────┘
🔗 Claude Desktop 연결¶
설정 파일 구성¶
claude_desktop_config.json 파일 편집:
{
"mcpServers": {
"n8n": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"https://your-n8n-instance.com/mcp/abc123"
]
}
}
}
환경 변수 설정¶
🔧 다중 서버 구성¶
Docker Compose 설정¶
version: '3.8'
services:
n8n:
image: n8nio/n8n
environment:
# MCP 서버 API 키
- MCP_BRAVE_API_KEY=${BRAVE_API_KEY}
- MCP_OPENAI_API_KEY=${OPENAI_API_KEY}
- MCP_SERPER_API_KEY=${SERPER_API_KEY}
- MCP_WEATHER_API_KEY=${WEATHER_API_KEY}
# 커뮤니티 노드 활성화
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
ports:
- "5678:5678"
volumes:
- ~/.n8n:/home/node/.n8n
MCP 클라이언트 자격 증명¶
| 서비스 | 설치 명령 |
|---|---|
| Brave Search | npx -y @modelcontextprotocol/server-brave-search |
| OpenAI Tools | npx -y @modelcontextprotocol/server-openai |
| Web Search | npx -y @modelcontextprotocol/server-serper |
| Weather API | npx -y @modelcontextprotocol/server-weather |
📝 구현 사례¶
1. 이메일 자동화 (초급)¶
flowchart LR
A[MCP 트리거] --> B[이메일 노드]
B --> C[응답 반환]
테스트:
curl -X POST http://localhost:5678/mcp/abc123 \
-H "Content-Type: application/json" \
-d '{"to": "[email protected]", "subject": "테스트", "text": "n8n에서 인사드립니다!"}'
2. API 데이터 가져오기 (중급)¶
flowchart LR
A[MCP 트리거] --> B[HTTP 요청]
B --> C[Set 노드]
C --> D[응답 반환]
테스트:
3. 계산기 도구 (중급)¶
flowchart LR
A[MCP 트리거] --> B[JavaScript 함수]
B --> C[응답 반환]
4. 웹 검색 통합 (고급)¶
flowchart LR
A[AI Agent] --> B[MCP 클라이언트]
B --> C[Brave Search]
C --> D[결과 처리]
⏱️ 난이도 및 소요 시간¶
| 시나리오 | 난이도 | 필요 지식 | 소요 시간 |
|---|---|---|---|
| 기본 MCP 서버 설정 | 초급 | n8n 기본 | 30분 |
| 이메일 자동화 | 초급 | 이메일 노드 | 1시간 |
| API 데이터 가져오기 | 중급 | HTTP, API | 2시간 |
| 계산기 도구 | 중급 | JavaScript | 2시간 |
| 웹 검색 통합 | 고급 | MCP, API 키 | 3-4시간 |
| 다중 서버 구성 | 고급 | Docker, 환경변수 | 5시간+ |
🔒 보안¶
권장 보안 설정¶
- 인증 설정: Bearer 또는 Header 인증 활성화
- 환경 변수: API 키는 환경 변수로 관리
- Docker Secrets: 셀프 호스팅 시 시크릿 활용
- HMAC 서명: 요청 검증 구현
# docker-compose.yml 보안 설정 예시
services:
n8n:
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
secrets:
- n8n_api_key