본문 바로가기
  • AI 시대에 적응하는 현대인을 위한 지식 공간
  • AI를 위한 데이터를 과학으로 역어본다
AI 활용

n8n+MCP 통합 기반 AI에이전트 워크플로우 관리하기

by 피크나인 2025. 12. 23.

n8n과 MCP의 완벽한 통합 가이드 - AI 에이전트 워크플로우 자동화의 새로운 패러다임

핵심 키워드: n8n MCP 통합, Model Context Protocol, AI 워크플로우 자동화, Claude Desktop MCP, n8n 2.0 새기능, MCP Server Trigger, AI 에이전트 자동화


    목 차


1. n8n과 MCP란 무엇인가?

n8n 2.0 소개

n8n은 오픈소스 기반의 워크플로우 자동화 플랫폼으로, 500개 이상의 사전 구축된 노드를 통해 다양한 서비스와 애플리케이션을 연결할 수 있습니다. 2023년 7월 1.0 버전 출시 이후 꾸준한 성장을 거듭하며, 2025년 12월 드디어 2.0 버전이 공개되었습니다. n8n 2.0은 화려한 새 기능보다는 보안, 안정성, 성능에 집중한 "하드닝(Hardening) 릴리스"로, 엔터프라이즈급 플랫폼으로서의 입지를 굳건히 다졌습니다.

 

n8n 2.0의 주요 변화 사항을 살펴보면, 먼저 Save/Publish 분리 기능이 도입되어 워크플로우 편집과 프로덕션 배포가 명확히 구분됩니다. 이전 버전에서는 활성화된 워크플로우를 저장하면 즉시 프로덕션에 반영되어 위험 부담이 있었지만, 이제는 Draft 버전에서 안전하게 작업한 후 준비가 되면 Publish 버튼을 눌러 배포할 수 있습니다. 또한 Task Runners가 기본 활성화되어 Python/JavaScript 코드 노드가 격리된 환경에서 실행되므로, 무한 루프나 메모리 누수가 발생해도 전체 n8n 인스턴스에 영향을 주지 않습니다.

 

성능 측면에서도 큰 개선이 이루어졌는데, 새로운 SQLite 풀링 드라이버는 벤치마크에서 최대 10배 빠른 속도를 보여주며, 초당 최대 220개의 워크플로우 실행을 처리할 수 있습니다. Human-in-the-Loop 워크플로우 지원도 네이티브로 제공되어, AI 에이전트가 Slack 승인과 같은 외부 입력을 기다렸다가 데이터를 원활하게 받아올 수 있게 되었습니다.

MCP(Model Context Protocol) 정의

MCP(Model Context Protocol)는 Anthropic이 2024년 11월에 오픈소스로 공개한 혁신적인 프로토콜입니다. 이 프로토콜은 AI 어시스턴트가 데이터가 존재하는 시스템들, 즉 콘텐츠 저장소, 비즈니스 도구, 개발 환경 등과 연결될 수 있도록 표준화된 방법을 제공합니다. Anthropic의 개발자 David Soria Parra와 Justin Spahr-Summers가 창안한 이 프로토콜은 Language Server Protocol(LSP)의 메시지 흐름 아이디어를 재활용하며, JSON-RPC 2.0을 통해 전송됩니다.

 

MCP가 등장하기 전에는 AI 모델을 외부 도구와 연결하려면 각 조합마다 맞춤형 통합 코드를 작성해야 했습니다. 이른바 "M×N 문제"라고 불리는 이 상황에서, M개의 AI 모델과 N개의 도구를 연결하려면 M×N개의 별도 통합이 필요했습니다. MCP는 이 문제를 해결하여 단일 프로토콜로 모든 AI 시스템과 데이터 소스를 연결할 수 있게 합니다. 마치 USB-C가 다양한 장치들을 하나의 표준으로 연결하는 것처럼, MCP는 AI 세계의 범용 커넥터 역할을 수행합니다.

 

MCP 서버는 세 가지 핵심 요소를 통해 데이터를 노출합니다.

  • Resources는 내부 또는 외부 데이터베이스에서 정보를 검색하며 데이터를 반환하지만 실행 가능한 계산은 수행하지 않습니다.
  • Tools는 계산을 수행하거나 API 요청을 통해 데이터를 가져오는 등 부작용(side effect)을 가질 수 있는 도구입니다.
  • Prompts는 LLM-서버 통신을 위한 재사용 가능한 템플릿과 워크플로우를 제공합니다.

2025년 12월에는 Anthropic이 MCP를 Linux Foundation 산하의 Agentic AI Foundation(AAIF)에 기증했으며, OpenAI, Google, Microsoft, Amazon Web Services, Cloudflare, Bloomberg 등 주요 기업들이 이를 지원하고 있습니다. 이로써 MCP는 AI 에이전트 통합의 사실상 표준(de-facto standard)으로 자리매김했습니다.

MCP는 AI 세계의 USB-C와 같은 범용 연결 표준입니다
MCP는 AI 세계의 USB-C와 같은 범용 연결 표준입니다


2. n8n + MCP 통합의 특이점과 시너지 효과

통합 아키텍처의 특이점

n8n과 MCP의 통합은 양방향 연결을 가능하게 한다는 점에서 독특합니다. n8n은 MCP 서버로서 자신의 워크플로우와 도구를 외부 AI 에이전트에게 노출할 수 있으며, 동시에 MCP 클라이언트로서 외부 MCP 서버의 도구를 사용할 수도 있습니다. 이러한 이중 역할 덕분에 n8n은 AI 기반 자동화의 허브(Hub)로 기능할 수 있습니다.

 

2025년 2월부터 4월 사이에 n8n 팀은 두 가지 핵심 노드를 공식 출시했습니다. MCP Client Tool 노드는 n8n 워크플로우가 외부 MCP 서버를 네이티브 노드처럼 호출할 수 있게 해주며, MCP Server Trigger 노드는 n8n 워크플로우를 MCP 서버로 변환하여 외부 AI 에이전트가 워크플로우 액션을 직접 호출할 수 있게 합니다. 이전에는 커뮤니티 노드를 설치해야 했던 기능이 이제 네이티브로 제공되어 설정과 유지보수가 훨씬 간편해졌습니다.

 

n8n의 MCP 통합은 두 가지 수준에서 작동합니다. Instance-level MCP는 n8n 인스턴스 전체에 대해 하나의 MCP 연결을 생성하고, 중앙 집중식 인증을 사용하며, 어떤 워크플로우를 MCP에 노출할지 선택할 수 있습니다. 반면 Workflow-level MCP(MCP Server Trigger)는 개별 워크플로우 내에서 특정 도구만 노출하는 방식으로, 더 세밀한 제어가 필요할 때 유용합니다.

 

MCP Server Trigger 노드는 Server-Sent Events(SSE)와 Streamable HTTP를 모두 지원합니다. SSE는 HTTP 위에 구축된 장기 지속 연결 방식이며, Streamable HTTP는 더 유연한 연결 옵션을 제공합니다. 다만 Queue 모드에서 여러 웹훅 복제본을 실행할 경우, 모든 /mcp* 요청을 단일 웹훅 복제본으로 라우팅해야 한다는 점을 유의해야 합니다.

장점과 단점

장점

n8n + MCP 통합의 가장 큰 장점은 개발 속도의 혁신적 향상입니다. 커뮤니티 멤버들의 보고에 따르면, 이전에 45분 걸리던 워크플로우 구축이 3분으로 단축되었으며 오류도 크게 줄었습니다. Claude Desktop이나 Gemini CLI 같은 AI 어시스턴트가 n8n의 525개 이상 노드에 대한 완전한 지식을 갖추게 되어, 자연어로 워크플로우를 설명하면 즉시 실행 가능한 JSON을 생성해줍니다.

 

비용 효율성 측면에서도 큰 이점이 있습니다. 코드 실행과 MCP를 결합하면 에이전트가 필요한 도구만 온디맨드로 로딩하고, 모델에 전달하기 전에 데이터를 필터링하며, 복잡한 로직을 단일 단계로 실행할 수 있습니다. Anthropic의 분석에 따르면 이 방식은 토큰 사용량을 크게 줄여 API 비용을 절감합니다. 또한 n8n의 500개 이상 사전 구축 통합을 활용하면 각 서비스마다 별도의 MCP 서버를 구축할 필요가 없어 개발 리소스를 절약할 수 있습니다.

 

