mcpField
N
n8n-node-configuration

n8n-node-configuration

github.com/n8n-io开发576207 次安装3 周前更新
代码仓库

关于 n8n-node-configuration

n8n-node-configuration 是面向 n8n 工作流构建者的配置指南,强调先查询节点的实时参数结构,再填写配置,以减少因猜测和版本变化导致的错误。

主要功能

  1. 01按资源和操作查询节点结构
  2. 02解析条件参数与字段依赖
  3. 03查找资源定位器的真实选项
  4. 04使用单节点配置校验
  5. 05提供节点类别参考指南

适用场景

  1. 01配置带条件字段的 n8n 节点
  2. 02为资源定位器选择有效 ID
  3. 03修改现有工作流中的单个节点
  4. 04排查节点参数校验错误

MCP 相关

该技能说明如何调用 n8n MCP 工具,包括 get_node_types、explore_node_resources 和 validate_node_config,以查询参数结构、获取有效选项并校验节点配置。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/n8n-io/skills --skill n8n-node-configuration

安装后在 Claude Code 中输入/n8n-node-configuration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
AI_NODES.md
COMMS_NODES.md
DATABASE_NODES.md
HTTP_NODES.md
MERGE_NODE.md
SWITCH_FALLBACK.md
TRIGGER_NODES.md
WEBHOOK_NODES.md

详细介绍

n8n 节点配置

每个 n8n 节点都有自己的参数结构,且通常包含条件字段(只有参数 Y 的值为 Z 时,参数 X 才会生效)。不同版本的结构会有所变化。猜测会导致难以理解的验证错误。

不要猜测,使用 get_node_types 工具。

不容妥协

**配置节点之前,必须使用判别参数(resource、operation、mode)调用 get_node_types。**不带判别参数会返回通用结构,缺少特定操作的参数和必填字段。请根据确切结构进行配置。不要凭记忆猜测。

**实时的 get_node_types 输出是规范的参数结构。**本技能中的参考资料介绍了模式、易错点、安全规则和决策方法(何时使用哪种操作、为什么使用凭据而不是文本字段、引擎重试上限等),而不是参数名称或字段结构。如果参考示例与 get_node_types 返回的内容冲突,请以工具为准。Markdown 文档可能过时;类型定义是根据实时源代码生成的。

**绝不要猜测资源定位器或加载选项的值。**当 get_node_types 显示某个参数带有 @searchListMethod 或 @loadOptionsMethod(Slack 频道、Sheets 标签页/文档、数据库表/列、模型列表、标签)时,请使用 explore_node_resources 查找实际值(传入 list_credentials 返回的 credentialId),并使用返回的 value。如果你已经知道确切 ID,就使用它;如果有多个匹配项且意图不明确,请询问用户。虚构的 ID 虽然能通过验证,但实际并不存在。例外:toolWorkflow.workflowId 没有搜索方法,请通过 search_workflows 查找,并使用 mode: 'id'。

强烈建议

  • **优先配置操作。**先设置 resource 和 operation,这样条件参数才会显示。多数“字段不存在”错误,实际上是因为“尚未设置父级操作”。
  • **切换操作时,不要沿用参数。**切换 operation 后,请根据新结构重新推导参数。上一个操作遗留的参数会导致验证失败。

新建节点的流程

1. search_nodes(['<capability keyword>'])
   → returns matching node IDs + discriminators
2. Pick the right (resource, operation) for the task.
3. get_node_types([{ name: '...', resource: '...', operation: '...' }])
   → returns exact parameter shape including conditional fields
4. For any RLC / load-options param in that shape, ground the real value:
   explore_node_resources({ nodeType, version, methodName, methodType, credentialType, credentialId, currentNodeParameters? })
   → use a returned `value`. Don't invent IDs.
5. Build the node config from that shape.
6. validate_workflow → fix errors.
7. get_workflow_details → inspect the saved config; confirm parameters landed.
8. test_workflow with pinned data → confirm runtime behavior.

跳过任何一步都会导致后续步骤的问题层层累积。最常被跳过的是第 3 步,继而出现“Cannot read property X”错误;其真正原因其实是“没有传入判别参数”。

validate_node_config 作为旁路检查

