mcpField
N
n8n-connections

n8n-connections

github.com/n8n-io開発558113 回インストール2 週間前に更新
リポジトリ

n8n-connections について

n8n-connectionsは、n8nワークフロー構築向けの配線ガイドです。SDKの接続パターンと、ワイヤーが気づかれずに欠落する構文上の落とし穴を説明し、作成・更新後の確認方法も示します。

主な機能

  1. 01直線および複数分岐の配線構文
  2. 02IF、Switch、エラー分岐への対応
  3. 03ファンイン、ファンアウト、Merge入力の処理
  4. 04作成・更新後の接続確認
  5. 05状況別のリファレンスガイド

活用シーン

  1. 01IFやSwitchの出力先を配線
  2. 02複数ノードをMergeに集約
  3. 03エラーハンドリング分岐の設定
  4. 04公開前に配線漏れを確認

MCP 対応

このスキルは、n8n MCPツールでワークフローを作成・更新した後、get_workflow_detailsでconnectionsオブジェクトを確認する方法を説明します。また、validate_workflowでは一部の配線漏れを検出できない点も示します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/n8n-io/skills --skill n8n-connections

インストール後、Claude Code で/n8n-connectionsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ERROR_OUTPUTS.md
FAN_OUT_FAN_IN.md
MERGE_INDEX_RULES.md
VERIFICATION.md

詳細

n8n の接続

n8n の SDK には、シンプルな接続構文があります。そのうち 2 つの形式では、検証を通過するものの、ワークフローがひそかに壊れてしまいます。このスキルでは主に、そうした落とし穴を避ける方法を説明します。

絶対に守ること:.to() の落とし穴

.to() は .add() の中に記述し、後ろに続けてはいけません。

.add(node.output(0)).to(target)      // ❌ connection silently dropped
.add(node.output(0).to(target))      // ✅

validate_workflow ではこれを検出できません。ワークフローは検証に通り、公開され、実行されますが、ワイヤーは接続されません。このバグは、ノードの設定ミスや「起動しない」ノードとまったく同じように見えます。

.add(...).to(...) を括弧の外に記述した場合、バグです。例外はありません。

汎用的な接続パターン

次の形式で、IF/Switch の分岐、エラー出力、マージ入力、汎用的な複数 I/O をすべて扱えます。

.add(source.output(n).to(target))
  • source.output(n):出力を選択します(0 始まり)
  • .to(target):接続先を選択します(デフォルトの入力は 0)
  • .to(target.input(m)):接続先の特定の入力を選択します(0 始まり)

ワイヤーごとに .add() を 1 回呼び出します。ファンアウトするには、.add() を繰り返します。

判断フロー

Wiring a connection?
├── Linear (one source → one target, single output, single input)?
│   └── .add(source).to(target). The simple case; .to() outside is fine here
│       because there's no .output(n) selector inside .add()
│
├── Selector involved (.output(n) or composite handlers)?
│   └── .to() MUST go inside .add(). See "the trap" above
│
├── Targeting a specific input slot on a multi-input node (Merge)?
│   └── .add(source.output(n).to(target.input(m)))
│       AND check useDataOfInput. See references/MERGE_INDEX_RULES.md
│
├── Error branch?
│   └── .add(node.output(1).to(handler))
│       AND set onError: 'continueErrorOutput' on the node config.
│       See references/ERROR_OUTPUTS.md
│
└── Fan-out (one source → many targets) or fan-in (many sources → one target)?
    └── See references/FAN_OUT_FAN_IN.md

複合ハンドラー(.onTrue、.onFalse、.onCase、.onError)

SDK には、IF、Switch、およびエラー出力を持つすべてのノードで使える便利なハンドラーが用意されています。

.add(ifNode.onTrue(targetA))     // same as .add(ifNode.output(0).to(targetA))
.add(ifNode.onFalse(targetB))    // same as .add(ifNode.output(1).to(targetB))
.add(sw.onCase(2, target))       // same as .add(sw.output(2).to(target))
.add(node.onError(handler))      // same as .add(node.output(1).to(handler))

これらは .output(n) の呼び出しと競合せずに組み合わせられます。

.add(ifNode.onTrue(targetA))
.add(ifNode.output(0).to(targetB))
// Result: BOTH targetA and targetB on IF's main[0]. Composite + .output(n) merge.

避けるべき形式は、上記の .add(selector).to(target) の落とし穴だけです。複合ハンドラーを先に実行したかどうかにかかわらず、これは常に誤りです。

作成または更新のたびに検証する

ワイヤーが欠けていても、validate_workflow は有効と報告します。create_workflow_from_code または update_workflow の後に get_workflow_details で取得し、connections オブジェクトを確認してください。

  • 各 main[i] に、想定される接続先の集合が含まれている(ファンアウトが維持され、集約されていない)。
  • マージ入力が正しいインデックスに接続され、useDataOfInput が配線と一致している。
  • エラー出力を持つノードに onError: 'continueErrorOutput' が設定され、かつ main[1] がハンドラーに接続されている。

いずれかの確認に失敗した場合、検証に通っていてもワークフローは壊れています。修正して再度更新してください。

作成後のチェックリスト全体については、references/VERIFICATION.md を参照してください。

リファレンスファイル

状況に合ったファイルを読んでください。すべて読む必要はありません。

ファイル読むタイミング
references/FAN_OUT_FAN_IN.md1 つのソースから複数の接続先へ接続する場合、または複数のソースから 1 つの接続先へ接続する場合
references/MERGE_INDEX_RULES.mdMerge ノードを接続する場合、またはノード設定に useDataOfInput がある場合
references/ERROR_OUTPUTS.md個々のノードにエラー処理を追加する場合(エラーワークフローの場合は n8n-error-handling を参照)
references/VERIFICATION.md複雑な接続を含むワークフローを作成または更新した直後

アンチパターン

アンチパターン問題修正方法
.add(node.output(0)).to(target)ワイヤーがひそかに破棄され、検証には通る.to() を .add() の中に移動する
useDataOfInput: "2" と .input(2) の併用インデックスが 1 つずれ、ワイヤーが誤った入力に接続されるuseDataOfInput: "N" の場合は .input(N - 1) を使う。MERGE_INDEX_RULES.md を参照
onError: 'continueErrorOutput' を設定せずにエラー分岐を接続する分岐に到達できず、エラー発生時にノードがワークフロー全体を失敗させるノード設定に onError: 'continueErrorOutput' を設定する
作成後に get_workflow_details を省略する壊れたワークフローが気付かれないまま公開される作成または更新の後は必ず取得して確認する
1 つの接続を配線する前に 4 つすべてのリファレンスファイルを読むコンテキストを無駄に消費する状況に合ったファイルだけを読む

コメント