mcpField
N
n8n

n8n

github.com/89jobrien开发447 次安装9 周前更新
代码仓库

关于 n8n

用于通过 JSON 结构和 REST API 创建及管理 n8n 工作流的技能。内容涵盖常见工作流模式、表达式、节点类型以及通过 MCP 暴露工作流。

主要功能

  1. 01创建和更新工作流定义
  2. 02通过 REST API 管理工作流
  3. 03使用 Webhook、分支和批处理模式
  4. 04使用表达式和节点类型
  5. 05将工作流作为 MCP 工具暴露

适用场景

  1. 01构建 Webhook 触发的自动化
  2. 02分支或批量处理工作流数据
  3. 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 字符串

常见节点类型

节点类型用途
Webhookn8n-nodes-base.webhookHTTP 触发器
HTTP Requestn8n-nodes-base.httpRequestAPI 调用
Respond to Webhookn8n-nodes-base.respondToWebhook返回 HTTP 响应
IFn8n-nodes-base.if条件分支
Switchn8n-nodes-base.switch多路分支
Setn8n-nodes-base.set转换数据
Coden8n-nodes-base.code自定义 JavaScript
Split In Batchesn8n-nodes-base.splitInBatches循环处理
Mergen8n-nodes-base.merge合并分支

MCP 集成

n8n 可通过内置 MCP 服务将工作流作为 MCP 工具公开:

  1. 在工作流设置中启用 MCP:"availableInMCP": true
  2. 访问 MCP 端点:http://localhost:5678/mcp-server/http
  3. 使用 supergateway 集成 Claude Code

提示

  1. Webhook 响应:搭配 Respond 节点使用 responseMode: "responseNode",以便进行控制
  2. 凭据:将 API 密钥存储在 n8n 凭据中,并通过 ID 引用
  3. 错误处理:添加 Error Trigger 节点,以便在失败时发送通知
  4. 测试:开发期间使用 /webhook-test/ 路径
  5. ADF 格式:Jira/Confluence 的富文本需要使用 Atlassian Document Format

评论

支持 Markdown