Exported n8n workflows, as static evidence.
Weavatrix reads the n8n JSON export that is already committed in your repository, after the existing JSON parse, and answers inventory, trace and context questions on the code graph. It is not a live n8n API client, not an editor and not an executor.
Install from npmSee the three tools ↓# the n8n domain ships in Weavatrix Core 1.12.0 $ npx -y weavatrix@1.12.0 mcp . --profile=n8n $ claude mcp add weavatrix -- npx -y weavatrix@1.12.0 mcp . --profile=n8n
Where this runs in the pipeline
The parser is a domain on the existing structured adapters, not a new MCP product, editor or executor. It reads the exported file that is already committed in your repository.
What the n8n domain actually asserts
Every statement below is a property of the parser, not a marketing claim. Missing evidence stays missing.
Identity is file-bound
The same display name in different files stays distinct. Two nodes called Set in two workflows never merge into one.
flows_to ≠ depends_on_output
A declared connection and an observed data dependency are separate edge kinds. The graph keeps both and never collapses them.
Every expression occurrence
All $('Name') occurrences are recorded, not only the first one in a node.
Versions are not coerced
A node declaring typeVersion 1.7 is kept as 1.7. The parser does not normalise it to a version you did not export.
Secrets are omitted
Credentials, cookies and $env values are omitted from the evidence. Read-only, network-free, source-write-free.
Missing means not provided
A referenced subworkflow that is not in the repository is reported as not provided, never invented and never silently resolved.
Three read-only tools and one profile
Core 1.12.0 ships n8n_inventory, n8n_trace and n8n_context, plus --profile=n8n to narrow the MCP surface to the workflow domain.
n8n_inventory
The workflows, nodes, triggers and versions present in the exported JSON, bound to the file that declares them.
n8n_trace
Declared flows_to connections and observed depends_on_output dependencies as distinct paths.
n8n_context
Exact node parameters and expression occurrences for one node, with secrets omitted.
--profile=n8n
A narrowed MCP profile for workflow work. It reduces context; it does not grant any new authority.
Weavatrix n8n vs n8n-mcp
These answer different questions. Weavatrix reads the git export on the code graph; n8n-mcp talks to a live instance API.
| Question | Weavatrix | n8n-mcp |
|---|---|---|
| Source of truth | git export on the code graph | live n8n instance API |
| Needs a running n8n | no | yes |
| Network path | none | HTTP to the instance |
| Can change workflows | no, read-only | depends on instance credentials |
| Revision-bound answers | yes, the committed export | current instance state |
Measured speed, not a new benchmark
Measured 2026-08-03 at the installed boundary, Rust 1.2.0 against weavatrix-js 0.3.15 on the same JS service repository: cold 157.34 ms vs 5,068.22 ms (32.21x), warm 7.94 ms vs 292.55 ms (36.85x). The n8n domain shares that in-process graph — there is no HTTP hop to n8n — so no separate n8n millisecond figures are claimed here.
FAQ
Does this connect to my n8n instance?
No. It reads the exported JSON committed in your repository. There is no live n8n API call and no network path.
Do two nodes with the same display name merge?
No. Identity is bound to the declaring file, so they stay distinct.
What is the difference between flows_to and depends_on_output?
flows_to is a declared connection; depends_on_output is a data dependency observed through an expression. Separate edge kinds, never collapsed.
Are credentials included in the evidence?
No. Secrets, cookies and $env values are omitted.
Is this a new MCP product?
No. It is a domain on Weavatrix Core, after parse, on the existing JSON adapter.
Read-only. The n8n domain never edits or executes a workflow and never contacts an n8n instance. Weavatrix Core 1.12.0 is MIT and ships 50 read-only MCP operations, engine pin weavatrix-rust 2.11.0. GitHub · npm · MIT license · Both parsers