보안과 제어 측면에서 MCP는 설계 단계부터 보안을 고려했습니다. n8n은 Bearer 토큰, 일반 헤더, OAuth2 등 다양한 인증 방식을 지원하며, 각 워크플로우의 MCP 노출 여부를 개별적으로 제어할 수 있습니다. 또한 MCP 서버를 자체 인프라 내에서 호스팅할 수 있어 민감한 데이터가 외부로 유출되는 것을 방지할 수 있습니다.

단점 및 제한사항

현재 구현에는 몇 가지 제한사항이 존재합니다. 네이티브 MCP 구현은 현재 SSE 연결만 지원하며, 커뮤니티 노드가 제공하던 STDIO 기반 명령줄 인터페이스는 지원하지 않습니다. 따라서 명령줄 인수나 환경 변수가 필요한 일부 MCP 서버는 네이티브로 연결할 수 없습니다.

 

AI 에이전트 제어의 어려움도 있습니다. Claude와 같은 AI 에이전트를 n8n 도구에 연결할 때, 에이전트가 데이터를 어떻게 포맷하고 전송하는지에 대한 제어가 제한적입니다. 예를 들어 LinkedIn 게시물 작성을 요청하면, Claude가 워크플로우에서 처리하도록 설계되어 있음에도 불구하고 먼저 완전한 게시물을 생성한 후 n8n에 전달할 수 있습니다.

 

Gemini 모델과의 호환성 문제도 보고되고 있습니다. MCP Client Tool을 Gemini 모델(PaLM 또는 Vertex)과 함께 사용할 때 JSON 페이로드 오류가 발생하는 이슈가 있으며, GPT-4o로 교체하면 정상 작동합니다. 이는 향후 업데이트에서 해결될 것으로 예상됩니다.

가능성 및 시너지 효과

n8n과 MCP의 결합은 AI 에이전트 자동화의 새로운 지평을 열어줍니다. Claude Desktop에서 직접 n8n 워크플로우를 호출하여 Google Calendar에 일정을 추가하거나, Slack에 메시지를 보내거나, 데이터베이스를 조회할 수 있습니다. 이를 통해 대화형 AI가 단순한 정보 제공을 넘어 실제 비즈니스 시스템과 상호작용하는 "액션 테이킹 어시스턴트"로 진화합니다.

 

다양한 사용 사례가 가능해집니다. AI 기반 티켓 분류 시스템에서는 특정 이모지가 태그된 Slack 메시지를 AI 모델이 분석하여 Linear에 구조화된 지원 티켓을 자동 생성합니다. 자동화된 연구 요약 시스템은 검색 쿼리, 웹 스크래핑, 콘텐츠 분석, 구조화된 보고서 작성까지 전 과정을 자동화합니다. 자가 복구 DevOps 스크립트는 AI를 사용하여 시스템 알림을 모니터링하고 분석하여 Azure DevOps에 적절한 이슈를 자동 생성합니다.

 

미래 전망도 밝습니다. 동적 도구 발견(Dynamic Tool Discovery) 기능이 개발 중이며, 에이전트가 실시간으로 n8n의 사용 가능한 도구와 메타데이터를 쿼리할 수 있게 될 것입니다. 내장 암호화, 토큰 순환, 감사 로깅 노드 등 보안 강화 기능도 예정되어 있습니다. 또한 n8n.io/workflows에서 이미 MCP 서버 템플릿 공유가 시작되어 커뮤니티 기반 생태계가 빠르게 성장하고 있습니다.


3. MCP 서버 설치 및 구성

n8n에서 MCP 서버 구성하기

n8n에서 MCP 서버를 구성하는 방법은 두 가지가 있습니다. 첫 번째는 Instance-level MCP로, n8n 인스턴스 전체에서 여러 워크플로우를 한 번에 MCP로 노출하는 방식입니다. 두 번째는 Workflow-level MCP(MCP Server Trigger 노드)로, 개별 워크플로우 내에서 특정 도구만 노출하는 방식입니다. 대부분의 사용자에게는 UI가 직관적인 Instance-level MCP를 권장합니다.

방법 1  |  Instance-level MCP 설정 (n8n UI 사용 - 권장)

n8n의 웹 인터페이스에서 클릭 몇 번으로 MCP 서버를 설정할 수 있습니다. 이 방법은 코드 편집 없이 중앙에서 모든 MCP 연결을 관리할 수 있어 가장 편리합니다.

 

단계별 설정 가이드:

  1. n8n 설정 페이지 접속: n8n 인스턴스에 로그인한 후, 좌측 하단의 설정 아이콘을 클릭하거나 메뉴에서 Settings를 선택합니다.
  2. MCP Access 메뉴 진입: 설정 메뉴에서 MCP Access를 클릭합니다. 이 메뉴는 인스턴스 소유자 또는 관리자 권한이 있어야 접근할 수 있습니다.
  3. MCP 기능 활성화: 상단의 Enable MCP (Enabel MCP access to this n8n instance) 토글을 켜서 MCP 기능을 활성화합니다.
  4. 인증 방식 선택: 두 가지 탭에서 원하는 인증 방식을 선택합니다.
    • OAuth2: Server URL만 제공되며, 클라이언트가 n8n으로 리다이렉트되어 로그인 후 접근을 승인합니다
    • Access Token: Server URL과 JWT 형식의 Access Token이 함께 제공됩니다
  5. 클라이언트 설정 코드 복사: Access Token 탭에서 "Or use the following code in your 'mcp.json' file" 섹션을 펼치면 Claude Desktop 등에서 사용할 수 있는 JSON 설정 코드가 표시됩니다. 이 코드를 복사하여 MCP 클라이언트 설정 파일에 붙여넣습니다.⚠️ 중요: Access Token은 최초 생성 시에만 전체 값을 볼 수 있습니다. 🔄 버튼으로 새 토큰을 생성하면 이전 토큰은 무효화되므로, JSON 코드를 복사한 후에는 토큰을 재생성하지 마세요.
  6. 워크플로우별 MCP 접근 허용: MCP로 노출할 워크플로우를 개별적으로 선택해야 합니다.
    • 각 워크플로우의 Settings 탭으로 이동
    • Available in MCP 토글을 켜기
    • 설정된 워크플로우는 MCP Access 화면 하단의 Available Workflows 목록에 표시됩니다

n8n Setting > MCP Access에서 'Enable MCP' 토글을 켜서, Intance-level MCP를 활성화합니다
n8n Setting > MCP Access에서 'Enable MCP' 토글을 켜서, Intance-level MCP를 활성화합니다

 

MCP Access > Access Token > 액세스 토큰 생성한 후, mcp.json을 복사해서 Claude Desktop의 claude_desktop_config.json에 추가합니다

 

 

Instance-level MCP의 장점:

  • 중앙 집중식 관리로 모든 MCP 연결을 한 곳에서 제어합니다
  • 개별 워크플로우마다 별도의 URL/토큰을 관리할 필요가 없습니다
  • Connected clients 탭에서 연결된 클라이언트를 확인하고 접근을 취소할 수 있습니다
  • OAuth2를 사용하면 보안이 더욱 강화됩니다

Access Token : Bearer 토큰 사용시 주의 사항

Bearer Token 중복 사용 가능 여부 : 동일한 토큰을 여러 곳에서 동시에 사용할 수 있습니다.

환경 동일 토큰 사용 비고
집 컴퓨터 Claude Desktop 가능 동일 토큰 복사
회사 컴퓨터 Claude Desktop 가능 동일 토큰 복사
Claude Code 가능 동일 토큰 복사
VS Code 가능 동일 토큰 복사

토큰 재생성 시 주의사항

토큰은 한 번 생성한 다음 적합한 곳에 복사한 다음, 다른 환경에서 인증받을 때 다시 사용하셔야 합니다. 다른 환경에서의 토큰값을 위해 토큰을 재생성하면 이전 토큰은 즉시 무효화됩니다.

[토큰 재생성 시 발생하는 상황]

이전 토큰: eyJhbGciOiJIUzI1NiIs... (무효화됨)
     ↓
새 토큰: eyJhbGciOiJIUzI1NiIs... (새로 발급)

결과:
- 집 컴퓨터: 연결 끊김 (이전 토큰 사용 중)
- 회사 컴퓨터: 연결 끊김 (이전 토큰 사용 중)
- 모든 환경에서 새 토큰으로 업데이트 필요

 

권장 사항

  1. 토큰은 한 번만 생성하고 여러 곳에 복사하세요
    - 처음 토큰을 생성할 때 안전한 곳(비밀번호 관리자 등)에 저장해두고, 필요한 모든 환경에 동일한 토큰을 설정하면 됩니다.
  2. 토큰 재생성은 신중하게
    - 재생성하면 해당 토큰을 사용하는 모든 클라이언트의 설정을 업데이트해야 합니다.
  3. API Key도 마찬가지
    - n8n-workflow-builder에서 사용하는 n8n API Key도 동일합니다. 하나의 API Key를 여러 환경에서 공유할 수 있지만, 삭제/재생성하면 모든 곳에서 업데이트가 필요합니다.

