关于 n8n
用于通过 JSON 结构和 REST API 创建及管理 n8n 工作流的技能。内容涵盖常见工作流模式、表达式、节点类型以及通过 MCP 暴露工作流。
主要功能
- 01创建和更新工作流定义
- 02通过 REST API 管理工作流
- 03使用 Webhook、分支和批处理模式
- 04使用表达式和节点类型
- 05将工作流作为 MCP 工具暴露
适用场景
- 01构建 Webhook 触发的自动化
- 02分支或批量处理工作流数据
- 03将工作流连接到 MCP 客户端
MCP 相关
n8n 可通过内置 MCP 服务端点,将标记为 `availableInMCP` 的工作流作为 MCP 工具暴露。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill n8n安装后在 Claude Code 中输入/n8n确认已加载。
附带文件assets/example-asset.txtreferences/api-reference.md
详细介绍
n8n 工作流自动化技能
此技能支持创建和管理 n8n 工作流,以完成自动化任务。
前提条件
运行中的 n8n 实例,并已启用 API 访问:
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}]]
}
}
}
访问地址: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 - 使用 supergateway 集成 Claude Code
提示
- Webhook 响应:搭配 Respond 节点使用
responseMode: "responseNode",以便进行控制 - 凭据:将 API 密钥存储在 n8n 凭据中,并通过 ID 引用
- 错误处理:添加 Error Trigger 节点,以便在失败时发送通知
- 测试:开发期间使用
/webhook-test/路径 - ADF 格式:Jira/Confluence 的富文本需要使用 Atlassian Document Format
评论
支持 Markdown