MCP server for n8n workflow administration: backup, rollback, schema derivation, and node patching with write-safety
Server has 17 tools with explicit schemas and descriptions. Naming is verb-first and clear (get_, list_, create_, update_, patch_, set_, rollback_). Descriptions are present but brief (10-100 chars, below the 50-200 char LLM-optimized baseline). Input schemas are well-formed with proper types and constraints (enums, minLength, required fields). Critical gaps: parameter descriptions are entirely absent, LLMs cannot infer what 'workflow', 'params', 'mode', or 'confirm' control. Output schemas are not documented. Error handling is minimal. Write-safety policy exists but confirmation mechanism is unclear. No tool annotations (readOnlyHint, destructiveHint). Composition is sound, tools are single-responsibility and chainable via IDs.
Creates a new inactive workflow and exports a local source backup
Derives candidate IO schema from workflow node parameters
Duplicates a workflow as immutable baseline
Exports workflow JSON to local backup file
Returns whether workflow is active
Returns active write safety policy
Gets a workflow by ID
Parameter descriptions entirely absent. LLMs cannot infer what 'workflow' object structure is expected, what 'params' should contain, what 'mode' enum values mean, or when 'confirm' is required. This violates the pattern:tool-description baseline (100% of A+ tools have param descriptions).
Output schemas not documented. Callers cannot plan downstream tool calls or extract required fields (e.g., what does list_workflows return? Is it {workflows: [...], total: N} or {items: [...], cursor: ...}?). Breaks pattern:tool and mxe:include-chaining-ids.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Finds a workflow by exact name
Inspects output type shape for a node sample
Lists backup records made by this admin tool
Lists workflows from n8n API
Patches parameters on a named workflow node
Parses and normalizes a sample payload
Rolls back a workflow to a baseline workflow snapshot
Sets workflow active state
Updates workflow with full or partial workflow object
Validates tool output type against expectation
Write-safety confirmation mechanism unclear. Tools like create_workflow, update_workflow_json, patch_node_params accept a 'confirm' boolean parameter, but no description explains what happens if confirm=false (does it dry-run? reject? require user input?). Violates pattern:confirmation-request.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones without explicit hints. Violates current MCP spec (2026-07-28) which rewards tool annotations.
Tool descriptions are too brief (10-100 chars vs. 50-200 char LLM-optimized baseline). E.g., 'Returns active write safety policy' and 'Returns whether workflow is active' lack context on WHEN to call these tools or what the policy/state means operationally.