방법 2  |  MCP Server Trigger 노드 사용 (워크플로우 레벨)

특정 워크플로우에서 정교하게 제어된 도구만 노출하려면 MCP Server Trigger 노드를 사용합니다. 이 방법은 워크플로우 단위로 MCP 서버를 구성할 수 있어 더 세밀한 제어가 가능합니다.

 

n8n 인스턴스에 접속하여 새 워크플로우를 생성합니다. 이 워크플로우가 AI 에이전트들이 연결할 "허브" 역할을 하게 됩니다. 노드 추가 버튼(캔버스에서 + 버튼)을 클릭하고 "MCP Server Trigger"를 검색하여 선택합니다. 노드가 추가되면 상단에 Test URL과 Production URL 두 가지가 표시되는데, 테스트 중에는 Test URL을, 실제 운영 시에는 Production URL을 사용합니다.

 

MCP URL Path는 n8n이 자동으로 고유한 경로(예: /mcp/abc123)를 생성해주지만, 기억하기 쉽도록 수동으로 지정할 수도 있습니다. 인증 설정에서는 None, Bearer, Header Auth, OAuth2 중 선택할 수 있으며, 보안을 위해 최소한 Bearer 인증을 권장합니다. Bearer 인증을 사용하려면 Base64로 인코딩된 토큰을 생성해야 하는데, 온라인 인코더 도구를 사용하여 "username:password" 형식의 문자열을 인코딩하면 됩니다.

 

이제 MCP Server Trigger에 도구를 연결합니다. n8n은 약 100개 이상의 MCP 호환 도구를 제공하며, Google Calendar, Gmail, Slack, Airtable 등 다양한 서비스와 연동할 수 있습니다. 도구 노드를 MCP Server Trigger에 연결하고 필요한 자격 증명을 구성합니다. 마지막으로 워크플로우를 활성화(Publish)하면 외부 AI 에이전트가 연결할 준비가 완료됩니다.

[워크플로우 구조 예시]

MCP Server Trigger
    ├── Google Calendar Tool
    ├── Gmail Tool  
    ├── Slack Tool
    └── Custom n8n Workflow Tool

 

특정 워크플로우에서 MCP Server를 활성화 하는 경우의 화면 예시:

워크플로우별 MCP접근 허용을 위해 각 워크플로우 Setting에서 'Available in MCP' 토클을 켭니다

자주 사용되는 MCP 서버 모음

Anthropic과 커뮤니티에서 제공하는 다양한 레퍼런스 MCP 서버들이 있으며, 이들은 즉시 사용 가능한 상태로 제공됩니다. 아래는 가장 인기 있는 MCP 서버들입니다.

서버명 설명 설치 명령어
Filesystem 로컬 파일 시스템에 대한 안전한 파일 작업 npx -y @modelcontextprotocol/server-filesystem /path
GitHub 저장소 관리, 이슈, PR 처리 npx -y @modelcontextprotocol/server-github
Slack 채널 관리, 메시지 전송 npx -y @modelcontextprotocol/server-slack
PostgreSQL 데이터베이스 접근 및 쿼리 npx -y @modelcontextprotocol/server-postgres
Brave Search 프라이버시 중심 웹 검색 npx -y @modelcontextprotocol/server-brave-search
Google Maps 위치 기반 서비스 npx -y @modelcontextprotocol/server-google-maps
Memory 지식 그래프 기반 영구 메모리 시스템 npx -y @modelcontextprotocol/server-memory
Puppeteer 브라우저 자동화 및 웹 스크래핑 npx -y @modelcontextprotocol/server-puppeteer
Git Git 저장소 읽기, 검색, 조작 npx -y @modelcontextprotocol/server-git
Fetch 웹 콘텐츠 가져오기 및 변환 npx -y @modelcontextprotocol/server-fetch

 

이 외에도 Sentry(이슈 분석), Google Drive(파일 접근), SQLite(데이터베이스), Cloudflare(엣지 컴퓨팅), Raygun(에러 추적), Vector Search(시맨틱 검색) 등 수백 개의 커뮤니티 서버가 GitHub의 modelcontextprotocol/servers 저장소에서 제공되고 있습니다. 각 서버는 특정 환경 변수(API 키 등)가 필요할 수 있으므로 해당 서버의 문서를 참조하여 설정해야 합니다.


4. 다양한 클라이언트와 n8n MCP 서버 연동하기

Claude Desktop 연동

Claude Desktop은 가장 널리 사용되는 MCP 클라이언트 중 하나입니다. n8n 2.0.3 기준으로 Claude Desktop과 n8n MCP 서버를 연동하려면 설정 파일을 직접 편집하는 방식을 사용해야 합니다.

⚠️ Self-hosted n8n 사용자 주의사항: Claude Desktop의 UI Connector에서 OAuth 방식으로 연결을 시도하면 리다이렉션 과정에서 인증 오류가 발생할 수 있습니다. 이 경우 아래의 설정 파일 편집 방식을 사용하세요.

설정 파일 직접 편집 (n8n 2.0.3 검증 완료)

n8n 2.0.3에서는 supergatewayStreamable HTTP 방식을 사용하여 Claude Desktop과 연결합니다. n8n의 MCP Access 화면에서 제공하는 JSON 코드를 그대로 사용하면 됩니다.

 

단계별 설정 가이드:

  1. n8n에서 설정 코드 복사:
    • n8n > Settings > MCP Access 이동
    • Access Token 탭 선택
    • "Or use the following code in your 'mcp.json' file" 섹션 펼치기
    • JSON 코드 전체 복사
  2. Claude Desktop 설정 파일 열기:

macOS:

 
   # 터미널에서 실행
   open ~/Library/Application\ Support/Claude/claude_desktop_config.json
   
   # 또는 Finder에서 직접 이동
   # Cmd+Shift+G → ~/Library/Application Support/Claude/

 

Windows:

   # 파일 탐색기 주소창에 입력
   %APPDATA%\Claude\claude_desktop_config.json

 

Linux:

   ~/.config/Claude/claude_desktop_config.json

 

  3. JSON 코드 붙여넣기: n8n에서 복사한 코드는 다음과 같은 형식입니다:

   {
     "mcpServers": {
       "n8n-mcp": {
         "command": "npx",
         "args": [
           "-y",
           "supergateway",
           "--streamableHttp",
           "https://your-n8n-instance.com/mcp-server/http",
           "--header",
           "authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
         ]
       }
     }
   }

 

주요 구성 요소:

  • supergateway: MCP 프록시 게이트웨이 (SSE가 아닌 Streamable HTTP 지원)
  • --streamableHttp: n8n 2.0+에서 사용하는 HTTP 스트리밍 방식
  • --header: JWT 형식의 Bearer 토큰을 헤더로 전달

  4. Claude Desktop 재시작:

  • Claude Desktop을 완전히 종료 (Dock/시스템 트레이에서도 종료)
  • 다시 실행

  5. 연결 확인: Claude Desktop에서 n8n 도구가 정상적으로 연결되었는지 확인합니다:

# n8n-mcp 서버가 연결되는 경우 n8n-mcp는 아래의 기능이 가능
# 1) search_workflows : 워크플로우 검색
# 2) get_workflow_details : 워크플로우 상세 조회
# 3) execute_workflow : 워크플로우 실행

# 다음과 같이 요청해보세요.

"n8n에 연결된 워크플로우 목록을 보여줘"
"Flow101 워크플로우에 대해 설명해줘"

Claude Desktop 설정 파일 구조

# ~/Library/Application Support/Claude/claude_desktop_config.json

 {
   "mcpServers": {
     "n8n-mcp": {              # n8n MCP 서버
       "command": "npx",
       "args": [
         "-y",
         "supergateway",       # Streamable HTTP 게이트웨이
         "--streamableHttp",
         "https://your-n8n.com/mcp-server/http",
         "--header",
         "authorization:Bearer eyJhbG..."  # JWT 토큰
       ]
     },
     "other-mcp": { ... }      # 다른 MCP 서버 추가 가능
   }
 }

Claude Desktop UI Connector 사용 시 주의사항

