n8n's editor, n8n-mcp and our check, on the same 40 templates.
If you are deciding whether to put a check in front of your n8n deploys, the first question is what it gives you that you do not already have. So we ran the three checks side by side on 40 public n8n templates and scored them against one answer key none of them wrote: 224 places where a workflow will not work as written.
- Our check names 83 of them.
- n8n-mcp names 11.
- n8n's editor check names 0.
- Only one of them is named both by ours and by another check. 82 are named only by ours, 10 only by n8n-mcp, and 131 by none of the three.
What each check is for
- n8n's editor check is the set of warnings the n8n editor shows on a node when a person opens the workflow: a required field left empty, or a node type the instance does not have. n8n will not run the workflow from the editor while they are open.
- n8n-mcp is an open-source server that gives an AI assistant n8n's node documentation and tools. Its
validate_workflowis the validator the assistant runs while it builds a workflow: node settings against each node's schema, connections, expressions and AI agent wiring. - Our check reads the workflow's file and names each place it cannot work as written: a step or field that is not there, a step no trigger reaches, an open webhook or form that leads to a write or a paid call, a step retried on error that writes twice.
They are built for different moments, and they overlap little. This page is the count, not a ranking: a check that names fewer of these breaks can still be the right one for what it is for.
Where the others see what ours does not
n8n-mcp names 10 breaks in the answer key that ours does not:
- Talk to Your Google Sheets Using ChatGPT-5, step “Talk to Your Data”: an AI agent set to use an output parser, with none connected.
- Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato, step “AI Agent: Create Veo3-Compatible Prompt”: an AI agent set to use an output parser, with none connected.
- Create & Upload AI-Generated ASMR YouTube Shorts with Seedance, Fal AI, and GPT-4, step “1. Generate Trendy Idea”: an AI agent set to use an output parser, with none connected.
- Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube, step “Update Youtube URL”: a value with {{ }} but no leading =, so its braces are sent as written.
- Transform Long Videos into Viral Shorts with AI and Schedule to Social Media using Whisper & Gemini, step “AI Agent - Select Viral Clips”: an AI agent set to use an output parser, with none connected.
- Automated Job Applications & Status Tracking with LinkedIn, Indeed & Google Sheets, step “📧 Send Application Notification”: a node given another version’s parameters or operation.
- Automated Job Applications & Status Tracking with LinkedIn, Indeed & Google Sheets, step “📖 Read Jobs Sheet”: a node given another version’s parameters or operation.
- Aggregate News Articles from NewsAPI, Mediastack & CurrentsAPI into Database, step “call mediastack”: an error output switched on and wired to nothing.
- Aggregate News Articles from NewsAPI, Mediastack & CurrentsAPI into Database, step “call newsapi.org - categories”: an error output switched on and wired to nothing.
- Aggregate News Articles from NewsAPI, Mediastack & CurrentsAPI into Database, step “call currentsapi”: an error output switched on and wired to nothing.
It also names things the answer key does not hold. We read every one of its errors. Of the 34 that did not match a break in the key, 27 are right, and 24 of those are problems the key does not list at all, for example a filter operator n8n does not have, an expression n8n's engine refuses because it holds {{ inside {{ }}, and fields that mix text and {{ }} without a leading =. Ours says none of these on these files.
n8n's editor check tells an importer what to set up before the workflow can run: 54 steps from community packages a stock n8n does not have, and 16 required fields the template ships empty. They are true, and ours says neither. The answer key does not count set-up an importer is expected to do as a break, so they are not in the count above.
What only ours names
- 55: an open webhook, form, chat or bot that anyone can reach, leading to a write, a post or a paid call. In 8500 (10), 10000 (9), 9200 (9), 11204 (6), 10724 (5), 4751 (4), 13503 (3), 5755 (3), 9867 (3), 12462 (2), 2519.
- 14: an expression or connection that names a node the file does not have. In 5906 (7), 10358 (6), 16792.
- 12: a step retried on error that writes or sends twice. In 11807 (9), 6067 (3).
- 1: a trigger connected to nothing. In 4846.
n8n-mcp has an error for an expression that names a node the workflow does not have. On these files it did not give it once, including the places listed above.
131 breaks in the key are named by none of the three. Most are about what the workflow does with its data: input pasted into a JSON body without escaping, a job read once after a fixed wait, the author's own endpoint left in. None of the three reads that.
False alarms
n8n-mcp gave 36 errors and 22 warnings. We read every error, and the warnings on the first ten templates (3 warnings). 7 errors and 3 warnings were wrong:
- 11807, step “Purge Old Chat Memory”, error: a field mixes text and {{ }} without a leading =. The Postgres node resolves {{ }} in its query itself, without a leading "=" (executeQuery.operation.js, getResolvables); the query runs as written.
- 11807, step “Archive Weekly Metrics”, error: a field mixes text and {{ }} without a leading =. The Postgres node resolves {{ }} in its query itself, without a leading "=" (executeQuery.operation.js, getResolvables); the query runs as written.
- 11807, step “Purge Existing Docs”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. Deleting the old documents once before re-ingesting is what the node means; running once is right here.
- 11807, step “Purge Old Chat Memory”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. One purge per weekly run is what the node means; running once is right here.
- 11807, step “Archive Weekly Metrics”, warning: executeOnce is enabled. This node will execute only once regardless of input items.. One archive row per weekly run is what the node means; running once is right here.
- 10000, step “Search Trends with Perplexity”, error: Required property 'Input' cannot be empty. The Perplexity message text is set; "Input" belongs to the agent resource, which this node does not use (n8n's own check, with the defaults filled, says nothing here).
- 5906, step “📝 Update Job Status”, error: Sheet names with spaces must be quoted. The range names no sheet; the spaces it saw are inside {{ }}. What is wrong with the range (no leading "=") is said by another item.
- 5906, step “📝 Update Changed Status”, error: Sheet names with spaces must be quoted. The range names no sheet; the spaces it saw are inside {{ }}. What is wrong with the range (no leading "=") is said by another item.
- 5906, step “⚙️ Configuration”, error: a field mixes text and {{ }} without a leading =. The {{position}} tokens are the cover letter's own placeholders, replaced later by .replace(); literal text is what is meant.
- 11572, step “Add NewsAPI item1”, error: Expected object but got string. A plain string where a locator is expected is read by n8n as the id; what is wrong is that the project is the empty expression "=", which this message does not say.
n8n's editor check gave 111 errors and none was wrong. 41 more came from how we ran it, not from n8n: we read each node's description from the file n8n publishes, and the AI tool versions of nodes (such as the Gmail tool) are not in that file, because n8n builds them from the plain node when it starts. n8n's editor knows them; we do not count these against it.
Ours said 184 things on these files. 5 are wrong by the answer key:
- 11807, step “Email Trigger (IMAP)”: an email trigger reported as a step that never runs; it is a trigger ours does not know.
- 8965, step “Check Enabled Platforms”: a branch reported as never taken, though its switches are meant to be edited.
- 5819, step “OpenAI”: a model switched off on purpose as a spare, reported as never running.
- 8500, step “Set Reply Message”: an error field reported as missing, though it is read exactly when it exists.
- 2519, step “When clicking ‘Test workflow’”: a manual trigger switched off on purpose, reported as never running.
96 more were said after the key was written, most of them further open webhooks and chats, and no one has read them for this page. Some may be wrong.
Template by template
How this was run
- The files. The first 40 free templates n8n's template search lists, each fetched from n8n's public API and checked against the hash we recorded. Each is linked above to its page on n8n.io; we do not republish them.
- The answer key. A reader went through each file before either of the other checks was run, marked each thing our check said as right or wrong, and listed every break our check did not say. It leans our way in one respect: the reader named each break in our check's words. So a break another check names in its own words was matched by the step it names, then read by hand, never by the wording alone; one break was found that way.
- The versions. n8n-mcp 2.89.0, run with its default profile, telemetry off. n8n's editor check is
getNodeParametersIssuesfrom n8n-workflow 2.40.1, over the node descriptions of n8n-nodes-base 2.40.2 and @n8n/n8n-nodes-langchain 2.40.3, the versions n8n 2.40.7 uses. Run on 25 September 2026. No workflow was sent anywhere and no AI model was used.
What our check found in the 40 most-viewed n8n templates, read before you import them.