Model Context Protocol (MCP) server for n8n workflow automation
11 tools with basic schemas and minimal descriptions. All tools have input schemas with type definitions, but descriptions are generic (10-40 chars), parameter descriptions are sparse or missing, and output schemas are undocumented. No error recovery guidance, no parameter constraints (enums), and no indication of idempotency or side effects. Naming is verb-first and clear (list_, get_, create_, etc.), but parameter documentation is severely lacking. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is reasonable (single responsibility per tool), but chaining support is unclear due to missing output documentation.
Activate a workflow
Create a new workflow
Deactivate a workflow
Delete an execution
Delete a workflow
Get a specific execution by ID
Get a specific workflow by ID
Descriptions are too short (10-40 chars) and lack context. LLMs cannot determine when to select tools or what they return. Rubric baseline: 194 chars average, 10-1024 range required.
Output schemas are completely undocumented. LLMs cannot plan downstream tool calls or extract required fields (e.g., workflow_id for chaining). Rubric requires documented return types for 100% of A+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
List all workflow executions
List all workflows from n8n
Run a webhook
Update an existing workflow
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot determine which tools are safe to retry or have irreversible consequences.
Parameter descriptions are missing or minimal. 'Workflow ID' and 'Execution ID' lack format, constraints, or examples. Rubric baseline: 72 chars average per param; 100% of A+ tools have param descriptions.
No error handling guidance. Tools do not indicate what to do on failure (retry, ask user, abort). Rubric requires error responses to tell LLM next steps and categorize errors as retryable/user-fixable/fatal.