Claude Desktop의 Settings > Connectors에서 UI를 통해 n8n을 연결하려고 하면, OAuth 인증 과정에서 다음과 같은 문제가 발생할 수 있습니다:

  • Self-hosted n8n: 웹 브라우저에서 Claude Desktop으로 리다이렉션될 때 Server URL 인증 오류 발생
  • Bearer Token 미지원: Claude Desktop UI Connector는 현재 Bearer Token 인증 방식을 지원하지 않음

따라서 n8n self-hosted 환경에서는 설정 파일 직접 편집 방식을 권장합니다.


n8n-mcp 프로젝트 활용 (워크플로우 자동 빌더)

n8n-mcp 프로젝트를 사용하면 Claude가 n8n의 525개 이상 노드에 대한 완전한 지식을 갖추게 되어, 자연어로 워크플로우를 설명하면 즉시 실행 가능한 JSON을 생성해줍니다. 이 기능을 함께 사용하려면 설정 파일에 다음과 같이 추가합니다:

 

n8n-workflow-builder mcp 설정 추가 : 다른 블로그 글에서 상세히 다룰 예정입니다.

{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--streamableHttp",
        "https://your-n8n-instance.com/mcp-server/http",
        "--header",
        "authorization:Bearer your-jwt-token"
      ]
    },
    "n8n-workflow-builder": {
      "command": "npx",
      "args": ["-y", "@makafeli/n8n-workflow-builder"],
      "env": {
        "N8N_HOST": "your-n8n-instance.com/api/v1",
        "N8N_API_KEY": "your-n8n-api-key"
      }
    }
  }
}

 

Claude Desktop에서 'n8n-mcp'와 'mcp-workflow-builer' MCP클라이언트의 연결이 성공하였습니다
Claude Desktop에서 'n8n-mcp'와 'mcp-workflow-builer' MCP클라이언트의 연결이 성공하였습니다

 

파일 편집의 장점:

  • 환경 변수를 세밀하게 제어할 수 있습니다
  • 버전 관리 시스템(Git)으로 설정을 추적할 수 있습니다
  • 스크립트를 통한 자동 배포가 가능합니다

여러 환경에서 동일한 설정을 복사하여 사용할 수 있습니다

Claude Code 연동

Claude Code는 터미널에서 직접 AI 코딩 어시스턴트를 사용할 수 있는 명령줄 도구입니다. n8n MCP 서버와의 연동은 매우 간단합니다. 

Claude Code(CLI)에 n8n MCP를 설치하려면 터미널에서 claude mcp add 명령어를 사용하거나 설정 파일에 직접 입력해야 합니다. 물론, 현재 Claude Code CLI에서 작업중이라면  "add this mcp server"라고 입력한 후 설정 정보를 붙여넣기만 해도 됩니다.

명령어로 간편하게 추가하기

터미널에서 아래 명령어를 입력하여 n8n MCP 서버를 등록할 수 있습니다. 2025년 기준 Claude Code는 원격 HTTP 전송 방식을 지원합니다. 

# Claude Code에서 MCP 서버 추가
# 사용자 전역(--scope user)으로 설정하여 모든 프로젝트에서 사용 가능하도록 추가

claude mcp add n8n-mcp --scope user --url https://play.peaknine.io/mcp-server/http --token your-bearer-token

설정 파일 직접 수정하기 (권장)

복잡한 인증 정보(Bearer Token 등)를 정확히 입력하려면 설정 파일을 직접 편집하는 것이 더 안정적입니다. 

Bearer Token값의 인증등 복잡한 부분이 있어 설정파일을 직접 수정하는 것을 권장합니다. Claude Code의 설정 파일 위치는 ~/.claude/config.json이며, Claude Desktop과 유사한 형식으로 mcpServers 섹션을 추가합니다. Claude Code는 특히 개발 워크플로우 자동화에 강력한데, Git 저장소 관리, 코드 리뷰, CI/CD 파이프라인 트리거 등의 작업을 자연어로 수행할 수 있습니다.

{
  "mcpServers": {
    "n8n-mcp": {
      "type": "http",
      "url": "https://play.peaknine.io/mcp-server/http",
      "env": {
        "N8N_API_KEY": "여러분의-n8n-workflow-builder-API-Key",
        "AUTHORIZATION": "Bearer n8n-mcp"
      }
    }
  }
}

 

(참고: n8n MCP 구현체에 따라 환경 변수 이름(N8N_API_KEY, N8N_HOST 등)이 다를 수 있으므로, 사용 중인 MCP 서버의 가이드를 확인하세요.) 

설치 확인 및 실행

  • 재시작: 설정을 저장한 후 Claude Code를 종료하고 다시 실행합니다.
  • 연결 확인: Claude Code 실행 후 /mcp 명령어를 입력하여 n8n-mcp가 connected 상태인지 확인합니다.
  • 사용: "n8n 워크플로우 목록 보여줘" 또는 "새로운 워크플로우 생성해줘"와 같이 자연어로 명령하면 n8n 도구를 호출합니다. 
주의사항: 2025년 최신 보안 정책에 따라 MCP 서버 연결 시 권한 허용 메시지가 뜰 수 있으며, 이를 승인해야 정상적으로 작동합니다. 

Gemini CLI 연동

Google의 Gemini CLI는 Gemini 2.5 Pro를 터미널에서 직접 사용할 수 있게 해주는 오픈소스 AI 에이전트입니다. 2025년 기준 GitHub에서 48,600개 이상의 스타를 받으며 빠르게 성장하고 있습니다. Claude Desktop Pro의 용량 제한에 비해 Google AI Pro Plan을 사용하면 분당 120개의 요청을 제출할 수 있어 무제한에 가까운 워크플로우 지원이 가능합니다.

방법 1  |  인터랙티브 설정 (초보자 권장)

Gemini CLI는 대화형 설정 마법사를 제공하여 터미널에서도 쉽게 MCP 서버를 추가할 수 있습니다.

# Gemini CLI 설치
npm install -g @google/gemini-cli

# 초기 설정 - 대화형 마법사 시작
gemini init

 

초기 설정이 완료되면, MCP 서버를 추가하는 명령어를 사용합니다.

# MCP 서버 추가 (대화형)
gemini mcp add

# 프롬프트에 따라 입력:
# > Server name: n8n-workflow
# > Server URL: https://your-n8n-instance.com/mcp/your-path
# > Authentication type: bearer
# > Token: your-bearer-token

 

MCP 서버 관리 명령어:

# 연결된 MCP 서버 목록 확인
gemini mcp list

# 특정 MCP 서버 제거
gemini mcp remove n8n-workflow

# MCP 서버 연결 테스트
gemini mcp test n8n-workflow

 

방법 2  |  설정 파일 직접 편집 (고급 사용자용)

Gemini CLI의 MCP 설정 파일(~/.gemini/settings.json)에 n8n 서버를 직접 추가할 수도 있습니다.

{
  "mcpServers": {
    "n8n-workflow": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-n8n-instance.com/mcp/your-path"
      ]
    }
  }
}

 

2025년 8월 업데이트에서 Gemini CLI는 VS Code와의 심층 통합, MCP 프로토콜 강화, 명령줄 MCP 서버 관리 기능 등이 추가되었습니다. /ide 명령을 사용하여 VS Code 환경에서 Gemini CLI를 설정할 수 있으며, 지능형 컨텍스트 인식 제안 기능이 현재 작업 환경과 파일 내용을 자동으로 이해합니다.

Google Antigravity 연동

Google Antigravity(구 ADK Agent)는 Google의 AI 에이전트 개발 키트의 일부로, n8n MCP 서버와 연동하여 복잡한 에이전트 워크플로우를 구축할 수 있습니다. n8n 문서에서는 ADK 에이전트를 n8n에 연결하는 가이드를 제공하고 있습니다.

연동을 위해서는 먼저 Instance-level MCP 설정에서 OAuth 또는 Access Token 인증을 구성해야 합니다. n8n 인스턴스의 서버 URL을 복사하여 Antigravity 설정에 입력하고, 인증 과정을 완료하면 에이전트가 n8n 워크플로우에 접근할 수 있게 됩니다.

# Antigravity 에이전트에서 n8n MCP 서버 사용 예시
from google.adk import Agent, MCPClient

mcp_client = MCPClient(
    server_url="https://your-n8n-instance.com/mcp",
    auth_token="your-access-token"
)

agent = Agent(tools=[mcp_client])
response = agent.run("n8n 워크플로우를 사용하여 주간 보고서를 생성해줘")

Visual Studio Code 연동

