n8n について
JSON構造とREST APIを使ってn8nワークフローを作成・管理するスキルです。一般的なワークフローパターン、式、ノードタイプ、MCP公開を扱います。
主な機能
- 01ワークフロー定義の作成と更新
- 02REST APIによるワークフロー管理
- 03Webhook、分岐、バッチ処理パターン
- 04式とノードタイプの利用
- 05ワークフローをMCPツールとして公開
活用シーン
- 01Webhook起点の自動化の構築
- 02ワークフローデータの分岐やバッチ処理
- 03ワークフローとMCPクライアントの接続
MCP 対応
n8nは、`availableInMCP`を有効にしたワークフローを、組み込みのMCPサーバーエンドポイントからMCPツールとして公開できます。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill n8nインストール後、Claude Code で/n8nを入力して読み込まれたか確認します。
同梱ファイルassets/example-asset.txtreferences/api-reference.md
詳細
n8n ワークフロー自動化スキル
このスキルを使うと、自動化タスク向けの n8n ワークフローを作成、管理できます。
前提条件
API アクセスが可能な n8n インスタンスが稼働していること:
N8N_HOST=localhost
N8N_PORT=5678
N8N_API_KEY=your-api-key
基本概念
ワークフローの構造
n8n のワークフローはすべて、次の構造を持つ JSON です。
{
"name": "Workflow Name",
"nodes": [],
"connections": {},
"settings": {
"executionOrder": "v1"
}
}
ノードの構造
各ノードには次の情報があります。
{
"id": "unique-id",
"name": "Display Name",
"type": "n8n-nodes-base.nodetype",
"typeVersion": 1,
"position": [x, y],
"parameters": {},
"credentials": {}
}
接続の構造
接続は、ノード間のデータフローを定義します。
{
"Source Node": {
"main": [
[{"node": "Target Node", "type": "main", "index": 0}]
]
}
}
よく使われるワークフローパターン
1. Webhook でトリガーされるワークフロー
ワークフローの実行をトリガーする HTTP エンドポイントを作成します。
{
"name": "Webhook Handler",
"nodes": [
{
"id": "webhook",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [250, 300],
"webhookId": "my-webhook",
"parameters": {
"path": "my-endpoint",
"httpMethod": "POST",
"responseMode": "responseNode"
}
},
{
"id": "respond",
"name": "Respond",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [450, 300],
"parameters": {
"respondWith": "json",
"responseBody": "={{ $json }}"
}
}
],
"connections": {
"Webhook": {
"main": [[{"node": "Respond", "type": "main", "index": 0}]]
}
}
}
次の URL からアクセスできます:http://localhost:5678/webhook/my-endpoint
2. HTTP リクエストパターン
外部 API を呼び出します。
{
"id": "http",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [450, 300],
"parameters": {
"method": "POST",
"url": "https://api.example.com/endpoint",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "myApiCredential",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify($json) }}"
},
"credentials": {
"myApiCredential": {"id": "cred-id", "name": "My Credential"}
}
}
3. 条件分岐(IF ノード)
条件に基づいてデータを振り分けます。
{
"id": "if",
"name": "IF",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [450, 300],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"leftValue": "={{ $json.status }}",
"rightValue": "success",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
}
}
}
4. アイテムのループ処理(SplitInBatches)
アイテムをバッチ単位で処理します。
{
"id": "batch",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [450, 300],
"parameters": {
"batchSize": 10,
"options": {}
}
}
n8n REST API
ワークフローの一覧表示
curl -s "http://localhost:5678/api/v1/workflows" \
-H "X-N8N-API-KEY: $N8N_API_KEY"
ワークフローの取得
curl -s "http://localhost:5678/api/v1/workflows/{id}" \
-H "X-N8N-API-KEY: $N8N_API_KEY"
ワークフローの作成
curl -s -X POST "http://localhost:5678/api/v1/workflows" \
-H "X-N8N-API-KEY: $N8N_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "New Workflow", "nodes": [...], "connections": {...}}'
ワークフローの更新
curl -s -X PUT "http://localhost:5678/api/v1/workflows/{id}" \
-H "X-N8N-API-KEY: $N8N_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Updated", "nodes": [...], "connections": {...}}'
有効化/無効化
curl -s -X POST "http://localhost:5678/api/v1/workflows/{id}/activate" \
-H "X-N8N-API-KEY: $N8N_API_KEY"
curl -s -X POST "http://localhost:5678/api/v1/workflows/{id}/deactivate" \
-H "X-N8N-API-KEY: $N8N_API_KEY"
実行履歴の取得
curl -s "http://localhost:5678/api/v1/executions?workflowId={id}&limit=10&includeData=true" \
-H "X-N8N-API-KEY: $N8N_API_KEY"
式の構文
n8n では、動的な値に式を使用します。
| 構文 | 説明 |
|---|---|
={{ $json.field }} | 現在のアイテムのフィールドにアクセス |
={{ $json.body.param }} | ネストされたフィールドにアクセス |
={{ $('Node Name').item.json.field }} | 特定のノードの出力にアクセス |
={{ $input.first().json }} | 最初の入力アイテム |
={{ $input.all() }} | すべての入力アイテム |
={{ JSON.stringify($json) }} | JSON 文字列に変換 |
よく使われるノードタイプ
| ノード | タイプ | 用途 |
|---|---|---|
| Webhook | n8n-nodes-base.webhook | HTTP トリガー |
| HTTP Request | n8n-nodes-base.httpRequest | API 呼び出し |
| Respond to Webhook | n8n-nodes-base.respondToWebhook | HTTP レスポンスを返す |
| IF | n8n-nodes-base.if | 条件分岐 |
| Switch | n8n-nodes-base.switch | 複数の分岐 |
| Set | n8n-nodes-base.set | データの変換 |
| Code | n8n-nodes-base.code | カスタム JavaScript |
| Split In Batches | n8n-nodes-base.splitInBatches | ループ処理 |
| Merge | n8n-nodes-base.merge | 分岐の結合 |
MCP 連携
n8n は、組み込みの MCP サーバーを介してワークフローを MCP ツールとして公開できます。
- ワークフローの設定で MCP を有効にします:
"availableInMCP": true - MCP エンドポイントにアクセスします:
http://localhost:5678/mcp-server/http - Claude Code との連携には supergateway を使用します
ヒント
- Webhook のレスポンス:Respond ノードで制御するには、
responseMode: "responseNode"を使用します - 認証情報:API キーは n8n の認証情報に保存し、ID で参照します
- エラー処理:失敗の通知用に Error Trigger ノードを追加します
- テスト:開発中は
/webhook-test/パスを使用します - ADF 形式:Jira/Confluence では、リッチテキストに Atlassian Document Format が必要です
コメント
Markdown 対応