【エンジニア向け】AI探偵に任せる!n8nワークフローを自然言語で自動構築する「n8n-mcp」徹底解説
「czlonkowski/n8n-mcp」は、一言で言うと「大規模言語モデル(LLM)を使って、ノーコード自動化ツールであるn8nのワークフローを自然言語で構築・管理するためのツール」です。
探偵の視点からの理解
これは、あなたが優秀な「探偵」(LLM
Claude Desktop、Cursorなど)に、捜査の段取り(n8nワークフロー)を口頭で指示するだけで、面倒な現場検証(ノードの配置や設定)を自動でやらせるための魔法の道具(MCPサーバー)です。
| ♂ 構成要素 | 役割(密室事件に例えて) |
| n8n | 事件の現場。様々なツール(ノード)があり、これを組み合わせて自動化のトリック(ワークフロー)を構築する。 |
| Claude Desktop/Cursorなど | 名探偵。あなたの指示(プロンプト)を理解し、トリックを解明(ワークフロー構築)する司令塔。 |
| czlonkowski/n8n-mcp | 探偵が現場の道具(n8nの機能)を自由に使えるようにする特別な通信プロトコルとツール群(MCPサーバー)。 |
このツールは、開発者の「面倒くさい」を劇的に減らす、強力な助っ人となります。
煩雑な初期構築からの解放
連携したいサービス(YouTube、Slack、Trelloなど)のAPI仕様をいちいち調べて、n8nでノードを配置し、設定項目を埋める作業は地味に時間がかかります。
自然言語で一発構築
「YouTubeチャンネルの新しい動画のタイトルと要約をSlackに通知するワークフローを組んで」と日本語で指示するだけで、n8n-mcpがJSON形式のワークフロー案を生成します。
結果
アイデアを思いついてから動作確認までの時間を劇的に短縮でき、プロトタイプを素早く関係者に提示できます。
n8nには数百種類のノードがあり、すべてを把握するのは大変です。
n8n-mcpは、LLMを通して「n8nのどのノードを使えばいいか」「このノードのこの設定項目は何を意味するか」といったn8nの仕様に関する質問に答えることができます。
複雑なJavaScriptのCodeノードが必要な場合でも、n8n-mcpが基本的なコードを自動生成してくれるため、コード作成の手間が省けます。
多段の条件分岐や、特定のデータを整形する複雑なロジックを考えるとき、LLMにロジックを説明し、「このn8nのワークフローで実現するには?」と尋ねることで、最適なワークフロー構造を提案してもらうことができます。
これは、まさにベテランの自動化エンジニアに相談しながら開発を進めるような感覚です。
n8n-mcpを導入し、探偵(LLM)に仕事を依頼できるようにするには、主に3つのステップが必要です。
クラウド版(n8n.cloud)でもセルフホスト版(Dockerなど)でも構いません。
n8nインスタンスの起動
n8nがアクセス可能な状態で稼働していることを確認します。
APIキーの発行
n8nの管理画面でn8n APIキーを発行し、控えておきます。
n8n-mcp自体はMCP(Model Context Protocol)サーバーとして動作します。Dockerを使用して起動するのが最も簡単です。
以下の環境変数を設定した.envファイルを作成します。
N8N_URL=http://your-n8n-instance.com # 例: n8nがローカルの8080ポートで動いていれば http://localhost:8080
N8N_API_KEY=YOUR_N8N_API_KEY # ステップ1で発行したAPIキー
N8N_USERNAME=YOUR_N8N_USERNAME # n8nのユーザー名(セルフホストの場合など)
Dockerでn8n-mcpサーバーを起動します。(リポジトリのREADMEなどを参照)
docker run -d \
--env-file .env \
-p 3000:3000 \
--name n8n-mcp-server \
czlonkowski/n8n-mcp
これで、n8n-mcpサーバーがポート3000で動いています。
名探偵(LLM)に、新しい道具(n8n-mcp)を使えるように教え込みます。
Claude Desktopなどの設定画面を開きます。
MCP設定を追加し、サーバーの情報を登録します。
サーバーURL
http://localhost:3000 (ステップ2で起動したURL)
プロトコル
Model Context Protocol (MCP)
これで、Claudeはn8nのワークフローを構築するためのツールを使えるようになります。
「はい、そこの名探偵!このワークフローのトリックを解いてみたまえ!」
LLMクライアント(Claudeなど)に、以下のプロンプトを入力します。
[n8n-mcp ツールを使用する]
タスク:
特定のTwitterアカウント(例えば@elonmusk)の最新ツイートを取得し、そのツイート内容を要約した後、その結果をSlackの #daily-summary チャンネルに通知するワークフローを構築してください。
ステップ:
1. トリガーは定期実行(1時間ごと)でお願いします。
2. Twitterノードでアカウントの最新ツイートを取得します。
3. 要約にはAIノード(またはCodeノードでのAPIコール)を使い、日本語で簡潔にまとめてください。
4. 最後にSlackノードで通知します。
このワークフローをn8nのJSON形式で出力してください。
名探偵(LLM)は、n8n-mcpのツールを使ってn8nのノードやAPIを調べ、最適なワークフローのJSONを生成します。
(生成されるJSONのイメージ - 一部抜粋)
{
"nodes": [
{
"parameters": {
"interval": "hours",
"value": 1
},
"name": "Start",
"type": "n8n-nodes-base.scheduleTrigger",
// ... (省略)
},
{
"parameters": {
"resource": "status",
"operation": "getUserTimeline",
"userName": "@elonmusk",
// ... (Twitter APIの設定)
},
"name": "Twitter",
"type": "n8n-nodes-base.twitter",
"typeVersion": 1,
"executeOnce": true,
"continueOnFail": false,
"upstreamNodes": [
{
"node": "Start"
}
]
},
{
// ... (AIノードまたはCodeノードで要約ロジックが組み込まれる)
"name": "Summarize Text",
"type": "n8n-nodes-base.ai",
// ...
},
{
"parameters": {
"channel": "#daily-summary",
// ... (Slack APIの設定とメッセージマッピング)
},
"name": "Slack",
"type": "n8n-nodes-base.slack",
// ...
}
],
"connections": {
"Start": [
{
"node": "Twitter",
"index": 0
}
],
"Twitter": [
{
"node": "Summarize Text",
"index": 0
}
],
"Summarize Text": [
{
"node": "Slack",
"index": 0
}
]
}
}
生成されたJSONをn8nの管理画面に貼り付けてインポートします。その後、TwitterやSlackなどのクレデンシャル(API認証情報)を設定すれば、ワークフローがすぐに実行可能になります。