ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用 n8n-mcp 的 n8n_test_workflow 触发 webhook 工作流测试执行?

如何用 n8n-mcp 的 n8n_test_workflow 触发 webhook 工作流测试执行? 如何用 n8n-mcp 的 n8n_test_workflow 触发 webhook 工作流测试执行【免费下载链接】n8n-mcpA MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you项目地址: https://gitcode.com/GitHub_Trending/n8/n8n-mcpn8n-mcp是一个 Model Context Protocol 服务器除了查文档和节点信息还通过 n8n 的公开 API 提供工作流管理工具。其中n8n_test_workflow用于在开发过程中真正触发一次工作流执行验证 webhook 工作流端到端跑通。它只支持通过 HTTP 方式触发的三类触发器webhook、form 和 chatn8n 的公开 API 本身不支持直接执行任意工作流所以只有带这三种触发器的工作流能被该工具触发。本文聚焦 webhook 场景覆盖前提配置、调用方式和结果核对。先确认工作流可以被外部触发n8n_test_workflow拿到workflowId后会先拉取工作流内容并自动分析触发器节点见 触发检测逻辑自动检测的优先级是 webhook → chat → form。对 webhook 工作流它需要满足两个硬条件否则不会发起请求触发器节点存在工作流里有未禁用的 webhook 触发节点。检测器会从节点参数里提取 webhook 路径parameters.path或按 HTTP 方法对应的路径参数或节点的webhookId并读取httpMethod未配置时默认 POST。工作流处于激活状态webhook 触发器要求工作流 active。如果工作流是刚用n8n_create_workflow创建的它默认是 inactive 的见 WORKFLOW_GUIDE.md需要先激活n8n_update_partial_workflow({ id: workflow-id, intent: Activate workflow for testing, operations: [{type: activateWorkflow}] })可以用n8n_get_workflow({id: workflow-id})检查草稿内容里的触发节点配置返回体中的active字段表示激活状态如果工作流从未激活mode: active会返回code: NO_ACTIVE_VERSION。服务端需要哪些前提配置n8n_test_workflow属于工作流管理类工具要求 n8n-mcp 服务端配置了 n8n API 访问。按 N8N_DEPLOYMENT.md 的本地配置至少设置这些环境变量export N8N_MODEtrue # 启用 n8n 集成模式 export N8N_API_URLhttp://localhost:5678 # 你的 n8n 实例 URL export N8N_API_KEYyour-api-key-here # n8n Settings → API 中获取的 API key export WEBHOOK_SECURITY_MODEmoderate # N8N_API_URL 为 localhost 或 RFC1918 内网地址时要求设置 npm start其中WEBHOOK_SECURITY_MODE值得特别注意n8n_test_workflow的 webhook 执行带 SSRF 防护请求发出前会校验 webhook URL见 webhook-handler.ts当N8N_API_URL指向 localhost 或内网地址时默认的 strict 模式会拦截请求报错信息以 SSRF protection 开头。文档要求在本地/内网场景将其设为moderate。配置完成后可按文档验证服务就绪curl http://localhost:3000/health检查健康状态curl http://localhost:3000/mcp应返回{protocolVersion:2024-11-05}。调用 n8n_test_workflow 触发 webhook 工作流参数定义见 n8n-test-workflow.ts 的工具文档与 handlers-n8n-manager.ts 中的 schema。与 webhook 相关的参数参数必填说明workflowId是要执行的工作流 IDtriggerType否webhook/form/chat不传则自动检测。传入时若与工作流实际触发器不符会直接报错错误里会给出检测到的实际类型httpMethod否GET/POST/PUT/DELETE不传则取工作流触发节点的配置再缺省为 POSTwebhookPath否显式覆盖 webhook 路径不传则使用从触发节点提取的路径data否输入数据。POST/PUT/DELETE 作为请求体发送GET 作为查询参数headers否自定义 HTTP 头timeout否毫秒数默认 120000waitForResponse否是否等待工作流完成默认 true最短调用是只传工作流 ID让自动检测处理触发类型n8n_test_workflow({workflowId: 123})带数据的 webhook 触发示例来自 WORKFLOW_GUIDE.mdn8n_test_workflow({ workflowId: workflow-id, triggerType: webhook, httpMethod: POST, data: {message: Hello!}, waitForResponse: true, timeout: 120000 })内部执行逻辑是用N8N_API_URL拼出生产 webhook 地址base/webhook/path按方法发送请求并记录状态码、耗时、路径和 HTTP 方法到 metadata见 webhook-handler.ts。核对执行结果成功时响应包含success布尔值webhook 场景成功时为 trueexecutionId本次执行的 ID用于追踪和调试triggerType检测或指定的触发类型data工作流输出数据details.metadata请求耗时、实际使用的webhookPath与httpMethod。失败的排查路径文档分两种情况给出见工具文档的 errorHandling 部分响应带 executionId工作流启动了但执行失败用n8n_executions({action: get, id: executionId, mode: preview})查看这次执行调试错误细节时可用mode: error并加includeStackTrace: true。响应没有 executionId工作流根本没启动用n8n_executions({action: list, workflowId: wf_id})查该工作流最近的执行记录确认是否有触发痕迹。常见报错与限制工具文档列出的常见错误及对应处理Workflow not found—— 检查 workflow ID 是否存在Workflow not active/ 报错 Workflow must be active to trigger via this method —— 所有触发类型都要求工作流激活按前文用activateWorkflow操作激活Workflow cannot be triggered externally—— 工作流没有 webhook/form/chat 触发节点schedule、manual 等其他触发器无法通过该工具触发传入triggerType但实际类型不符时报错为Workflow does not have a type triggerdetails 里给出detectedTrigger按提示改用正确类型或省略参数走自动检测SSRF protection开头的错误 —— webhook URL 校验未通过本地/内网场景确认WEBHOOK_SECURITY_MODEmoderate。两点边界需要留意webhook 的 HTTP 方法必须与触发节点配置一致否则会命中不同的 URL 规则另外 README 的只读部署配方DISABLED_TOOLS会把n8n_test_workflow整体禁用如果部署时配置了该变量工具不可用属于预期行为。下一步webhook 验证通过后同一次会话里可以接着用n8n_executions做执行的查看与清理或用n8n_validate_workflow({id})做部署后的结构性检查。工具文档标注的相关工具是n8n_executions、n8n_get_workflow、n8n_create_workflow和n8n_validate_workflow均在 n8n-test-workflow.ts 的relatedTools中列出。【免费下载链接】n8n-mcpA MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you项目地址: https://gitcode.com/GitHub_Trending/n8/n8n-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表