VS Code에서 n8n MCP 서버를 사용하는 방법은 여러 가지가 있습니다. 가장 직관적인 방법은 VS Code의 확장 프로그램 마켓플레이스에서 MCP 관련 확장을 설치하는 것이며, 더 세밀한 제어가 필요한 경우 설정 파일을 직접 편집할 수 있습니다.

 

이 글에서는 설정파일을 직접 편집하여 보다 세밀하고 확실한 방법으로 n8n MCP서버를 사용하는 방법을 알아보겠습니다.

더 세밀한 제어가 필요하거나 팀 전체에서 동일한 설정을 공유하려면 프로젝트의 .vscode/settings.json 파일을 직접 편집할 수 있습니다.

// .vscode/settings.json
{
  "gemini.mcpServers": {
    "n8n": {
      "command": "npx",
      "args": ["-y", "@anthropic/n8n-mcp"],
      "env": {
        "N8N_API_URL": "https://your-n8n-instance.com/api/v1",
        "N8N_API_KEY": "your-api-key"
      }
    }
  }
}

 

사용자 수준 설정 (모든 프로젝트에 적용):

  1. Ctrl+Shift+P (Mac: Cmd+Shift+P)로 명령 팔레트 열기
  2. "Preferences: Open User Settings (JSON)" 입력 및 선택
  3. 위의 설정 내용 추가

이렇게 설정하면 VS Code 내에서 코딩하면서 동시에 n8n 워크플로우를 생성, 수정, 실행할 수 있습니다. 특히 자동화 스크립트를 작성할 때 AI가 적절한 n8n 워크플로우를 제안하거나 직접 생성해주어 개발 효율성이 크게 향상됩니다.

 


5. n8n MCP 트리거 노드 상세 가이드

5.1 MCP Server Trigger 노드 개요

MCP Server Trigger 노드는 n8n을 MCP 서버로 작동하게 하여 외부 MCP 클라이언트가 n8n의 도구와 워크플로우에 접근할 수 있게 합니다. 일반적인 트리거 노드가 이벤트에 응답하여 다음 연결된 노드로 출력을 전달하는 것과 달리, MCP Server Trigger는 도구 노드에만 연결되고 실행됩니다. 클라이언트는 사용 가능한 도구 목록을 조회하고 개별 도구를 호출하여 작업을 수행할 수 있습니다.

노드의 주요 설정 파라미터는 다음과 같습니다. MCP URL Path는 MCP 엔드포인트의 경로를 지정하며, 기본적으로 고유한 랜덤 경로가 생성됩니다. Authentication에서는 None, Bearer, Header Auth, OAuth2 중 인증 방식을 선택합니다. Tools to Include에서는 All(모든 도구)과 Selected(선택한 도구만) 중 하나를 선택할 수 있습니다.

[MCP Server Trigger 노드 설정 화면 구조]

┌─────────────────────────────────────────┐
│ MCP Server Trigger                       │
├─────────────────────────────────────────┤
│ Test URL: https://n8n.example.com/...   │
│ Production URL: https://n8n.example.com/│
├─────────────────────────────────────────┤
│ MCP URL Path: /mcp/[custom-path]        │
│ Authentication: [Bearer ▼]              │
│ Credential: [Select credential ▼]       │
├─────────────────────────────────────────┤
│ Tools to Include: [All ▼]               │
└─────────────────────────────────────────┘

Test URL과 Production URL의 차이점을 이해하는 것이 중요합니다. Test URL은 "Listen for Test Event"나 "Execute workflow"를 선택했을 때 등록되며, 워크플로우가 활성화되지 않은 상태에서도 사용할 수 있습니다. 테스트 URL을 호출하면 n8n이 워크플로우 내에서 데이터를 표시합니다. Production URL은 워크플로우를 게시(Publish)할 때 등록되며, 실제 운영 환경에서 사용됩니다. Production URL 사용 시에는 워크플로우 내에서 데이터가 표시되지 않지만, Executions 탭에서 실행 기록을 확인할 수 있습니다.


5.2 MCP Client Tool 노드 개요

MCP Client Tool 노드는 외부 MCP 서버가 노출하는 도구를 n8n 워크플로우 내에서 사용할 수 있게 해주는 MCP 클라이언트입니다. 이 노드를 AI Agent에 연결하면 n8n 에이전트가 외부 도구를 호출할 수 있습니다.

주요 설정 파라미터는 다음과 같습니다. SSE Endpoint에는 연결하려는 MCP 서버의 SSE 엔드포인트 URL을 입력합니다. Authentication에서는 Bearer, Header Auth, OAuth2, None 중 선택합니다. Tools to Include에서 All은 MCP 서버의 모든 도구를 노출하고, Selected는 AI Agent에 노출할 도구를 직접 선택할 수 있습니다.

최신 n8n 버전(1.115.0+)에서는 MCP Client 노드가 AI Agent 없이도 독립적으로 사용할 수 있게 되었습니다. 이전에는 AI Agent를 통해서만 MCP 서버를 호출할 수 있었지만, 이제는 워크플로우의 어느 단계에서든 MCP 서버를 직접 호출할 수 있어 더욱 유연한 통합이 가능해졌습니다.


5.3 Custom n8n Workflow Tool 노드

Custom n8n Workflow Tool 노드는 MCP Server Trigger에 n8n 워크플로우를 도구로 연결하는 역할을 합니다. 이를 통해 외부 AI 에이전트가 복잡한 n8n 워크플로우를 단일 도구로 호출할 수 있습니다.

워크플로우를 MCP 도구로 노출하려면 해당 워크플로우에 Subworkflow Trigger가 있어야 하며, 입력 스키마가 정의되어 있어야 합니다. 입력 스키마는 AI 에이전트가 워크플로우에 어떤 파라미터를 전달해야 하는지 이해하는 데 필수적입니다. 워크플로우 설명에 입력 스키마 정보를 포함하면 MCP 클라이언트가 더 정확하게 도구를 사용할 수 있습니다.

[Custom Workflow Tool 연결 구조]

MCP Server Trigger
    │
    ├── Custom n8n Workflow Tool ──► Subworkflow Trigger (다른 워크플로우)
    │                                      │
    │                                      ├── 복잡한 로직
    │                                      ├── 외부 API 호출
    │                                      └── 결과 반환
    │
    ├── Google Calendar Tool
    └── Slack Tool

6. 실전 워크플로우 예제

 예제 1   |   AI/로봇 기술동향 IT 뉴스 브리핑 자동화

이 워크플로우는 AI와 로봇 기술 관련 최신 뉴스를 자동으로 수집하고 요약하여 일간 또는 주간 브리핑을 생성합니다. Brave Search MCP 서버를 활용하여 웹 검색을 수행하고, AI 모델로 내용을 분석 및 요약합니다.

 

워크플로우 생성 프롬프트:

다음 요구사항에 맞는 n8n 워크플로우를 JSON 형식으로 생성해주세요:

1. 워크플로우 이름: "AI 로봇 기술동향 뉴스 브리핑 자동화"

2. 트리거:
   - Schedule Trigger로 매일 오전 8시(KST) 실행
   - 또는 매주 월요일 오전 8시 주간 브리핑 옵션

3. 검색 단계:
   - MCP Client Tool을 사용하여 Brave Search 서버에 연결
   - 검색 키워드: "AI 인공지능 기술 동향", "로봇 자동화 산업", "생성형 AI 최신 뉴스"
   - 각 키워드별로 최근 24시간(일간) 또는 7일(주간) 이내 뉴스 검색
   - 결과에서 상위 10개 기사씩 수집

4. 데이터 처리:
   - HTTP Request 노드로 각 기사 URL 접속하여 본문 추출
   - 중복 기사 제거 (URL 기반)
   - 관련성 점수 기준 정렬

5. AI 분석:
   - OpenAI 또는 Claude API 노드 사용
   - 각 기사를 3줄 이내로 요약
   - 전체 동향을 5가지 핵심 포인트로 정리
   - 산업별 영향도 분석 (제조, 의료, 금융, 물류 등)

6. 보고서 생성:
   - 마크다운 형식의 브리핑 보고서 생성
   - 섹션: 오늘의 헤드라인, 기술별 동향, 기업 동향, 규제/정책, 전문가 의견
   - 각 기사에 원문 링크 포함

7. 배포:
   - Slack 채널로 브리핑 전송
   - 이메일로 PDF 첨부 발송 옵션
   - Google Drive에 보고서 백업 저장

8. 에러 처리:
   - 각 단계별 에러 캐치 및 로깅
   - 실패 시 관리자에게 알림 전송

 

생성된 워크플로우 JSON:

