25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

n8n + Claude Code実践編──ワークフロー構築を会話ベースにしたら爆速だった

25
Posted at

前回の記事では、Docker Composeを使ってn8nをセルフホストする手順を解説しました。記事の最後に「まずはWebhookを受け取ってSlackに通知するワークフローから始めてみるのがおすすめです」と書きましたが、実際にやってみましょう。

ただし、今回はn8nのGUIでノードをポチポチ配置するのではなく、Claude Codeに話しかけてワークフローを作ります。これを可能にするのがn8n-mcp(MCPサーバー)とn8n-skills(Claude Code用スキル集)の組み合わせです。

この記事では、セットアップから実際のワークフロー構築まで、会話ベースの開発体験を一通り紹介します。

想定読者

  • 前回記事でn8nを構築済みの人
  • Claude Codeに興味がある、または使い始めた人
  • n8nのワークフロー構築を効率化したい人

n8n-mcpとn8n-skillsとは

n8n-mcpは、Claude Codeからn8nを操作するためのMCPサーバーです。ノード検索、設定のバリデーション、ワークフローの作成・更新など30以上のツールを提供します。一部のツール(search_nodesvalidate_nodeなど)はn8nのAPIキーがなくても動作するため、ノード仕様の調査だけでも使えます。

GitHub: https://github.com/czlonkowski/n8n-mcp

n8n-skillsは、Claude Code用の7つのスキルをまとめたものです。スキルはクエリの内容に基づいて自動的に発動し、n8nの構文・パターン・設定・バリデーションに関する知識をClaude Codeに提供します。ユーザーが「Webhookのワークフロー作って」と言えば、裏でWorkflow Patternsスキルが発動してWebhookパターンを適用する、という仕組みです。

GitHub: https://github.com/czlonkowski/n8n-skills

連携の仕組み

ユーザー
  │ 「Webhook→Slack通知のワークフロー作って」
  ▼
Claude Code
  ├── n8n-skills(自動発動)
  │   ├── Workflow Patterns → パターン提案
  │   ├── Expression Syntax → 式の書き方
  │   ├── Node Configuration → ノード設定
  │   └── Validation Expert → エラー修正
  └── n8n-mcp(MCP ツール呼び出し)
      ├── search_nodes → ノード検索
      ├── validate_node → 設定検証
      └── n8n_create_workflow → ワークフロー作成

スキルがドメイン知識を、MCPがn8nへの実行手段を担当します。Claude Codeはスキルから得た知識をもとにMCPツールを適切に呼び出し、ワークフローを組み立てます。

7つのスキル一覧

スキル名 役割
n8n Expression Syntax {{$json.body.message}} などの式構文
n8n MCP Tools Expert MCPツールの使い分けガイド
n8n Workflow Patterns Webhook処理、API連携など5パターン
n8n Validation Expert バリデーションエラーの解釈と修正
n8n Node Configuration ノードのプロパティ依存関係
n8n Code JavaScript Codeノードでのjs記述
n8n Code Python Codeノードでのpy記述

セットアップ

n8n側の準備──APIキーの発行

n8nの管理画面からAPIキーを発行します。

  1. n8nにログインする
  2. 左下の SettingsAPI を開く
  3. Create an API Key をクリックしてキーを生成する

生成されたAPIキーは後で使うので控えておいてください。また、n8nのURLも確認しておきます(例: https://n8n.example.com)。

n8n-mcpのインストール

プロジェクトディレクトリ(またはホームディレクトリ)の .mcp.json に以下を追加します。

{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": ["n8n-mcp"],
      "env": {
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true",
        "N8N_API_URL": "https://n8n.example.com",
        "N8N_API_KEY": "your-api-key-here"
      }
    }
  }
}

N8N_API_URLN8N_API_KEYを、自分のn8n環境の値に置き換えてください。Claude Codeを起動すると、npx n8n-mcpがMCPサーバーとして自動起動します。