validate_node_config([{ type, typeVersion, parameters, isToolNode? }]) 会在隔离的节点配置上运行与 validate_workflow 相同的 Zod schema。它只检查 schema 层面,不能替代 validate_workflow(发布前仍需通过完整验证)。适用于:

  • **构建过程中迭代单个节点。**比每次修改都重新运行 validate_workflow 更快。
  • **小幅修改现有工作流。**连线未变?检查你修改的那个节点;发布前再进行完整验证。
  • **调试配置错误的节点。**提供逐参数的错误信息,不受图结构噪声干扰。

对于工具子节点(通过 ai_tool 连线),请设置 isToolNode: true,以便评估正确的 displayOptions 分支。

根据操作配置

大多数节点的顶层结构如下:

{
  resource: '<thing being operated on>',   // 'message', 'spreadsheet', 'user', etc.
  operation: '<verb>',                      // 'send', 'append', 'lookup', etc.
  // ...operation-specific parameters
}

(resource, operation) 组合决定了其他参数的存在与否(例如,Slack 的 (message, send) 与 (user, info) 不同)。

模式:

  1. 先设置 resource 和 operation。
  2. 如果一开始没有传入这些判别参数,请使用它们重新获取 get_node_types。
  3. 根据特定操作的结构配置其余参数。

属性依赖:容易忽略的陷阱

有些参数之间存在不明显的依赖关系:

  • 只有当另一个字段具有特定值时,某个字段才是必填项。
  • 某个字段会根据模式接受不同类型的值。
  • 某个字段的选项取决于另一个字段的值。

示例:

  • HTTP Request 的 authentication: 'genericCredentialType' 要求提供 genericAuthType 和 credentials,而 'predefinedCredentialType' 则要求不同的结构。
  • Postgres 的 operation: 'executeQuery' 要求提供 query,而 operation: 'select' 则要求提供 table 和 columns。
  • Slack 的 messageType: 'block' 会启用 messageType: 'text' 中不存在的区块构建器字段。

针对具体操作,务必通过 get_node_types 检查。不要复用其他操作的配置并指望它能通过验证。

从其他字段获取选项的功能使用 @loadOptionsMethod:通过 explore_node_resources 解析实时选项(methodType: 'loadOptions')。如果方法依赖之前的选择,请通过 currentNodeParameters 传入(例如,列出电子表格的工作表需要 documentId)。

参考文件

各类别的注意事项。请阅读与你正在配置的节点类型对应的文件:

文件阅读时机
references/HTTP_NODES.md配置 HTTP Request:身份验证、分页、查询/正文参数、重试
references/WEBHOOK_NODES.md配置 Webhook 触发器或 Respond to Webhook:正文解析、响应结构、异步模式
references/COMMS_NODES.md配置 Slack、Gmail、Discord、电子邮件:凭据类型、消息结构、附件
references/DATABASE_NODES.md配置 Postgres、MySQL、Mongo、Supabase:查询与操作、参数绑定、错误处理
references/AI_NODES.md配置 AI Agent 节点参数:流式传输、视觉、maxIterations、模型子节点上的重试。提示词、工具、记忆和结构化输出等设计内容请参阅 n8n-agents
references/TRIGGER_NODES.md配置 Webhook、Schedule、Manual、Execute Workflow Trigger:输入架构、轮询与实时模式
references/SWITCH_FALLBACK.md配置 Switch 节点,或遇到 useDataOfInput、numberOfInputs,或分支汇合时
references/MERGE_NODE.md配置 Merge 节点,或遇到 useDataOfInput、numberOfInputs,或分支汇合时

反模式

反模式问题修正方法
凭记忆构建节点配置,沿用节点去年时的样子参数结构已经变化,验证会失败并出现晦涩的错误每次会话都针对每个节点调用 get_node_types
在 get_node_types 中跳过判别参数只能获取通用结构,会遗漏特定操作的必填字段务必传入 resource + operation(如果存在,还要传入 mode)
将一个操作的节点配置复制到另一个操作并做修改过时的参数会导致验证失败,条件字段也不适用根据新操作的结构重新推导配置
在节点文本字段中硬编码令牌/凭据导出时会泄露。请参阅 n8n-credentials-and-security始终使用凭据
配置后未使用 test_workflow 测试节点运行时错误只有在处理真实数据时才会出现发布前务必使用固定数据进行测试

评论

支持 Markdown