OpenSource-Hub

n8n-mcp

애플리케이션

czlonkowski/n8n-mcp

AI 어시스턴트가 n8n 워크플로우를 빌드할 수 있게 하는 MCP 서버.

개요

n8n-MCP는 n8n 워크플로 자동화 플랫폼과 AI 모델을 연결하는 모델 컨텍스트 프로토콜 서버로, 1650개 이상의 n8n 노드, 템플릿 및 문서에 대한 포괄적인 액세스를 제공합니다. 이를 통해 Claude와 같은 AI 어시스턴트가 n8n 워크플로를 효율적으로 이해하고 생성할 수 있습니다.

README 미리보기

# n8n-MCP\n\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/czlonkowski/n8n-mcp)\n[](https://www.npmjs.com/package/n8n-mcp)\n[](https://codecov.io/gh/czlonkowski/n8n-mcp)\n[](https://github.com/czlonkowski/n8n-mcp/actions)\n[](https://github.com/n8n-io/n8n)\n[](https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp)\n[](https://railway.com/deploy/n8n-mcp?referralCode=n8n-mcp)\n\nA Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 1,650 workflow automation nodes (820 core + 830 community).\n\n## Overview\n\nn8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:\n\n- **1,650 n8n nodes** - 820 core nodes + 830 community nodes (741 verified)\n- **Node properties** - 99% coverage with detailed schemas\n- **Node operations** - 63.6% coverage of available actions\n- **Documentation** - 87% coverage from official n8n docs (including AI nodes)\n- **AI tools** - 265 AI-capable tool variants detected with full documentation\n- **Real-world examples** - 156 ranked configurations extracted from popular templates\n- **Template library** - 2,352 workflow templates with 99.96% AI metadata coverage\n- **Community nodes** - Search verified community integrations with `source` filter\n\n## Support This Project\n\n\n  \n    \n  \n\n\n**n8n-mcp** started as a personal tool but now helps tens of thousands of developers automate their workflows efficiently. Maintaining and developing this project competes with my paid work. Your sponsorship helps me dedicate focused time to new features, respond quickly to issues, keep documentation up-to-date, and ensure compatibility with latest n8n releases. **[Become a sponsor](https://github.com/sponsors/czlonkowski)**\n\n## 

FAQ (5)

문제 해결
n8n MCP Apps 결과 카드를 비활성화하고 'Couldn't open n8n-mcp' 위젯 오류를 해결하려면 어떻게 해야 하나요?

n8n MCP 2.92.0 이상으로 업그레이드하세요. 전체 서버의 UI 카드를 비활성화하려면 프로세스를 시작하기 전에 N8N_MCP_DISABLE_UI_APPS=true를 설정하세요. 정확한 값 true만 허용됩니다. 이 설정은 stdio 및 HTTP 배포 모두에 적용되며 요청별 uiAppsEnabled: true 설정을 재정의합니다. 요청별 제어를 위해서는 InstanceContext.uiAppsEnabled를 false로 설정하세요. 그러면 서버는 _meta.ui, _meta['ui/resourceUri'], _meta['n8n-mcp/toolName'], ui://n8n-mcp/* 리소스의 제공을 중단하며, 모든 도구와 텍스트 결과는 계속 사용할 수 있습니다. ui:// URI에 대한 기존 resources/read 요청은 계속 성공하므로 캐시된 클라이언트가 추가 오류 카드를 생성하지 않습니다. 클라이언트가 이전 도구-카드 매핑을 캐시한 경우 새 ChatGPT/MCP 세션을 시작하세요.

원본 Issue #1152
문제 해결
n8n-mcp에서 validate_node가 pythonNative Python Code 노드에 대해 "Code cannot be empty"를 반환하는 문제를 어떻게 해결할 수 있나요?

validator는 language === 'python'만 검사하지만, n8n 2.x에서는 pythonNative를 사용하므로 pythonCode 대신 jsCode 필드를 잘못 읽습니다. language를 정규화하여 validateCode에서 src/services/config-validator.ts를 수정하세요:

const language = config.language === 'pythonNative' ? 'python' : config.language;
const codeField = language === 'python' ? 'pythonCode' : 'jsCode';

또는 다음을 사용하세요:

const codeField = ['python', 'pythonNative'].includes(config.language)
  ? 'pythonCode'
  : 'jsCode';

임시 해결 방법으로, validate_node를 호출하기 전에 pythonNative를 python으로 정규화하세요. 비어 있지 않은 pythonCode와 함께 language: "pythonNative"를 사용하는 validate_node 회귀 테스트를 추가하세요.