N8N_API_URLN8N_API_KEYは省略可能です。省略した場合でもsearch_nodesvalidate_nodeなどのAPI不要なツールは使えます。ワークフローの作成・更新を行うには設定が必要です。

n8n-skillsのインストール

Claude Codeのプラグイン機能でインストールするのが最も簡単です。

/plugin install czlonkowski/n8n-skills

手動でインストールする場合は、リポジトリをクローンしてスキルファイルをコピーします。

git clone https://github.com/czlonkowski/n8n-skills.git
cp -r n8n-skills/skills/* ~/.claude/skills/

動作確認

Claude Codeを起動(または再起動)して、以下のように聞いてみてください。

ユーザー: n8nのWebhookノードの設定項目を教えて

n8n-mcpがsearch_nodesget_nodeで情報を取得し、Node Configurationスキルが設定項目を解説してくれれば、セットアップは完了です。

実践──Webhook→Slack通知ワークフローを会話で作る

ここからが本題です。以下のワークフローをClaude Codeとの会話だけで作ります。

作るもの: Webhookでリクエストを受信 → IFノードでmessageが空でないか判定 → Slack #generalチャンネルに投稿

Step 1: 最初のリクエスト

ユーザー:
  WebhookでJSONを受け取って、Slackの#generalチャンネルに通知する
  ワークフローを作ってほしい。messageフィールドの内容を投稿して。

Claude Code:
  Webhookノード、IFノード、Slackノードを使ったワークフローを作成します。
  まずノードの仕様を確認します。

  [search_nodes で "webhook" を検索 → nodes-base.webhook を発見]
  [search_nodes で "slack" を検索 → nodes-base.slack を発見]
  [get_node で各ノードの設定項目を取得]

この時点で、MCP Tools Expertスキルが発動してツールの使い分けをガイドし、Workflow Patternsスキルが「Webhook処理パターン」を適用しています。Claude Codeはノードの仕様を把握した上で、次のステップに進みます。

Step 2: ワークフロー生成

Claude Code:
  ノードの仕様を確認しました。ワークフローを作成します。

  [n8n_create_workflow でワークフローを作成]

  ワークフロー「Webhook to Slack Notification」を作成しました。
  構成:
    1. Webhook(POST /webhook/slack-notify)
    2. IF(messageが空でないか判定)
    3. Slack(#general に投稿)

  n8nのUIで確認できます。

n8n_create_workflowが呼ばれると、n8nのUI上にワークフローが出現します。ノードの配置、接続、基本パラメータの設定がすべて完了した状態です。

Step 3: バリデーションと自動修正

Claude Code:
  作成したワークフローを検証します。

  [validate_workflow でバリデーション実行]

  2件の警告が見つかりました:
  - Slackノード: credentialが未設定
  - IFノード: 条件式の形式を修正

  Slackのcredentialはn8n側で事前に設定が必要です。
  IFノードの条件式を修正します。

  [n8n_update_partial_workflow で修正を適用]
  [validate_workflow で再検証 → 残り1件(credential)]

Validation Expertスキルがエラーメッセージを解釈し、自動修正可能なものはその場で直します。credential(認証情報)の設定はn8nのUI側で行う必要があるため、その旨が案内されます。

この「検証→修正→再検証」のループは、通常2〜3回で収束します。

Step 4: 条件分岐の追加

ユーザー:
  messageが空文字やnullの場合はSlackに投稿せずスキップして。

Claude Code:
  IFノードの条件を調整します。

  [n8n_update_partial_workflow でIFノードの条件を更新]

  IFノードの条件を以下に設定しました:
  - {{$json.body.message}} が空でない場合 → trueブランチ(Slackに投稿)
  - それ以外 → falseブランチ(何もしない)

Expression Syntaxスキルにより、{{$json.body.message}}という正しいWebhookデータアクセス構文が適用されます。よくある間違いとして{{$json.message}}と書いてしまうケースがありますが、Webhookのデータは$json.bodyの下にあるため、スキルがこれを防いでくれます。

Step 5: テスト実行

Slackのcredentialをn8nのUIで設定したら、ワークフローをActivateして、curlでテストします。

curl -X POST https://n8n.example.com/webhook/slack-notify \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello from Claude Code!"}'

Slackの#generalチャンネルに「Hello from Claude Code!」と投稿されれば成功です。空メッセージも試してみましょう。

curl -X POST https://n8n.example.com/webhook/slack-notify \
  -H "Content-Type: application/json" \
  -d '{"message": ""}'

こちらはIFノードのfalseブランチに流れ、Slackには何も投稿されません。

ここまでの全工程で、Claude Codeとのやりとりは5〜6回程度です。GUIで同じことをやると、ノードの配置・パラメータ設定・式の入力・テスト実行まで含めて、手慣れた人でも10〜15分はかかる作業です。

裏側で何が起きていたのか

ここまでの会話の裏で、どのスキルが発動し、どのMCPツールが呼ばれていたかを整理します。

ステップ 発動したスキル 使われたMCPツール
ノード検索 MCP Tools Expert search_nodes
Webhook設定 Workflow Patterns get_node
式の記述 Expression Syntax
Slack設定 Node Configuration validate_node
エラー修正 Validation Expert n8n_update_partial_workflow

ポイントは、スキルの発動をユーザーが意識する必要がないことです。「ワークフロー作って」と言えば、裏でWorkflow PatternsやMCP Tools Expertが勝手に動きます。スキルはClaude Codeに対するドメイン知識の注入であり、ユーザーへの操作要求は増えません。

n8n_update_partial_workflowは17種類の操作に対応しています。ノードの追加・削除、接続の変更、パラメータの更新など、ワークフローの部分的な修正を1回のツール呼び出しで行えます。

知っておくと助かること

実際に使い始める前に、いくつか把握しておくと良い点があります。

Credentialは事前にn8n側で設定する。 Slack、Google、GitHubなどのサービス連携に必要な認証情報は、n8nのUI(Settings → Credentials)で設定しておく必要があります。Claude Codeからcredentialを作成することはできません。

APIキーにはワークフロー操作の権限が必要。 n8nのAPIキーには権限のスコープがあります。ワークフローの作成・更新を行うなら、それに対応する権限を付与してください。

本番ワークフローは直接編集しない。 Claude Codeでワークフローを更新する際は、既存のワークフローをコピーしてからテストするのが安全です。

API未接続でもノード調査は可能。 search_nodesvalidate_nodeはn8nのAPIに接続しなくても動作します。「このノードにはどんなパラメータがあるか」を調べるだけなら、APIキーの設定は不要です。

Webhookデータは $json.body の下にある。 n8nのWebhookノードが受け取ったデータは$json直下ではなく$json.bodyの下にマッピングされます。{{$json.body.message}}のようにアクセスしてください。Expression Syntaxスキルがこの点を自動的に補正してくれますが、知識として持っておくとデバッグが楽になります。

n8n-mcpのワークフロー更新ツールは成功率99.0%ですが、まれに失敗することがあります。ワークフローのバックアップは定期的に取っておくことを推奨します。

まとめ

n8n-mcpとn8n-skillsを組み合わせることで、Claude Codeからn8nのワークフローを会話ベースで構築できます。MCPがn8nへの操作手段を提供し、スキルがn8n固有のドメイン知識を補う。この2つの組み合わせにより、ノードの検索から設定、バリデーション、修正までを自然言語のやりとりだけで進められます。

今回はWebhook→Slackの単純な例でしたが、n8n-skillsは以下の5つのパターンをカバーしています。

  • Webhook処理
  • HTTP API連携
  • データベース操作
  • AIエージェント連携
  • スケジュール実行

前回の構築編と合わせて、n8nのセットアップからワークフロー構築まで、CLI/AIベースで完結できる環境が整いました。

参考リンク

25
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?