{
  "name": "AI 로봇 기술동향 뉴스 브리핑 자동화",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * *"
            }
          ]
        }
      },
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [0, 0]
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "sseEndpoint": "={{ $env.BRAVE_MCP_ENDPOINT }}",
        "authentication": "bearerAuth",
        "toolName": "brave_web_search",
        "toolParameters": {
          "query": "AI 인공지능 기술 동향 site:news",
          "count": 10,
          "freshness": "pd"
        }
      },
      "name": "MCP Brave Search - AI",
      "type": "n8n-nodes-langchain.toolMcp",
      "typeVersion": 1,
      "position": [220, -100]
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "sseEndpoint": "={{ $env.BRAVE_MCP_ENDPOINT }}",
        "toolName": "brave_web_search",
        "toolParameters": {
          "query": "로봇 자동화 산업 최신 뉴스",
          "count": 10,
          "freshness": "pd"
        }
      },
      "name": "MCP Brave Search - Robot",
      "type": "n8n-nodes-langchain.toolMcp",
      "typeVersion": 1,
      "position": [220, 100]
    },
    {
      "parameters": {
        "jsCode": "const allResults = [];\nfor (const item of $input.all()) {\n  if (item.json.results) {\n    allResults.push(...item.json.results);\n  }\n}\n\n// 중복 제거 (URL 기반)\nconst uniqueResults = [...new Map(allResults.map(item => [item.url, item])).values()];\n\nreturn uniqueResults.slice(0, 20).map(r => ({ json: r }));"
      },
      "name": "Merge & Deduplicate",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [440, 0]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "당신은 기술 뉴스 분석 전문가입니다. 주어진 뉴스 기사들을 분석하여 한국어로 체계적인 브리핑 보고서를 작성해주세요."
            },
            {
              "role": "user",
              "content": "다음 뉴스 기사들을 분석하여 브리핑을 작성해주세요:\n\n{{ $json.articles }}\n\n포함할 내용:\n1. 오늘의 주요 헤드라인 (상위 5개)\n2. 기술별 동향 (AI, 로봇, 자동화)\n3. 주요 기업 동향\n4. 규제 및 정책 변화\n5. 전문가 의견 및 전망\n\n각 섹션은 마크다운 형식으로 작성하고, 원문 링크를 포함해주세요."
            }
          ]
        }
      },
      "name": "AI Analysis",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1,
      "position": [660, 0]
    },
    {
      "parameters": {
        "channel": "#tech-news",
        "text": "= *AI/로봇 기술동향 일간 브리핑*\n_{{ $now.format('yyyy-MM-dd') }}_\n\n{{ $json.message.content }}"
      },
      "name": "Slack Notification",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2,
      "position": [880, -100]
    },
    {
      "parameters": {
        "sendTo": "={{ $env.ADMIN_EMAIL }}",
        "subject": "AI/로봇 기술동향 일간 브리핑 - {{ $now.format('yyyy-MM-dd') }}",
        "emailType": "text",
        "message": "={{ $json.message.content }}"
      },
      "name": "Email Report",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [880, 100]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          { "node": "MCP Brave Search - AI", "type": "main", "index": 0 },
          { "node": "MCP Brave Search - Robot", "type": "main", "index": 0 }
        ]
      ]
    },
    "MCP Brave Search - AI": {
      "main": [
        [{ "node": "Merge & Deduplicate", "type": "main", "index": 0 }]
      ]
    },
    "MCP Brave Search - Robot": {
      "main": [
        [{ "node": "Merge & Deduplicate", "type": "main", "index": 0 }]
      ]
    },
    "Merge & Deduplicate": {
      "main": [
        [{ "node": "AI Analysis", "type": "main", "index": 0 }]
      ]
    },
    "AI Analysis": {
      "main": [
        [
          { "node": "Slack Notification", "type": "main", "index": 0 },
          { "node": "Email Report", "type": "main", "index": 0 }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

 


예제 2  |  주식시장 주요 지수 및 지표 분석

이 워크플로우는 주요 주식시장 지수(KOSPI, KOSDAQ, S&P 500, NASDAQ 등)와 핵심 지표를 모니터링하고, 시장 현황을 분석하여 투자 인사이트를 제공합니다.

 

워크플로우 생성 프롬프트:

다음 요구사항에 맞는 n8n 워크플로우를 JSON 형식으로 생성해주세요:

1. 워크플로우 이름: "주식시장 지수 및 지표 분석 시스템"

2. 트리거:
   - Schedule Trigger: 장 마감 후 오후 4시(KST) 일간 분석
   - Webhook Trigger: 실시간 분석 요청 가능

3. 데이터 수집 (HTTP Request 노드 활용):
   - 한국 시장: KOSPI, KOSDAQ 지수
   - 미국 시장: S&P 500, NASDAQ, DOW Jones
   - 환율: USD/KRW, EUR/KRW, JPY/KRW
   - 원자재: 금, 은, 원유(WTI, Brent)
   - 채권: 미국 10년물 국채 금리, 한국 3년물 국채 금리
   - VIX 공포지수

4. 기술적 지표 계산 (Code 노드):
   - 이동평균: 5일, 20일, 60일, 120일
   - RSI (14일 기준)
   - MACD (12, 26, 9)
   - 볼린저 밴드 (20일, 2표준편차)
   - 거래량 분석

5. 시장 상태 판단 AI 분석:
   - 현재 시장 단계 (상승/횡보/하락)
   - 섹터별 강세/약세 분석
   - 외국인/기관 수급 동향
   - 글로벌 상관관계 분석

6. 알림 조건 (If 노드):
   - VIX 25 이상: 변동성 경고
   - 주요 지수 2% 이상 변동: 급등/급락 알림
   - 골든크로스/데드크로스 발생 시

7. 리포트 생성:
   - 일간 시황 요약
   - 주간 전망 (금요일)
   - 차트 이미지 생성 (가능한 경우)

8. 배포:
   - Telegram 봇으로 실시간 알림
   - Notion 데이터베이스에 기록
   - Google Sheets에 히스토리 저장

 

생성된 워크플로우 JSON:

{
  "name": "주식시장 지수 및 지표 분석 시스템",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 16 * * 1-5"
            }
          ]
        }
      },
      "name": "Daily Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [0, 0]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "stock-analysis"
      },
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [0, 200]
    },
    {
      "parameters": {
        "url": "https://api.example.com/market/indices",
        "options": {
          "qs": {
            "symbols": "KOSPI,KOSDAQ,SPX,IXIC,DJI"
          }
        }
      },
      "name": "Fetch Market Indices",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 0]
    },
    {
      "parameters": {
        "url": "https://api.example.com/forex",
        "options": {
          "qs": {
            "pairs": "USDKRW,EURKRW,JPYKRW"
          }
        }
      },
      "name": "Fetch Forex Rates",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 150]
    },
    {
      "parameters": {
        "url": "https://api.example.com/commodities",
        "options": {
          "qs": {
            "symbols": "GOLD,SILVER,WTI,BRENT"
          }
        }
      },
      "name": "Fetch Commodities",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 300]
    },
    {
      "parameters": {
        "jsCode": "// 기술적 지표 계산\nconst data = $input.all();\n\nfunction calculateRSI(prices, period = 14) {\n  let gains = 0, losses = 0;\n  for (let i = 1; i <= period; i++) {\n    const change = prices[i] - prices[i - 1];\n    if (change > 0) gains += change;\n    else losses -= change;\n  }\n  const avgGain = gains / period;\n  const avgLoss = losses / period;\n  const rs = avgGain / avgLoss;\n  return 100 - (100 / (1 + rs));\n}\n\nfunction calculateMA(prices, period) {\n  const slice = prices.slice(-period);\n  return slice.reduce((a, b) => a + b, 0) / period;\n}\n\nfunction calculateMACD(prices) {\n  const ema12 = calculateEMA(prices, 12);\n  const ema26 = calculateEMA(prices, 26);\n  const macd = ema12 - ema26;\n  return { macd, signal: calculateEMA([macd], 9), histogram: macd - calculateEMA([macd], 9) };\n}\n\nconst indices = data[0].json;\nconst analysis = {\n  kospi: {\n    current: indices.KOSPI.price,\n    change: indices.KOSPI.changePercent,\n    ma5: calculateMA(indices.KOSPI.history, 5),\n    ma20: calculateMA(indices.KOSPI.history, 20),\n    rsi: calculateRSI(indices.KOSPI.history)\n  },\n  // 다른 지수들도 동일하게 처리\n};\n\nreturn [{ json: analysis }];"
      },
      "name": "Calculate Indicators",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [440, 100]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.vix }}",
              "operation": "largerEqual",
              "value2": 25
            }
          ]
        }
      },
      "name": "Check VIX Alert",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [660, 0]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "당신은 전문 시장 분석가입니다. 제공된 시장 데이터를 분석하여 간결하고 통찰력 있는 시황 보고서를 작성해주세요."
            },
            {
              "role": "user",
              "content": "다음 시장 데이터를 분석해주세요:\n\n{{ JSON.stringify($json) }}\n\n분석 내용:\n1. 오늘의 시장 요약 (3줄)\n2. 주요 지수 동향\n3. 기술적 지표 해석\n4. 내일 시장 전망\n5. 주의해야 할 리스크 요인"
            }
          ]
        }
      },
      "name": "AI Market Analysis",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1,
      "position": [880, 100]
    },
    {
      "parameters": {
        "chatId": "={{ $env.TELEGRAM_CHAT_ID }}",
        "text": "= *일간 시황 분석*\n\n{{ $json.message.content }}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "name": "Telegram Alert",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [1100, 0]
    },
    {
      "parameters": {
        "resource": "databasePage",
        "databaseId": "={{ $env.NOTION_DATABASE_ID }}",
        "properties": {
          "Date": { "date": "={{ $now.toISODate() }}" },
          "KOSPI": { "number": "={{ $json.kospi.current }}" },
          "Analysis": { "rich_text": "={{ $json.message.content }}" }
        }
      },
      "name": "Save to Notion",
      "type": "n8n-nodes-base.notion",
      "typeVersion": 2,
      "position": [1100, 200]
    }
  ],
  "connections": {
    "Daily Schedule": {
      "main": [[{ "node": "Fetch Market Indices", "type": "main", "index": 0 }]]
    },
    "Webhook Trigger": {
      "main": [[{ "node": "Fetch Market Indices", "type": "main", "index": 0 }]]
    },
    "Fetch Market Indices": {
      "main": [[{ "node": "Calculate Indicators", "type": "main", "index": 0 }]]
    },
    "Calculate Indicators": {
      "main": [
        [
          { "node": "Check VIX Alert", "type": "main", "index": 0 },
          { "node": "AI Market Analysis", "type": "main", "index": 0 }
        ]
      ]
    },
    "AI Market Analysis": {
      "main": [
        [
          { "node": "Telegram Alert", "type": "main", "index": 0 },
          { "node": "Save to Notion", "type": "main", "index": 0 }
        ]
      ]
    }
  }
}