원본 Issue #1112
문제 해결
노드가 성공했는데도 $jmespath()가 n8n 표현식에서 null을 반환하는 이유는 무엇인가요?

n8n은 {{ }} 표현식 내부에서 발생하는 JMESPath 구문 분석 오류를 의도적으로 무시하므로, 잘못된 쿼리가 null로 해석되어도 노드는 여전히 성공으로 보고됩니다. Filter/IF 노드에서는 이 null 때문에 모든 아이템이 조건을 통과하지 못합니다.

JMESPath 구문을 수정하세요:

- 숫자 리터럴은 백틱으로 감싸세요:
{{ $jmespath($json, "customers[?revenue > 100000].name") }}
- 문자열 리터럴에는 작은따옴표를 사용하세요. 큰따옴표는 필드 식별자로 처리됩니다:
{{ $jmespath($json, "customers[?country=='PL'].name") }}
- and/or가 아닌 JMESPath 논리 연산자 &&와 ||를 사용하세요:
{{ $jmespath($json, "customers[?country=='PL' && active].name") }}
- 단일 =이 아닌 ==를 사용하세요.
- 인수 순서는 객체가 먼저, 쿼리가 두 번째로 유지하세요:
$jmespath($json, "customers[].name")

이전에는 JMESPath 유효성 검사가 Code 노드 내부에서만 실행되었습니다. n8n-mcp의 validate_workflow를 사용하는 경우 v2.87.0 이상으로 업그레이드하세요. 해당 버전은 표현식 내부의 $jmespath() 호출을 정적으로 검사하여 런타임 전에 이러한 오류를 보고합니다.

원본 Issue #1114
문제 해결
왜 n8n Python Code 노드가 _input 또는 _json에 대해 NameError로 실패하고 json/datetime 임포트를 차단하나요?

n8n 2.x는 제거된 Pyodide "Python (Beta)" 런타임이 아닌 네이티브 Python 런타임(language: "pythonNative")을 사용합니다. Code 노드 스크립트를 다음과 같이 업데이트하세요:

1. All Items 모드에서는 _input.all()을 _items로 교체하세요:

return [{"json": item} for item in _items]

2. Each Item 모드에서는 _json 대신 _item을 사용하세요:
return {"json": _item}

3. 데이터에는 딕셔너리 구문으로만 접근하세요. _input, _json, _node, _now, _today, _jmespath는 사용할 수 없습니다.
4. self-hosted task runner가 명시적으로 allowlist에 추가한 경우가 아니라면 import json, import datetime 또는 기타 stdlib import를 사용하지 마세요. n8n Cloud는 기본적으로 어떤 import도 허용하지 않습니다.
5. class, type(), getattr(), hasattr(), dunder 접근, global은 피하고, 필요한 경우 nonlocal을 사용하세요.
6. 반환 값은 모드와 일치해야 합니다. All Items는 {"json": ...} 객체의 리스트, 일반 dict의 리스트, 또는 단일 dict를 허용하고, Each Item은 단일 dict를 허용합니다. None을 반환하면 해당 아이템이 제거되며, 리스트를 반환하면 오류가 발생합니다.

self-hosted Docker에서 Python runner unavailable: Python 3 is missing from this system 오류가 보고되면 n8nio/runners sidecar를 배포하세요. 그렇지 않으면 Python Code 노드를 실행할 수 없습니다.

원본 Issue #1116
문제 해결
게시된 워크플로우를 업데이트할 때 발생하는 n8n 403 "insufficient_api_key_scope" 또는 "insufficient_permissions" 오류 해결 방법

n8n 2.39+에서 PUT /workflows/{id}는 변경 사항을 초안으로 저장하지만, 호출자가 게시할 수 없는 경우 403을 반환합니다. 게시된 워크플로는 계속 라이브 상태로 유지됩니다. API 키에 workflow:activate 스코프를 부여하고 사용자에게 해당 워크플로에 대한 workflow:publish 권한이 있는지 확인한 후 업데이트를 다시 시도하세요. n8n-mcp를 사용하는 경우 v2.87.0 이상으로 업그레이드하세요. 이러한 응답은 이전의 오해를 유발하는 부분 업데이트 메시지 대신 PUBLISH_FORBIDDEN으로 보고됩니다. n8n_update_full_workflow에서는 초안이 유지되고, n8n_update_partial_workflow에서는 초안이 롤백됩니다. 동일한 제한된 자격 증명으로 재시도하면 또 다른 초안이 생성되며 게시되지 않습니다.

원본 Issue #1118