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 で pythonNative Python Code ノードに対して validate_node が "Code cannot be empty" を返す問題を修正するにはどうすればよいですか?

バリデーターは 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
トラブル対応
ノードが成功していても、なぜ n8n の式で $jmespath() が 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. セルフホストのタスクランナーが明示的に許可リストに登録していない限り、import json、import datetime などの stdlib インポートは使用しないでください。n8n Cloud ではデフォルトで一切のインポートが許可されていません。
5. class、type()、getattr()、hasattr()、dunder アクセス、global は避けてください。必要な場合は nonlocal を使用してください。
6. 戻り値はモードに一致させる必要があります。All Items モードでは {"json": ...} オブジェクトのリスト、プレーンな dict のリスト、または単一の dict を受け付けます。Each Item モードでは単一の dict を受け付けます。None を返すとそのアイテムは破棄され、リストを返すとエラーになります。

セルフホストの Docker で Python runner unavailable: Python 3 is missing from this system と表示される場合は、n8nio/runners サイドカーをデプロイしてください。そうしないと 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