예제 3  |  코인시장 지수 및 지표 분석

이 워크플로우는 암호화폐 시장의 주요 지수와 지표를 모니터링하고, 시장 심리를 분석하여 트레이딩 인사이트를 제공합니다.

 

워크플로우 생성 프롬프트:

다음 요구사항에 맞는 n8n 워크플로우를 JSON 형식으로 생성해주세요:

1. 워크플로우 이름: "암호화폐 시장 분석 자동화 시스템"

2. 트리거:
   - Schedule Trigger: 4시간마다 정기 분석 (24/7 시장)
   - Webhook Trigger: 급등/급락 시 긴급 분석
   - MCP Server Trigger: AI 에이전트에서 직접 호출 가능

3. 데이터 수집:
   - 주요 코인: BTC, ETH, SOL, XRP, BNB, ADA 가격 및 거래량
   - 시장 지표:
     * 총 시가총액 (Total Market Cap)
     * BTC 도미넌스
     * Fear & Greed Index (공포탐욕지수)
     * Stablecoin 시가총액 (USDT, USDC)
     * DeFi TVL (Total Value Locked)
   - 온체인 데이터:
     * 거래소 BTC 순유입/유출
     * 고래 지갑 움직임
     * 활성 주소 수
     * 해시레이트 (BTC)

4. 기술적 분석:
   - 각 코인별 RSI, MACD, 볼린저 밴드
   - 주요 지지/저항 레벨 도출
   - 패턴 인식 (더블탑/바텀, 헤드앤숄더 등)
   - 거래량 프로파일 분석

5. 시장 심리 분석:
   - 소셜 미디어 감성 분석 (Twitter/X, Reddit)
   - 롱/숏 비율 (Binance Futures)
   - 펀딩비율 추이
   - 청산 데이터

6. 알림 조건:
   - Fear & Greed Index 극단값 (10 이하 또는 90 이상)
   - BTC 가격 5% 이상 급변동
   - 대규모 청산 이벤트 ($100M 이상)
   - 고래 대량 이동 감지

7. AI 분석 및 리포트:
   - 현재 시장 사이클 단계 판단
   - 단기/중기 가격 전망
   - 리스크 요인 분석
   - 주목할 알트코인 추천

8. 배포:
   - Discord 채널로 분석 리포트 전송
   - Twitter/X 자동 게시 (요약본)
   - Airtable에 데이터 아카이빙

 

생성된 워크플로우 JSON:

{
  "name": "암호화폐 시장 분석 자동화 시스템",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 4
            }
          ]
        }
      },
      "name": "4-Hour Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [0, 0]
    },
    {
      "parameters": {
        "authentication": "bearerAuth",
        "mcpUrlPath": "/mcp/crypto-analysis"
      },
      "name": "MCP Server Trigger",
      "type": "n8n-nodes-langchain.mcpTrigger",
      "typeVersion": 1,
      "position": [0, 200]
    },
    {
      "parameters": {
        "url": "https://api.coingecko.com/api/v3/coins/markets",
        "options": {
          "qs": {
            "vs_currency": "usd",
            "ids": "bitcoin,ethereum,solana,ripple,binancecoin,cardano",
            "order": "market_cap_desc",
            "sparkline": true,
            "price_change_percentage": "1h,24h,7d"
          }
        }
      },
      "name": "Fetch Coin Prices",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 0]
    },
    {
      "parameters": {
        "url": "https://api.alternative.me/fng/"
      },
      "name": "Fetch Fear & Greed",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 150]
    },
    {
      "parameters": {
        "url": "https://api.coingecko.com/api/v3/global"
      },
      "name": "Fetch Global Data",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 300]
    },
    {
      "parameters": {
        "url": "https://api.glassnode.com/v1/metrics/transactions/transfers_volume_exchanges_net",
        "authentication": "headerAuth",
        "options": {
          "qs": {
            "a": "BTC",
            "i": "24h"
          }
        }
      },
      "name": "Fetch On-Chain Data",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [220, 450]
    },
    {
      "parameters": {
        "jsCode": "const coins = $('Fetch Coin Prices').first().json;\nconst fng = $('Fetch Fear & Greed').first().json;\nconst global = $('Fetch Global Data').first().json;\nconst onchain = $('Fetch On-Chain Data').first().json;\n\n// 기술적 지표 계산\nfunction calculateIndicators(sparkline) {\n  const prices = sparkline.price;\n  const rsi = calculateRSI(prices);\n  const macd = calculateMACD(prices);\n  const bb = calculateBollingerBands(prices);\n  return { rsi, macd, bb };\n}\n\nconst analysis = {\n  timestamp: new Date().toISOString(),\n  fearGreedIndex: fng.data[0].value,\n  fearGreedClassification: fng.data[0].value_classification,\n  totalMarketCap: global.data.total_market_cap.usd,\n  btcDominance: global.data.market_cap_percentage.btc,\n  coins: coins.map(coin => ({\n    symbol: coin.symbol.toUpperCase(),\n    price: coin.current_price,\n    change24h: coin.price_change_percentage_24h,\n    change7d: coin.price_change_percentage_7d_in_currency,\n    volume24h: coin.total_volume,\n    indicators: calculateIndicators(coin.sparkline_in_7d)\n  })),\n  exchangeNetFlow: onchain.value,\n  alerts: []\n};\n\n// 알림 조건 체크\nif (analysis.fearGreedIndex <= 10) {\n  analysis.alerts.push({ type: 'EXTREME_FEAR', message: '극단적 공포 구간 진입' });\n}\nif (analysis.fearGreedIndex >= 90) {\n  analysis.alerts.push({ type: 'EXTREME_GREED', message: '극단적 탐욕 구간 진입' });\n}\n\nconst btc = analysis.coins.find(c => c.symbol === 'BTC');\nif (Math.abs(btc.change24h) >= 5) {\n  analysis.alerts.push({ \n    type: 'BTC_VOLATILITY', \n    message: `BTC 24시간 ${btc.change24h > 0 ? '상승' : '하락'} ${Math.abs(btc.change24h).toFixed(2)}%` \n  });\n}\n\nreturn [{ json: analysis }];"
      },
      "name": "Process & Analyze",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [440, 150]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "당신은 암호화폐 시장 전문 애널리스트입니다. 제공된 데이터를 바탕으로 통찰력 있는 시장 분석을 한국어로 제공해주세요. 과도한 낙관이나 비관 없이 객관적으로 분석해주세요."
            },
            {
              "role": "user",
              "content": "다음 암호화폐 시장 데이터를 분석해주세요:\n\n{{ JSON.stringify($json) }}\n\n분석 형식:\n\n📊 **시장 개요**\n- 현재 시장 심리 (Fear & Greed 기반)\n- 전체 시가총액 및 BTC 도미넌스 해석\n\n🔍 **주요 코인 분석**\n- BTC, ETH 각각 기술적 분석\n- 주목할 알트코인\n\n⚠️ **리스크 요인**\n- 현재 시장의 위험 요소\n- 주의해야 할 신호\n\n📈 **전망**\n- 단기(24h) 전망\n- 중기(1주) 전망\n\n💡 **액션 아이템**\n- 현 시점에서 고려할 전략"
            }
          ]
        }
      },
      "name": "AI Crypto Analysis",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1,
      "position": [660, 150]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.alerts.length }}",
              "operation": "larger",
              "value2": 0
            }
          ]
        }
      },
      "name": "Check Alerts",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [880, 0]
    },
    {
      "parameters": {
        "webhookUri": "={{ $env.DISCORD_WEBHOOK_URL }}",
        "content": "= **암호화폐 시장 알림**\n\n{{ $json.alerts.map(a => '• ' + a.message).join('\\n') }}"
      },
      "name": "Discord Alert",
      "type": "n8n-nodes-base.discord",
      "typeVersion": 1,
      "position": [1100, -50]
    },
    {
      "parameters": {
        "webhookUri": "={{ $env.DISCORD_WEBHOOK_URL }}",
        "content": "= **4시간 암호화폐 시장 분석**\n_{{ $now.format('yyyy-MM-dd HH:mm') }} KST_\n\n{{ $json.message.content }}"
      },
      "name": "Discord Report",
      "type": "n8n-nodes-base.discord",
      "typeVersion": 1,
      "position": [1100, 150]
    },
    {
      "parameters": {
        "baseId": "={{ $env.AIRTABLE_BASE_ID }}",
        "tableId": "CryptoAnalysis",
        "fields": {
          "Timestamp": "={{ $json.timestamp }}",
          "FearGreedIndex": "={{ $json.fearGreedIndex }}",
          "BTCPrice": "={{ $json.coins[0].price }}",
          "BTCChange24h": "={{ $json.coins[0].change24h }}",
          "MarketCap": "={{ $json.totalMarketCap }}",
          "Analysis": "={{ $json.message.content }}"
        }
      },
      "name": "Save to Airtable",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [1100, 300]
    }
  ],
  "connections": {
    "4-Hour Schedule": {
      "main": [
        [
          { "node": "Fetch Coin Prices", "type": "main", "index": 0 },
          { "node": "Fetch Fear & Greed", "type": "main", "index": 0 },
          { "node": "Fetch Global Data", "type": "main", "index": 0 },
          { "node": "Fetch On-Chain Data", "type": "main", "index": 0 }
        ]
      ]
    },
    "MCP Server Trigger": {
      "main": [
        [{ "node": "Fetch Coin Prices", "type": "main", "index": 0 }]
      ]
    },
    "Fetch Coin Prices": {
      "main": [[{ "node": "Process & Analyze", "type": "main", "index": 0 }]]
    },
    "Fetch Fear & Greed": {
      "main": [[{ "node": "Process & Analyze", "type": "main", "index": 0 }]]
    },
    "Fetch Global Data": {
      "main": [[{ "node": "Process & Analyze", "type": "main", "index": 0 }]]
    },
    "Fetch On-Chain Data": {
      "main": [[{ "node": "Process & Analyze", "type": "main", "index": 0 }]]
    },
    "Process & Analyze": {
      "main": [
        [
          { "node": "Check Alerts", "type": "main", "index": 0 },
          { "node": "AI Crypto Analysis", "type": "main", "index": 0 }
        ]
      ]
    },
    "Check Alerts": {
      "main": [
        [{ "node": "Discord Alert", "type": "main", "index": 0 }],
        []
      ]
    },
    "AI Crypto Analysis": {
      "main": [
        [
          { "node": "Discord Report", "type": "main", "index": 0 },
          { "node": "Save to Airtable", "type": "main", "index": 0 }
        ]
      ]
    }
  }
}

7. n8n+MCP 워크플로우 자동화의  향후 전망

n8n + MCP 통합의 핵심 가치

n8n 2.0과 MCP의 통합은 워크플로우 자동화의 새로운 장을 열었습니다.

이 조합이 제공하는 핵심 가치는 접근성, 확장성, 그리고 지능화입니다. 더 이상 복잡한 코드를 작성하거나 개별 API를 일일이 연동할 필요 없이, AI 에이전트에게 자연어로 명령하면 n8n이 실제 비즈니스 시스템과 상호작용합니다. Claude Desktop에서 "다음 주 화요일 오후 3시에 팀 미팅을 잡아줘"라고 말하면, MCP를 통해 n8n 워크플로우가 Google Calendar API를 호출하고, Slack에 알림을 보내고, 회의 아젠다 문서를 생성하는 일련의 과정이 자동으로 수행됩니다.

 

기업 환경에서 이 기술의 가치는 더욱 빛납니다. IT 부서는 표준화된 MCP 프로토콜을 통해 사내 시스템들을 AI 에이전트에 안전하게 노출할 수 있고, 비개발자 직원들도 AI 어시스턴트를 통해 복잡한 업무 프로세스를 자동화할 수 있습니다. 보안 측면에서도 n8n의 자체 호스팅 옵션과 MCP의 표준화된 인증 메커니즘이 엔터프라이즈급 보안 요구사항을 충족합니다.

향후 발전 방향

MCP 생태계와 n8n의 AI 기능은 빠르게 진화하고 있습니다. 2025년 12월 Anthropic이 MCP를 Linux Foundation 산하 Agentic AI Foundation에 기증하면서, 이 프로토콜은 진정한 산업 표준으로 자리매김할 준비를 마쳤습니다. OpenAI, Google, Microsoft, Amazon 등 주요 AI 기업들이 MCP를 지원하기로 함에 따라, 앞으로 모든 AI 에이전트가 동일한 방식으로 외부 도구와 통신할 수 있게 될 것입니다.

 

n8n 측에서도 AI 통합을 지속적으로 강화하고 있습니다. AI Workflow Builder 기능이 추가되어 자연어로 워크플로우를 생성할 수 있게 되었고, MCP Client 노드가 독립적으로 사용 가능해져 더 유연한 워크플로우 설계가 가능해졌습니다. 향후에는 동적 도구 발견(Dynamic Tool Discovery), 내장 암호화 및 감사 로깅, 더욱 정교한 AI 에이전트 오케스트레이션 기능들이 추가될 것으로 예상됩니다.

시작하기 위한 권장 사항

n8n과 MCP를 처음 시작하는 분들께 몇 가지 권장 사항을 드립니다.

  • 첫째, 간단한 것부터 시작하세요. Brave Search MCP 서버와 n8n을 연결하여 웹 검색 자동화부터 시도해보는 것이 좋습니다. 복잡한 워크플로우는 기본을 익힌 후 점진적으로 구축하세요.
  • 둘째, n8n-mcp 프로젝트를 활용하세요. Claude Desktop에 n8n-mcp를 설치하면 AI가 n8n 노드에 대한 완전한 지식을 갖추게 되어, 워크플로우 구축이 훨씬 수월해집니다.
  • 셋째, 보안을 우선시하세요. MCP 서버에는 반드시 Bearer 토큰이나 OAuth2 인증을 설정하고, 프로덕션 환경에서는 Instance-level MCP를 사용하여 중앙 집중식으로 접근을 관리하세요.
  • 넷째, 커뮤니티를 활용하세요. n8n Community Forum과 GitHub의 MCP 서버 저장소에는 수많은 템플릿과 예제가 공유되어 있습니다. 다른 사용자들의 경험에서 많은 것을 배울 수 있습니다.

마지막으로, n8n + MCP는 단순한 도구 통합을 넘어 AI 에이전트가 실제 세계와 상호작용하는 방식을 근본적으로 바꾸는 기술입니다. 이 기술을 마스터하면 업무 자동화의 새로운 차원을 경험하게 될 것입니다. 지금 바로 시작해보세요!

 


부록: 주요 리소스 및 참고 링크

공식 문서

GitHub 저장소

커뮤니티