n8n-MCP
This server is an MCP bridge that lets AI assistants explore n8n's node/template documentation and, when configured with API credentials, manage and operate n8n workflow instances.
Node & template discovery: Search 2,791 nodes, fetch node docs/properties/examples, and search/retrieve 2,352 workflow templates.
Validation: Validate individual node configs and whole workflows (structure, connections, expressions, AI tools) with minimal/full modes and profiles.
Workflow management: Create, read, update (full or partial diff operations), delete, list, version, rollback, autofix, and deploy workflow templates.
Execution operations: Test/trigger workflows, list/get/delete executions, run/cancel evaluation test runs, and monitor health/connectivity.
Instance administration: Manage folders, data tables, credentials, projects/tags, and n8n Agents; explore dynamic node resources (Slack channels, sheets, models); audit security and scan workflows for risks.
Governance controls: Support read-only deployment by disabling destructive tools/operations and blocking exposes, with credential-value privacy protections.
Supports access to LangChain nodes within n8n, providing documentation and configuration assistance for AI-powered workflow automation using LangChain components.
Provides comprehensive access to n8n's workflow automation platform, including node documentation, properties validation, and workflow management capabilities. Enables AI assistants to understand, create, and manage workflows with over 530 automation nodes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@n8n-MCPshow me how to use the HTTP Request node to fetch data from an API"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
n8n-MCP
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 2,791 workflow automation nodes (833 core + 1,958 community).
Overview
n8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:
2,791 n8n nodes - 833 core nodes + 1,958 community nodes (1,619 verified)
Node properties - 99% coverage with detailed schemas
Node operations - 66.5% coverage of available actions
Documentation - 86% coverage from official n8n docs (including AI nodes)
AI tools - 267 AI-capable tool variants detected with full documentation
Real-world examples - 156 ranked configurations extracted from popular templates
Template library - 2,352 workflow templates with 99.96% AI metadata coverage
Community nodes - Search verified community integrations with
sourcefilter
Related MCP server: n8n-MCP
Support This Project
n8n-mcp started as a personal tool but now helps tens of thousands of developers automate their workflows efficiently. Maintaining and developing this project competes with my paid work. Your sponsorship helps me dedicate focused time to new features, respond quickly to issues, keep documentation up-to-date, and ensure compatibility with latest n8n releases. Become a sponsor
💼 Need it built for you? Work with AiAdvisors — n8n automation audits, builds, and operations, run by the author of n8n-mcp and n8n-skills.
Important Safety Warning
NEVER edit your production workflows directly with AI! Always:
Make a copy of your workflow before using AI tools
Test in development environment first
Export backups of important workflows
Validate changes before deploying to production
AI results can be unpredictable. Protect your work!
Quick Start
The fastest way to try n8n-MCP - no installation, no configuration:
Free tier: 100 tool calls/day
Instant access: Start building workflows immediately
Always up-to-date: Latest n8n nodes and templates
No infrastructure: We handle everything
Just sign up, get your API key, and connect your MCP client.
Want to self-host? See the Self-Hosting Guide for npx, Docker, Railway, and local installation options.
n8n Integration
Want to use n8n-MCP with your n8n instance? Check out our comprehensive n8n Deployment Guide for:
Local testing with the MCP Client Tool node
Production deployment with Docker Compose
Cloud deployment on Hetzner, AWS, and other providers
Troubleshooting and security best practices
Cloudflare Access Authentication
If your n8n instance sits behind Cloudflare Access (Zero Trust), provide your service token so n8n-MCP can authenticate:
N8N_CF_CLIENT_ID- Cloudflare Access Client IDN8N_CF_CLIENT_SECRET- Cloudflare Access Client Secret
When set, these are sent as CF-Access-Client-Id / CF-Access-Client-Secret headers on n8n API requests, version/health probes, and webhook executions. The token is confined to the N8N_API_URL origin — webhook calls to a different host (e.g. a split WEBHOOK_URL origin) do not receive it, to avoid leaking the token.
n8n Agents and Instance-Level MCP (Optional)
To use n8n_manage_agents, n8n_explore_node_resources, and the project fallback in n8n_list_catalog, set:
N8N_MCP_ACCESS_TOKEN- MCP API key from n8n Settings → Instance-level MCP → set MCP status to Enabled. This is a separate secret fromN8N_API_KEYand should be stored the same way. The MCP endpoint is derived fromN8N_API_URL; instances that serve MCP from a split host (N8N_MCP_BASE_URL) are not supported.
See Connecting n8n-mcp to n8n's instance-level MCP server for the full setup walkthrough, including how to get the token from the n8n UI, prerequisites, and troubleshooting.
Connect your IDE
n8n-MCP works with multiple AI-powered IDEs and tools:
Claude Code - Quick setup for Claude Code CLI
Visual Studio Code - VS Code with GitHub Copilot integration
Cursor - Step-by-step Cursor IDE setup
Windsurf - Windsurf integration with project rules
Codex - Codex integration guide
Antigravity - Antigravity integration guide
Add Claude Skills (Optional)
Supercharge your n8n workflow building with specialized skills that teach AI how to build production-ready workflows!

Learn more: n8n-skills repository
Claude Project Setup
For the best results when using n8n-MCP with Claude Projects, use these enhanced system instructions:
You are an expert in n8n automation software using n8n-MCP tools. Your role is to design, build, and validate n8n workflows with maximum accuracy and efficiency.
## Core Principles
### 1. Silent Execution
CRITICAL: Execute tools without commentary. Only respond AFTER all tools complete.
### 2. Parallel Execution
When operations are independent, execute them in parallel for maximum performance.
### 3. Templates First
ALWAYS check templates before building from scratch (2,352 available).
### 4. Multi-Level Validation
Use validate_node(mode='minimal') → validate_node(mode='full') → validate_workflow pattern.
### 5. Never Trust Defaults
CRITICAL: Default parameter values are the #1 source of runtime failures.
ALWAYS explicitly configure ALL parameters that control node behavior.
## Workflow Process
1. **Start**: Call `tools_documentation()` for best practices
2. **Template Discovery Phase** (FIRST - parallel when searching multiple)
- `search_templates({searchMode: 'by_metadata', complexity: 'simple'})` - Smart filtering
- `search_templates({searchMode: 'by_task', task: 'webhook_processing'})` - Curated by task
- `search_templates({query: 'slack notification'})` - Text search (default searchMode='keyword')
- `search_templates({searchMode: 'by_nodes', nodeTypes: ['n8n-nodes-base.slack']})` - By node type
**Filtering strategies**:
- Beginners: `complexity: "simple"` + `maxSetupMinutes: 30`
- By role: `targetAudience: "marketers"` | `"developers"` | `"analysts"`
- By time: `maxSetupMinutes: 15` for quick wins
- By service: `requiredService: "openai"` for compatibility
3. **Node Discovery** (if no suitable template - parallel execution)
- Think deeply about requirements. Ask clarifying questions if unclear.
- `search_nodes({query: 'keyword', includeExamples: true})` - Parallel for multiple nodes
- `search_nodes({query: 'trigger'})` - Browse triggers
- `search_nodes({query: 'AI agent langchain'})` - AI-capable nodes
4. **Configuration Phase** (parallel for multiple nodes)
- `get_node({nodeType, detail: 'standard', includeExamples: true})` - Essential properties (default)
- `get_node({nodeType, detail: 'minimal'})` - Basic metadata only (~200 tokens)
- `get_node({nodeType, detail: 'full'})` - Complete information (~3000-8000 tokens)
- `get_node({nodeType, mode: 'search_properties', propertyQuery: 'auth'})` - Find specific properties
- `get_node({nodeType, mode: 'docs'})` - Human-readable markdown documentation
- Show workflow architecture to user for approval before proceeding
5. **Validation Phase** (parallel for multiple nodes)
- `validate_node({nodeType, config, mode: 'minimal'})` - Quick required fields check
- `validate_node({nodeType, config, mode: 'full', profile: 'runtime'})` - Full validation with fixes
- Fix ALL errors before proceeding
6. **Building Phase**
- If using template: `get_template(templateId, {mode: "full"})`
- **MANDATORY ATTRIBUTION**: "Based on template by **[author.name]** (@[username]). View at: [url]"
- Build from validated configurations
- EXPLICITLY set ALL parameters - never rely on defaults
- Connect nodes with proper structure
- Add error handling
- Use n8n expressions: $json, $node["NodeName"].json
- Build in artifact (unless deploying to n8n instance)
7. **Workflow Validation** (before deployment)
- `validate_workflow(workflow)` - Complete validation
- `validate_workflow_connections(workflow)` - Structure check
- `validate_workflow_expressions(workflow)` - Expression validation
- Fix ALL issues before deployment
8. **Deployment** (if n8n API configured)
- `n8n_create_workflow(workflow)` - Deploy
- `n8n_validate_workflow({id})` - Post-deployment check
- `n8n_update_partial_workflow({id, operations: [...]})` - Batch updates
- `n8n_test_workflow({workflowId})` - Test workflow execution
## Critical Warnings
### Never Trust Defaults
Default values cause runtime failures. Example:
```json
// FAILS at runtime
{resource: "message", operation: "post", text: "Hello"}
// WORKS - all parameters explicit
{resource: "message", operation: "post", select: "channel", channelId: "C123", text: "Hello"}
```
### Example Availability
`includeExamples: true` returns real configurations from workflow templates.
- Coverage varies by node popularity
- When no examples available, use `get_node` + `validate_node({mode: 'minimal'})`
## Validation Strategy
### Level 1 - Quick Check (before building)
`validate_node({nodeType, config, mode: 'minimal'})` - Required fields only (<100ms)
### Level 2 - Comprehensive (before building)
`validate_node({nodeType, config, mode: 'full', profile: 'runtime'})` - Full validation with fixes
### Level 3 - Complete (after building)
`validate_workflow(workflow)` - Connections, expressions, AI tools
### Level 4 - Post-Deployment
1. `n8n_validate_workflow({id})` - Validate deployed workflow
2. `n8n_autofix_workflow({id})` - Auto-fix common errors
3. `n8n_executions({action: 'list'})` - Monitor execution status
## Response Format
### Initial Creation
```
[Silent tool execution in parallel]
Created workflow:
- Webhook trigger → Slack notification
- Configured: POST /webhook → #general channel
Validation: All checks passed
```
### Modifications
```
[Silent tool execution]
Updated workflow:
- Added error handling to HTTP node
- Fixed required Slack parameters
Changes validated successfully.
```
## Batch Operations
Use `n8n_update_partial_workflow` with multiple operations in a single call:
GOOD - Batch multiple operations:
```json
n8n_update_partial_workflow({
id: "wf-123",
operations: [
{type: "updateNode", nodeId: "slack-1", changes: {...}},
{type: "updateNode", nodeId: "http-1", changes: {...}},
{type: "cleanStaleConnections"}
]
})
```
BAD - Separate calls:
```json
n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})
n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})
```
### CRITICAL: addConnection Syntax
The `addConnection` operation requires **four separate string parameters**. Common mistakes cause misleading errors.
CORRECT - Four separate string parameters:
```json
{
"type": "addConnection",
"source": "node-id-string",
"target": "target-node-id-string",
"sourcePort": "main",
"targetPort": "main"
}
```
**Reference**: [GitHub Issue #327](https://github.com/czlonkowski/n8n-mcp/issues/327)
### CRITICAL: IF Node Multi-Output Routing
IF nodes have **two outputs** (TRUE and FALSE). Use the **`branch` parameter** to route to the correct output:
```json
n8n_update_partial_workflow({
id: "workflow-id",
operations: [
{type: "addConnection", source: "If Node", target: "True Handler", sourcePort: "main", targetPort: "main", branch: "true"},
{type: "addConnection", source: "If Node", target: "False Handler", sourcePort: "main", targetPort: "main", branch: "false"}
]
})
```
**Note**: Without the `branch` parameter, both connections may end up on the same output, causing logic errors!
### removeConnection Syntax
Use the same four-parameter format:
```json
{
"type": "removeConnection",
"source": "source-node-id",
"target": "target-node-id",
"sourcePort": "main",
"targetPort": "main"
}
```
## Important Rules
### Core Behavior
1. **Silent execution** - No commentary between tools
2. **Parallel by default** - Execute independent operations simultaneously
3. **Templates first** - Always check before building (2,352 available)
4. **Multi-level validation** - Quick check → Full validation → Workflow validation
5. **Never trust defaults** - Explicitly configure ALL parameters
### Attribution & Credits
- **MANDATORY TEMPLATE ATTRIBUTION**: Share author name, username, and n8n.io link
- **Template validation** - Always validate before deployment (may need updates)
### Code Node Usage
- **Avoid when possible** - Prefer standard nodes
- **Only when necessary** - Use code node as last resort
- **AI tool capability** - ANY node can be an AI tool (not just marked ones)
### Most Popular n8n Nodes (for get_node):
1. **n8n-nodes-base.code** - JavaScript/Python scripting
2. **n8n-nodes-base.httpRequest** - HTTP API calls
3. **n8n-nodes-base.webhook** - Event-driven triggers
4. **n8n-nodes-base.set** - Data transformation
5. **n8n-nodes-base.if** - Conditional routing
6. **n8n-nodes-base.manualTrigger** - Manual workflow execution
7. **n8n-nodes-base.respondToWebhook** - Webhook responses
8. **n8n-nodes-base.scheduleTrigger** - Time-based triggers
9. **@n8n/n8n-nodes-langchain.agent** - AI agents
10. **n8n-nodes-base.googleSheets** - Spreadsheet integration
11. **n8n-nodes-base.merge** - Data merging
12. **n8n-nodes-base.switch** - Multi-branch routing
13. **n8n-nodes-base.telegram** - Telegram bot integration
14. **@n8n/n8n-nodes-langchain.lmChatOpenAi** - OpenAI chat models
15. **n8n-nodes-base.splitInBatches** - Batch processing
16. **n8n-nodes-base.openAi** - OpenAI legacy node
17. **n8n-nodes-base.gmail** - Email automation
18. **n8n-nodes-base.function** - Custom functions
19. **n8n-nodes-base.stickyNote** - Workflow documentation
20. **n8n-nodes-base.executeWorkflowTrigger** - Sub-workflow calls
**Note:** LangChain nodes use the `@n8n/n8n-nodes-langchain.` prefix, core nodes use `n8n-nodes-base.`
Save these instructions in your Claude Project for optimal n8n workflow assistance with intelligent template discovery.
Available MCP Tools
Core Tools (7 tools)
tools_documentation- Get documentation for any MCP tool (START HERE!)search_nodes- Full-text search across all nodes. Usesource: 'community'|'verified'for community nodes,includeExamples: truefor configsget_node- Unified node information tool with multiple modes:Info mode (default):
detail: 'minimal'|'standard'|'full',includeExamples: trueDocs mode:
mode: 'docs'- Human-readable markdown documentationProperty search:
mode: 'search_properties',propertyQuery: 'auth'Versions:
mode: 'versions'|'compare'|'breaking'|'migrations'
validate_node- Unified node validation:mode: 'minimal'- Quick required fields check (<100ms)mode: 'full'- Comprehensive validation with profiles (minimal, runtime, ai-friendly, strict)
validate_workflow- Complete workflow validation including AI Agent validationsearch_templates- Unified template search:searchMode: 'keyword'(default) - Text search withqueryparametersearchMode: 'by_nodes'- Find templates using specificnodeTypessearchMode: 'by_task'- Curated templates for commontasktypessearchMode: 'by_metadata'- Filter bycomplexity,requiredService,targetAudience
get_template- Get complete workflow JSON (modes: nodes_only, structure, full)
n8n Management Tools (21 tools - Requires API Configuration)
These tools require N8N_API_URL and N8N_API_KEY in your configuration.
Workflow Management
n8n_create_workflow- Create new workflows with nodes and connectionsn8n_get_workflow- Unified workflow retrieval (modes: full, details, structure, minimal)n8n_update_full_workflow- Update entire workflow (complete replacement)n8n_update_partial_workflow- Update workflow using diff operationsn8n_delete_workflow- Delete workflows permanentlyn8n_list_workflows- List workflows with filtering and paginationn8n_validate_workflow- Validate workflows in n8n by IDn8n_autofix_workflow- Automatically fix common workflow errorsn8n_workflow_versions- Version history, diff and rollback over two histories:source: 'local'(the snapshots n8n-mcp takes before it changes a workflow, the default) andsource: 'native'(n8n's own workflow history, including UI edits — needsN8N_MCP_ACCESS_TOKENand the workflow's "Available in MCP" setting)n8n_deploy_template- Deploy templates from n8n.io directly to your instance with auto-fix
Node Resource Discovery
n8n_explore_node_resources- Resolve a node's dynamic dropdown (loadOptions) or resource-locator search (listSearch) values — Slack channels, Google Sheets tabs, model lists — using a real credential, so workflow configs use existing IDs instead of invented ones. RequiresN8N_MCP_ACCESS_TOKEN(see Official MCP Setup)
Execution Management
n8n_test_workflow- Run a workflow.method: 'auto'(default) triggers it over HTTP through its webhook/form/chat trigger;method: 'prepare'/'pinned'/'direct'run workflows that have no such trigger through n8n's own MCP server (needsN8N_MCP_ACCESS_TOKENand the workflow's "Available in MCP" setting)n8n_executions- Unified execution management (list, get, delete)n8n_evaluations- Run and read evaluation test runs (list runs, aggregated metrics, per-case results on n8n 2.30+; trigger and cancel on 2.32+)
Folder Management
n8n_manage_folders- Manage workflow folders (create, list, get, rename, move, delete; n8n 2.19+). Place workflows into folders vian8n_create_workflow'sparentFolderIdorn8n_update_partial_workflow'smoveToFolderoperation (n8n 2.32+)
Data Table Management
n8n_manage_datatable- Manage n8n data tables, rows and columns (list, get, create, update, delete;addColumn/deleteColumn/renameColumnchange an existing table's columns through n8n's own MCP server and needN8N_MCP_ACCESS_TOKEN)
Credential Management
n8n_manage_credentials- Manage n8n credentials (list, get, create, update, delete, getSchema)
Security & Audit
n8n_audit_instance- Security audit combining n8n's built-in audit API with deep workflow scanning
Agents
n8n_manage_agents- Manage n8n Agents (persisted assistants with a model, instructions, tools, skills, tasks, memory and channels) through n8n's instance-level MCP server. RequiresN8N_MCP_ACCESS_TOKENand n8n 2.34+ with the agents module (see Official MCP Setup). This is not the AI Agent workflow node — useget_nodefor that
System Tools
n8n_health_check- Check n8n API connectivity and features, includingofficialMcpstatus whenN8N_MCP_ACCESS_TOKENis configuredn8n_list_catalog- List instance-level projects or tags; falls back to n8n's instance-level MCP server for team projects when the Public API doesn't expose them
Read-Only Deployment
For governance-sensitive environments, use both env vars together. Fully disable tools that are write/destructive or handle sensitive data (n8n_manage_credentials and n8n_manage_datatable also offer read operations, but are removed entirely here because even reads expose sensitive material):
DISABLED_TOOLS=n8n_create_workflow,n8n_update_full_workflow,n8n_update_partial_workflow,n8n_delete_workflow,n8n_autofix_workflow,n8n_deploy_template,n8n_test_workflow,n8n_manage_credentials,n8n_manage_datatableFor tools that bundle read and write operations under one name, block only the destructive operations while keeping list and get. Use this instead of a full DISABLED_TOOLS entry where the tool's read operations are acceptable — the n8n_manage_datatable and n8n_test_workflow entries below are the alternative to removing those tools entirely as above. The example names every write operation of every tool that has one:
DISABLED_TOOL_OPERATIONS=n8n_executions:delete;n8n_test_workflow:auto,trigger,pinned,direct,expose;n8n_evaluations:run,cancel;n8n_manage_folders:create,rename,move,delete;n8n_workflow_versions:delete,rollback,prune,expose;n8n_manage_agents:create,mutate,call,publish,unpublish,revert,delete,update_integration;n8n_manage_datatable:createTable,updateTable,deleteTable,insertRows,updateRows,upsertRows,deleteRows,addColumn,deleteColumn,renameColumnTwo details are easy to miss when writing your own list. For n8n_test_workflow, all four of auto, trigger, pinned and direct run the workflow (an omitted or blank method counts as auto), leaving only the read-only prepare. And expose is not a value of any operation parameter: it is the exposeToMcp consent write of n8n_test_workflow and n8n_workflow_versions, which enables a workflow's "Available in MCP" setting. Omitting expose leaves that write reachable.
Combine with a read-only n8n API key (Settings → API in your n8n instance) for defence in depth. See Read-Only Deployment Recipe for the full setup guide.
Documentation
Self-Hosting Guide - npx, Docker, Railway, and local installation
Security & Hardening - Trust model, hardening options, workflow restrictions
n8n Deployment Guide - Production deployment with n8n
Database Configuration - SQLite adapters and memory optimization
Privacy & Telemetry - What we collect and how to opt out
Workflow Diff Operations - Token-efficient workflow updates
HTTP Deployment - Remote server setup
Official MCP Setup - Connect n8n-mcp to n8n's instance-level MCP server for Agents and node resource discovery
Change Log - Complete version history
License
MIT License - see LICENSE for details.
Contributing
See CONTRIBUTING.md for development setup, testing, and contribution guidelines.
Acknowledgments
See Acknowledgments for credits and template attribution.
💼 Need it built for you?
Work with AiAdvisors — n8n automation audits, builds, and operations, run by the author of n8n-mcp and n8n-skills.
Available Tools
28 toolsget_nodeBRead-onlyIdempotent
Get node info with progressive detail levels and multiple modes. Detail: minimal (~200 tokens), standard (~1-2K, default), full (~3-8K). Modes: info (default), docs (markdown documentation), search_properties (find properties), versions/compare/breaking/migrations (version info). Use format='docs' for readable documentation, mode='search_properties' with propertyQuery for finding specific fields.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Operation mode. info=node schema, docs=readable markdown documentation, search_properties=find specific properties, versions/compare/breaking/migrations=version info | info |
| detail | No | Information detail level. standard=essential properties (recommended), full=everything | standard |
| nodeType | Yes | Full node type: "nodes-base.httpRequest" or "nodes-langchain.agent" | |
| toVersion | No | Target version for compare mode (e.g., "2.0"). Defaults to latest if omitted. | |
| fromVersion | No | Source version for compare/breaking/migrations modes (e.g., "1.0") | |
| propertyQuery | No | For mode=search_properties: search term to find properties (e.g., "auth", "header", "body") | |
| includeExamples | No | Include real-world configuration examples from templates. Only applies to mode=info with detail=standard. Adds ~200-400 tokens per example. | |
| includeTypeInfo | No | Include type structure metadata (type category, JS type, validation rules). Only applies to mode=info. Adds ~80-120 tokens per property. | |
| maxPropertyResults | No | For mode=search_properties: max results (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations (readOnlyHint, idempotentHint) by disclosing token estimates for each detail level (minimal ~200 tokens, standard ~1-2K, full ~3-8K) and stating that modes return different content (e.g., docs = markdown documentation). No contradiction with annotations is present, and the extra context helps an agent anticipate response size and content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main purpose and then listing details. Every sentence contributes useful information. The minor error ('format' vs 'mode') detracts slightly but the structure is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, multiple modes), the description covers the main modes and detail levels but omits explanations of version-related modes (versions, compare, breaking, migrations) and parameters like includeExamples, includeTypeInfo, maxPropertyResults, toVersion, fromVersion. The schema covers these, but the description could provide more high-level guidance for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and includes detailed parameter descriptions. The description adds token counts for detail levels and groups modes concisely, but also repeats information already in the schema. The confusing 'format' reference slightly reduces clarity. Overall, the description provides marginal extra value over the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets node info with progressive detail levels and multiple modes, making the purpose well-defined. However, it introduces an inconsistency by saying 'Use format='docs'' when the parameter is actually named 'mode', which could confuse an agent. Still, the overall purpose is distinct from siblings like search_nodes or tools_documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description fails to provide explicit guidance on when to use this tool versus sibling tools (e.g., tools_documentation, search_nodes). It does not mention when-not to use it or suggest alternatives. The information on modes and detail levels helps with intra-tool choices but not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateARead-onlyIdempotent
Get template by ID. Use mode to control response size: nodes_only (minimal), structure (nodes+connections), full (complete workflow).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Response detail level. nodes_only: just node list, structure: nodes+connections, full: complete workflow JSON. | full |
| templateId | Yes | The template ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations by explaining the mode parameter's effect on response size, which the annotations (readOnlyHint and idempotentHint) do not cover. It does not contradict the annotations; rather, it complements them. The behavior of controlling output detail is clearly described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that front-load the purpose and then explain the mode parameter. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema, no nested objects), the description is sufficiently complete. It covers the core retrieval purpose and the key parameter. However, it could optionally mention that the output is a workflow template JSON, but since mode 'full' implies 'complete workflow', it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema—it only summarizes the mode options briefly ('nodes_only (minimal), structure (nodes+connections), full (complete workflow)') but does not provide additional context about templateId beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'template by ID'. It succinctly distinguishes the tool from siblings like search_templates by specifying retrieval via ID, and it also describes the mode parameter that tailors the response size, which is a key differentiator from other retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for when to use this tool (when you have a template ID) and how to adjust the response size using mode. However, it does not explicitly state when not to use it or provide alternatives, though the sibling tool names (e.g., search_templates) imply that this is for direct ID lookup, not searching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_audit_instanceARead-onlyIdempotent
Security audit of n8n instance. Combines n8n's built-in audit API (credentials, database, nodes, instance, filesystem risks) with deep workflow scanning (hardcoded secrets via 50+ regex patterns, unauthenticated webhooks, error handling gaps, data retention risks). Returns actionable markdown report with remediation steps using n8n_manage_credentials and n8n_update_partial_workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| categories | No | Built-in audit categories to check (default: all 5) | |
| customChecks | No | Specific custom checks to run (default: all 4) | |
| includeCustomScan | No | Run deep workflow scanning for secrets, webhooks, error handling (default: true) | |
| daysAbandonedWorkflow | No | Days threshold for abandoned workflow detection (default: 90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds value by explaining it returns a markdown report with remediation steps and combines built-in API with deep scanning, but does not reveal further behavioral traits like rate limits or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences: purpose, what it combines, and output format with remediation. No redundant information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description explains return format (markdown report with remediation steps) and mentions how to use results with sibling tools. Covers all key aspects for an audit tool with comprehensive annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. Description reinforces the distinction between built-in categories and custom checks, adding meaning beyond enum values by explaining they correspond to 'built-in audit API' and 'deep workflow scanning' respectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies it's a security audit tool for n8n instance. Distinguishes from siblings by combining built-in audit API categories with deep workflow scanning, and mentions output as actionable markdown report with remediation steps referencing sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States what the tool does and what it checks, implying use for security auditing. References sibling tools for remediation but lacks explicit when-to-use vs alternatives or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_autofix_workflowAIdempotent
Automatically fix common workflow validation errors. Preview fixes or apply them. Fixes expression format, typeVersion, error output config, webhook paths, connection structure issues (numeric keys, invalid types, ID-to-name, duplicates, out-of-bounds indices).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID to fix | |
| fixTypes | No | Types of fixes to apply (default: all) | |
| maxFixes | No | Maximum number of fixes to apply (default: 50) | |
| applyFixes | No | Apply fixes to workflow (default: false - preview mode) | |
| confidenceThreshold | No | Minimum confidence level for fixes (default: medium) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, consistent with a non-destructive fixer. The description adds that fixes can be previewed or applied, and lists specific issue types. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the action and purpose in a single short paragraph. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does and lists fix types, but does not describe the output format or return value. Given no output schema, this is a gap for agents needing to parse results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description lists fixTypes but does not add significant meaning beyond the enum values. Parameters are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool automatically fixes common workflow validation errors, with explicit examples of fix types (expression format, typeVersion, etc.). It distinguishes from sibling tools like validate_workflow by mentioning both preview and apply modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fixing validation errors but does not provide explicit when-to-use vs when-not-to-use guidance or compare with alternatives like manual updates via n8n_update_*. No exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_create_workflowA
Create workflow. Requires: name, nodes[], connections{}. Created inactive. Returns workflow with ID.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workflow name (required) | |
| nodes | Yes | Array of workflow nodes. Each node must have: id, name, type, typeVersion, position, and parameters | |
| settings | No | Optional workflow settings (execution order, timezone, error handling). Any other key the n8n Public API accepts is forwarded as well, e.g. availableInMCP (expose the workflow to n8n's instance-level MCP server), callerPolicy, callerIds. | |
| projectId | No | Optional project ID to create the workflow in (enterprise feature) | |
| nodeGroups | No | Optional canvas groups (n8n 2.28+): named frames around a connected run of non-trigger nodes. Members are node IDs from nodes[]. Dropped automatically on older n8n. | |
| connections | Yes | Workflow connections object. Keys are source node names (the name field, not id), values define output connections | |
| parentFolderId | No | Optional folder ID to place the workflow in (n8n 2.32+). Omit for the project root. Find or create folders with n8n_manage_folders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description meaningfully supplements the annotations: it states the workflow is created inactive, requires the three core fields up front so an agent won't attempt degenerate calls, and notes the ID is returned. It also preserves schema nuances like nodeGroups being dropped on older versions in the schema itself. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is terse and front-loaded: the verb, the object, and the essential requirements appear in the opening sentence, with the outcome (inactive, gets ID) in a single follow-up. Every sentence earns its place; no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create action with a rich input schema and clear annotations, the description plus schema fully cover what an agent needs: required fields, optional settings, folder placement, enterprise projectId, behavior (inactive), return value, and version-specific caveats like nodeGroups and parentFolderId. No output schema is present, but the description explicitly states the returned workflow includes an ID, which is sufficient for a create call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself mostly recaps the required names, while the schema already explains nodes, settings, projectId, nodeGroups, parentFolderId, and connections. The only added context is 'Created inactive' and the return of the workflow ID. The schema does the heavy lifting, so no more than a 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Create workflow') and enumerates requirements, which distinguishes it from update/delete/list siblings. It lacks an explicit differentiator naming which sibling to use instead, but the action is unambiguous enough for an agent to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: when creating a new workflow, and the schema clarifies required fields. It doesn't explicitly contrast with n8n_update_full_workflow or n8n_update_partial_workflow, nor mention validation steps like validate_workflow. Context is present but exclusions/alternatives are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_delete_workflowADestructive
Permanently delete a workflow. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the destructive hint from annotations by stating 'cannot be undone', but adds no new behavioral details beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, no superfluous information, and the key point is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one parameter and annotations covering destructiveness, the description is adequate; however, it does not specify return value or confirmation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no extra meaning to the single parameter (id) beyond its schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete) and the resource (workflow), distinguishing it from sibling tools like creation or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no conditions or prerequisites mentioned, and no indication of when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_deploy_templateA
Deploy a workflow template from n8n.io directly to your n8n instance. Deploys first, then auto-fixes common issues (expression format, typeVersions). Returns workflow ID, required credentials, and fixes applied.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Custom workflow name (default: template name) | |
| autoFix | No | Auto-apply fixes after deployment for expression format issues, missing = prefix, etc. (default: true) | |
| templateId | Yes | Template ID from n8n.io (required) | |
| stripCredentials | No | Remove credential references from nodes - user configures in n8n UI (default: true) | |
| autoUpgradeVersions | No | Automatically upgrade node typeVersions to latest supported (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it's not read-only and not destructive. The description adds behavioral details: auto-fixes common issues, returns workflow ID, credentials, and fixes applied. This goes beyond annotations, providing actionable transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose and followed by key details. Every word earns its place, with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no nested objects, the description is fairly complete. It explains the deployment workflow and return values. Could include more about auto-fix triggers, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in the schema. The description adds context about the deployment process but does not elaborate on parameter semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deploys a workflow template from n8n.io to the instance, using a specific verb and resource. It distinguishes from siblings like n8n_create_workflow and n8n_autofix_workflow by its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (deploying from the library) but does not explicitly state when to use this tool versus alternatives like n8n_create_workflow or search_templates. However, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_evaluationsADestructive
Run and read evaluation test runs for a workflow. Reading requires n8n >= 2.30, run/cancel require n8n >= 2.32, and the API key must be created on the matching release to carry the testRun scopes; run/cancel also need the key owner to hold workflow:execute on the workflow. Actions: list_runs=list runs for a workflow, get_run=single run with aggregated metrics, list_cases=per-case results (paginate - cases can be large), run=trigger a run on a workflow with an evaluation trigger, cancel=stop a running run.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (1-250). Defaults: n8n server default (100) for list_runs, 20 for list_cases (per-case inputs/outputs can be large) | |
| runId | No | Test run ID (required for action=get_run, list_cases, or cancel) | |
| action | Yes | Operation: list_runs=list test runs, get_run=run details with metrics, list_cases=per-case results, run=trigger a run, cancel=stop a running run | |
| cursor | No | Pagination cursor from previous response | |
| status | No | For action=list_runs: filter by run status | |
| workflowId | Yes | Workflow ID the test runs belong to (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description discloses version gating, API key scope requirements, the need for workflow:execute permission, and a performance warning for list_cases ('paginate - cases can be large'). It also explains what cancel does ('stop a running run'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with a clear summary and then requirements and an action list. Every sentence carries substantive information (prerequisites, action semantics, pagination warning) with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains key return concepts: 'aggregated metrics' for get_run, 'per-case results' for list_cases, and 'list runs for a workflow' for list_runs. It also covers prerequisites, action semantics, and pagination guidance. This is complete for a multi-action tool with six parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining run requires an evaluation trigger, get_run returns aggregated metrics, and list_cases can be large and needs pagination, which enriches the meaning of the action parameter and relates to limit/cursor. It does not cover all parameters, but it goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Run and read evaluation test runs for a workflow,' which is a specific verb+resource statement. It clearly distinguishes this tool from siblings like n8n_executions and n8n_test_workflow by focusing on 'evaluation' test runs, and then enumerates the five actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for when the tool can be used, including version requirements (n8n >= 2.30 for reading, >= 2.32 for run/cancel) and permission requirements (API key scope, workflow:execute). It does not name alternative tools for exclusion, but the 'evaluation' qualifier and action list make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_executionsADestructive
Manage workflow executions: get details, list, or delete. Use action='get' with id for execution details, action='list' (the default) for listing executions, action='delete' to remove execution record.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Execution ID. Required for action=delete; for action=get, omitting it lists executions instead | |
| mode | No | For action=get: preview=structure only, summary=2 items (default), filtered=custom, full=all data, error=optimized error debugging | |
| limit | No | For action=list: number of executions to return (1-100, default: 100) | |
| action | No | Operation: get=get execution details, list=list executions (default), delete=delete execution | list |
| cursor | No | For action=list: pagination cursor from previous response | |
| status | No | For action=list: filter by execution status | |
| nodeNames | No | For action=get with mode=filtered: filter to specific nodes by name | |
| projectId | No | For action=list: filter by project ID (enterprise feature) | |
| itemsLimit | No | For action=get with mode=filtered: items per node (0=structure, 2=default, -1=unlimited) | |
| workflowId | No | For action=list: filter by workflow ID | |
| includeData | No | For action=list: include execution data (default: false) | |
| fetchWorkflow | No | For action=get with mode=error: fetch workflow for accurate upstream detection (default: true) | |
| errorItemsLimit | No | For action=get with mode=error: sample items from upstream node (default: 2, max: 100) | |
| includeInputData | No | For action=get: include input data in addition to output (default: false) | |
| includeStackTrace | No | For action=get with mode=error: include full stack trace (default: false, shows truncated) | |
| includeExecutionPath | No | For action=get with mode=error: include execution path leading to error (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior and non-read-only status. The description adds value by specifying that delete 'removes the execution record' and clarifying the get/list/delete semantics. It does not contradict annotations, though it could further explain consequences like irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences front-load the core purpose and then give the primary action routing. Every sentence earns its place without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and the tool's moderate complexity, the description is largely complete. It could add a note about response shape or mention that the delete action is irreversible, but the schema supplies the major parameter details and the description covers action selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 16 parameters have thorough descriptions in the schema, including enum values and per-action meaning, so the baseline is 3. The tool description itself does not add parameter-level detail beyond the action mapping, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (workflow executions) and enumerates the supported operations: get details, list, and delete. It also maps each action to its purpose, making the tool's scope unambiguous and distinct from sibling workflow management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use each action, including the default action and the role of 'id'. It does not explicitly compare against sibling tools or state when not to use this tool, but the action-level routing is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_explore_node_resourcesARead-only
Resolve the real options behind a node's dynamic dropdown (loadOptions) or resource-locator search (listSearch) using one of the instance's credentials — Slack channels, Google Sheets tabs, model lists — so workflow configs use existing IDs instead of invented ones. Requires N8N_MCP_ACCESS_TOKEN. Find methodName/methodType in get_node output (dynamicOptions on a property) and the credentialId with n8n_manage_credentials list.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Search text (listSearch only) | |
| version | Yes | Node typeVersion | |
| nodeType | Yes | Full node type, e.g. n8n-nodes-base.slack | |
| timeoutMs | No | Request timeout in ms (default 30000) | |
| methodName | Yes | loadOptionsMethod or searchListMethod name from the property definition | |
| methodType | Yes | ||
| credentialId | Yes | ID of an existing credential of that type | |
| credentialType | Yes | Credential type the node uses, e.g. slackApi | |
| paginationToken | No | Token from a previous page (listSearch only) | |
| currentNodeParameters | No | Parameters the method depends on (loadOptionsDependsOn), e.g. {documentId: {...}} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful behavioral context beyond this by noting that it uses an instance credential, that it requires N8N_MCP_ACCESS_TOKEN, and that it calls live resource resolution rather than returning static definitions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense, purposeful sentences. It front-loads the core action and examples, then immediately gives prerequisite lookup instructions. There is no filler or redundant repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema), the description is quite complete: it names the credential requirement, the two resolution modes, and the source tools for required parameters. It could go slightly further by describing the response shape (label/value items) and pagination behavior, but the schema covers paginationToken and the purpose is unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is around 90%, so the schema carries most paramater meanings. The description adds value by explaining where to find methodName/methodType and credentialId, and by connecting currentNodeParameters to loadOptionsDependsOn with an example. This goes beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific verb and resource: 'Resolve the real options behind a node's dynamic dropdown (loadOptions) or resource-locator search (listSearch)'. It distinguishes itself from get_node by explaining that this tool resolves live options rather than returning the node definition, and gives concrete examples including Slack channels and Google Sheets tabs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly conveys when to use the tool (when workflow configs need real IDs behind dynamic dropdowns/listSearch) and tells the agent where to obtain prerequisites: methodName/methodType from get_node output and credentialId from n8n_manage_credentials list. However, it doesn't explicitly state when-not-to-use or compare against alternative tools beyond these references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_get_workflowARead-onlyIdempotent
Get workflow by ID with different detail levels. n8n has a draft/publish model: the workflow body holds the draft (latest edits); use mode='active' to see the published graph that is actually running. Modes: 'full' (draft + metadata), 'details' (full + execution stats), 'active' (published graph only), 'structure' (nodes/connections topology), 'filtered' (full config of only the nodes named in nodeNames - use to read one heavy node without the whole workflow), 'minimal' (id/name/active/tags).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID | |
| mode | No | Detail level: full=draft + metadata (activeVersionId pointer kept, heavy activeVersion payload stripped), details=full+execution stats, active=published graph (errors if workflow has no live version), structure=nodes/connections topology, filtered=full config of only the nodes listed in nodeNames, minimal=metadata only | full |
| nodeNames | No | For mode='filtered': node names or node IDs to return with full config. Returns only matching nodes (avoids client-side truncation on large workflows with long Code-node source). Discover names with mode='structure' first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint. The description adds valuable context: explains the n8n draft/publish model, what each mode returns, and that active mode requires a live version. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with no wasted sentences. It is well-organized, starting with the core purpose, then explaining the draft/publish model, then listing modes compactly. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple modes, draft/publish model), the description covers key aspects. It explains what each mode returns, though a brief example of the output structure would enhance completeness. No output schema exists, but the description adequately hints at return types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so baseline is 3. The description adds meaning beyond schema: explains the draft/publish model, clarifies that mode='active' returns published graph, and suggests using mode='structure' first to discover node names for mode='filtered'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get workflow by ID with different detail levels.' It specifies the verb (Get), resource (workflow), and the key differentiator (different detail levels). This distinguishes it from sibling tools like get_node or get_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for each mode (e.g., 'use mode='active' to see the published graph', 'use mode='filtered' to read one heavy node'). It also warns that mode='active' errors if no live version. It could be improved with a more explicit 'use this when... and not when...' but is still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_health_checkARead-onlyIdempotent
Check n8n instance health and API connectivity. Use mode='diagnostic' for detailed troubleshooting with env vars and tool status.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Mode: "status" (default) for quick health check, "diagnostic" for detailed debug info including env vars and tool status | status |
| verbose | No | Include extra details in diagnostic mode (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint. The description adds behavioral context by specifying the tool checks health and API connectivity, and explains the two modes (status vs diagnostic). It does not contradict annotations and provides useful operational insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and every word adds value. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the two modes and hints at output (health info, env vars, tool status). However, without an output schema, more explicit detail on return structure would improve completeness. Still, it covers the essential context for a simple health check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are described in the schema. The description adds a use-case hint ('Use mode='diagnostic' for detailed troubleshooting'), which slightly adds value, but does not significantly extend beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Check n8n instance health and API connectivity', which is a specific verb+resource combination. It clearly distinguishes from sibling tools that focus on workflows, nodes, templates, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using mode='diagnostic' for detailed troubleshooting, providing clear context on when to use each mode. While it does not explicitly mention alternatives, no other sibling tool serves the health check purpose, so this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_list_catalogARead-only
List instance-level catalog entries: projects (with the personal project marked, needed as projectId for agents and data tables) or tags. Reads the Public API first; when team projects are not licensed there, falls back to n8n's MCP server if N8N_MCP_ACCESS_TOKEN is set.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| limit | No | ||
| query | No | Case-insensitive name filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral detail beyond these: it reads the Public API first and falls back to n8n's MCP server only when team projects are not licensed and N8N_MCP_ACCESS_TOKEN is set. This documents an important environment-dependent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main action and scope are front-loaded, and the second sentence provides the fallback behavior without unnecessary wording. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with three simple parameters, annotations covering safety, and no output schema, the description is complete. It covers what is listed, why projects matter, and the auth/fallback path an agent needs to anticipate. An agent can correctly select and invoke this tool with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate. It does add useful semantics for 'kind' by explaining that projects include the personal project marker and are needed as projectId for agents/data tables. The 'query' parameter is already described in the schema, and 'limit' has clear bounds. This is partial but adequate compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('instance-level catalog entries'), then enumerates exactly what is returned: projects or tags. It also clarifies why projects are useful ('needed as projectId for agents and data tables'), distinguishing this from siblings like n8n_list_workflows or n8n_manage_datatable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to obtain project IDs or tags at the instance level. It does not explicitly name an alternative tool or state when not to use it, but the 'instance-level' scope and projectId use case provide enough guidance for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_list_workflowsARead-onlyIdempotent
List workflows (minimal metadata only). Returns id/name/active/dates/tags. Check hasMore/nextCursor for pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by tags (exact match) | |
| limit | No | Number of workflows to return (1-100, default: 100) | |
| active | No | Filter by active status | |
| cursor | No | Pagination cursor from previous response | |
| projectId | No | Filter by project ID (enterprise feature) | |
| excludePinnedData | No | Exclude pinned data from response (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds value by clarifying the minimal metadata return and pagination behavior (hasMore/nextCursor). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main purpose. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description fully covers return fields, pagination, and metadata scope. No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The description does not add new parameter details beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists workflows with minimal metadata, specifies returned fields (id/name/active/dates/tags), and mentions pagination. This distinguishes it from sibling tools like n8n_get_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing workflows with limited data and pagination, but does not explicitly state when to avoid or use alternatives. The mention of minimal metadata helps agents infer appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_manage_agentsADestructive
Manage n8n Agents (persisted assistants with a model, instructions, tools, skills, tasks, memory and channels) through n8n's instance-level MCP server. Requires N8N_MCP_ACCESS_TOKEN (MCP API key from n8n Settings → Instance-level MCP) and n8n >= 2.34 with the agents module. Actions: reference, search, get, create, mutate, validate, call, publish, unpublish, revert, versions, delete, discover_assets, verify_mcp_server, update_integration. Start with action=reference (config shape and mutate operations), then discover_assets → create → mutate (one resource at a time, always with the latest configHash) → validate. publish only when the user explicitly asks. call runs the agent with real credentials and tools and may return approvals[] that need a human decision — never approve on the user's behalf. This is not the AI Agent workflow node; use get_node for that.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments for the action, forwarded to n8n verbatim. See tools_documentation("n8n_manage_agents", "full") for the per-action fields. | |
| action | Yes | Operation to perform | |
| timeoutMs | No | Request timeout in ms. Default 30000; 180000 for action=call. The agent run continues in n8n even if this expires. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and open-world, but the description adds crucial context: required N8N_MCP_ACCESS_TOKEN, n8n >= 2.34, real credentials and tools for call, and the approvals[] human-decision requirement. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with purpose and prerequisities, followed by action list, workflow, and safety caveats. The action enum is partially redundant with the schema, but each sentence contributes actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 15 actions and no output schema, it covers auth, version requirements, invocation order, destructive and publish caveats, call behavior, and sibling differentiation. The instruction to start with reference makes the tool effectively self-documenting for remaining details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value by explaining action semantics (e.g., 'call runs the agent with real credentials', 'always with the latest configHash'). However, per-action args are deferred to tools_documentation, so it doesn't fully document all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Manage n8n Agents' and clarifies what an Agent is. It explicitly distinguishes itself from the AI Agent workflow node with 'This is not the AI Agent workflow node; use get_node for that.' This makes sibling differentiation clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit recommended sequence: reference → discover_assets → create → mutate → validate. Also gives conditional guidance such as 'publish only when the user explicitly asks' and warns against approving approvals[] on the user's behalf, plus an explicit alternative for the AI Agent node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_manage_credentialsA
Manage n8n credentials. Actions: list, get, create, update, delete, getSchema. Use getSchema to discover required fields before creating. For list, page beyond 100 results with cursor (from the previous response's nextCursor). NOTE: list/get need an n8n deployment whose public API permits credential reads — older n8n versions, restricted API keys, or instance settings can reject them, returning NOT_SUPPORTED (create, delete, getSchema — and update where the API version supports it — still work). SECURITY: credential data values are never logged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Credential ID (required for get, update, delete) | |
| data | No | Credential data fields - use getSchema to discover required fields (required for create, optional for update) | |
| name | No | Credential name (required for create) | |
| type | No | Credential type e.g. httpHeaderAuth, httpBasicAuth, oAuth2Api (required for create, getSchema) | |
| limit | No | For list: max results per page (1-100, default 100). Ignored when includeUsage is true. | |
| action | Yes | Action to perform | |
| cursor | No | For list: pagination cursor from a previous response's nextCursor. Ignored when includeUsage is true. | |
| includeUsage | No | For list/get: also return workflows that reference each credential (id, name, active). On list, triggers a full scan of all credential pages (up to 5000 credentials; ignores cursor/limit, no nextCursor returned). Slower on large instances. Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description includes delete action, which is destructive, but annotations set destructiveHint: false. This contradiction undermines transparency. However, the description itself is otherwise detailed about behaviors like NOT_SUPPORTED errors and security logging.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph with key info front-loaded. Somewhat dense but efficient for the complexity. Could benefit from bullet points but still readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage guidelines, edge cases (NOT_SUPPORTED), pagination, security, and parameter interactions. Lacks output format details but no output schema exists. Adequately complete for a multi-action tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, yet description adds significant value: explains cursor origin, includeUsage behavior (full scan, ignores limits), getSchema for data fields. This goes well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages n8n credentials and lists all actions (list, get, create, update, delete, getSchema). It differentiates from sibling tools which handle templates, health, workflows, etc., making the purpose distinct and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use getSchema before create, pagination with cursor for list, and notes on deployment compatibility affecting list/get. Does not explicitly state when not to use the tool, but contextual hints are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_manage_datatableADestructive
Manage n8n data tables, rows and columns. Actions: createTable, listTables, getTable, updateTable, deleteTable, getRows, insertRows, updateRows, upsertRows, deleteRows, addColumn, deleteColumn, renameColumn. The column actions run through n8n's own MCP server (N8N_MCP_ACCESS_TOKEN, n8n 2.34+) because the public API cannot change a table's columns after creation; everything else uses the public API.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | For insertRows: array of row objects. For updateRows/upsertRows: object with column values. | |
| name | No | For createTable: table name. For updateTable: new table name. For renameColumn: new column name. | |
| limit | No | For listTables/getRows: max results (1-100) | |
| action | Yes | Operation to perform. addColumn/deleteColumn/renameColumn need N8N_MCP_ACCESS_TOKEN. | |
| column | No | For addColumn: the column to add. Name must start with a letter, contain only letters, digits and underscores, and be at most 63 characters. | |
| cursor | No | For listTables/getRows: pagination cursor | |
| dryRun | No | For updateRows/upsertRows/deleteRows: preview without applying (default: false) | |
| filter | No | For getRows/updateRows/upsertRows/deleteRows: {type?: "and"|"or", filters: [{columnName, condition, value}]} | |
| search | No | For getRows: text search across string columns | |
| sortBy | No | For getRows: "columnName:asc" or "columnName:desc" | |
| columns | No | For createTable (required, at least one): column definitions. Change columns later with addColumn/deleteColumn/renameColumn. | |
| tableId | No | Data table ID (required for all actions except createTable and listTables) | |
| columnId | No | For deleteColumn/renameColumn: ID of the column (from getTable). | |
| projectId | No | For createTable: project ID to create the table in. If omitted, uses the default project. For the column actions: the project owning the table - resolved automatically when the instance has exactly one accessible project, otherwise required (the error lists the candidates). | |
| timeoutMs | No | For the column actions: client timeout in ms (5000-600000, default 30000). | |
| returnData | No | For updateRows/upsertRows/deleteRows: return affected rows (default: false) | |
| returnType | No | For insertRows: what to return (default: count) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavioral context: the public API cannot change table columns after creation, so those operations are routed through n8n's own MCP server with a token and version requirement. This gives the agent useful constraints beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the scope, lists all actions, then explains the key API split. The action list is long but necessary for a multi-action tool, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-action, 17-parameter tool, the description is adequate at an overview level and the schema fills in parameter details. However, with no output schema, it does not explain return formats, error behavior, or broader usage boundaries, so the agent still has to infer several operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with every parameter already documented in the input schema. The description itself adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('n8n data tables, rows and columns') and enumerates 13 concrete actions, so an agent can see this is a broad CRUD hub for data tables. 'Manage' is generic, but the action list and resource make the purpose clear and distinguish it from sibling tools like n8n_manage_folders or n8n_manage_credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an important internal routing rule: column actions require N8N_MCP_ACCESS_TOKEN and n8n 2.34+, while all other actions use the public API. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it, leaving usage mostly implicit in the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_manage_foldersADestructive
Manage workflow folders (n8n 2.19+; folders need a registered Community instance or higher). Actions: create, list, get, rename, move, delete. projectId defaults to 'personal' (the calling user's personal project). Place workflows into folders via n8n_create_workflow's parentFolderId or the moveToFolder operation of n8n_update_partial_workflow (both n8n 2.32+). Note: n8n's API cannot report which folder a workflow is in - folder contents are visible only as counts.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | For create: folder name (required). For rename: new name (required). | |
| skip | No | For list: items to skip for pagination (default 0) | |
| take | No | For list: items to return (default 50, max 100) | |
| action | Yes | Operation: create=new folder, list=folders in a project (with workflow/subfolder counts), get=folder details with recursive totals, rename=change name, move=re-parent under another folder or the project root, delete=remove folder | |
| sortBy | No | For list: sort order (default: updatedAt:desc) | |
| folderId | No | Folder ID (required for get, rename, move, delete) | |
| projectId | No | Project containing the folder(s). Defaults to 'personal' - resolved to the calling user's personal project. Pass a real project ID on multi-project (enterprise) instances. | |
| nameFilter | No | For list: filter folders by name (contains match) | |
| parentFolderId | No | For create: optional parent folder to nest under. For move: target parent folder ID, or null to move to the project root (required). For list: only return direct children of this folder. | |
| transferToFolderId | No | For delete: move contained workflows and sub-folders into this folder first ('0' = project root). If omitted, workflows are moved to the project root AND ARCHIVED, and sub-folders are deleted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint=true) and non-read-only. The description adds n8n version requirements, the projectId default to 'personal', and the critical limitation that folder contents are only visible as counts. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four information-dense sentences, front-loaded with purpose and version requirements. Every sentence adds value and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 10-parameter tool with no output schema, the description plus schema covers actions, requirements, defaults, cross-tool relationships, and a key API limitation. Minor omissions like error handling or permission requirements are not critical given the schema's richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The description repeats the projectId default and mentions parentFolderId in other tools, but adds no new parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages workflow folders and enumerates six specific actions (create, list, get, rename, move, delete). The note that the API cannot report which folder a workflow is in further distinguishes this tool's scope from sibling workflow-management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs workflow-folder placement to n8n_create_workflow and n8n_update_partial_workflow, clarifying the boundary between folder management and workflow-to-folder association. It also gives version/instance requirements and warns about the API limitation, providing strong context. It could be more explicit about 'when not to use' but the guidance is solid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_test_workflowADestructive
Run a workflow. method=auto (default) triggers it over HTTP through its webhook/form/chat trigger. Workflows without such a trigger need n8n's MCP server: method=prepare lists the nodes that need pinned data, method=pinned runs the workflow with that data, method=direct starts a run with optional inputs. The official methods need N8N_MCP_ACCESS_TOKEN and the workflow's "Available in MCP" setting (exposeToMcp: true enables it after you confirm with the user).
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Input data/payload for webhook, form fields, or execution data | |
| method | No | How to run it. auto (default): trigger over HTTP when the workflow has a webhook/form/chat trigger, otherwise report that it cannot be triggered - auto never runs through n8n's MCP server. trigger: force the HTTP path. prepare: list the nodes needing pinned data (read-only). pinned: run with pinData through n8n's MCP server. direct: start a run through n8n's MCP server, with optional inputs. | |
| headers | No | Custom HTTP headers | |
| message | No | For chat: message to send (required for chat triggers) | |
| pinData | No | For method=pinned (required, non-empty): pinned trigger data keyed by node name. Each value is an array of ITEMS, and every item must be wrapped as { "json": { ... } } - e.g. {"Webhook": [{"json": {"id": "123"}}]}, never a flat object. Get the node list from method=prepare. | |
| timeout | No | Timeout in ms (default: 120000). HTTP trigger path only (method auto/trigger) — the official methods (prepare/pinned/direct) use timeoutMs instead. | |
| sessionId | No | For chat: session ID for conversation continuity | |
| timeoutMs | No | Client-side deadline for the official call (default: 30000 for prepare, 300000 for pinned/direct) | |
| httpMethod | No | For webhook: HTTP method (default: from workflow config or POST) | |
| workflowId | Yes | Workflow ID to execute (required) | |
| exposeToMcp | No | For the official methods: enable the workflow's persistent "Available in MCP" setting when n8n refuses the call. Confirm with the user first. | |
| triggerType | No | Trigger type. Auto-detected if not specified. Workflow must have a matching trigger node. | |
| webhookPath | No | For webhook: override the webhook path | |
| executionMode | No | For method=direct: manual (default) runs it as a manual execution; production runs it through the production execution path. Both execute the workflow's nodes for real - this only changes the execution context. Never chosen implicitly. | |
| triggerNodeName | No | For method=pinned/direct: which trigger node to start from. Defaults to the detected trigger node. Required by n8n when inputs are given. | |
| waitForResponse | No | Wait for workflow completion (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only flag non-read-only, open-world, and potentially destructive behavior; the description adds the auth prerequisite (N8N_MCP_ACCESS_TOKEN), the side effect of toggling the persistent 'Available in MCP' setting with explicit user confirmation, the read-only nature of prepare, and the failure mode where auto reports that it cannot be triggered. No contradiction with annotations — the per-method read-only qualifier is consistent with a whole-tool destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences carry the whole method model, the default behavior, and the auth prerequisite, front-loading 'Run a workflow' and method=auto. The middle sentence is dense with three methods packed into one clause, but for a 16-param, 5-method tool every clause earns its place and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool this complex, the description plus a 100%-covered schema resolve almost every invocation decision: method selection, auth, prerequisites, and side-effect confirmation are all present. The notable gap is return-value semantics — with no output schema, the agent never learns what a run returns (execution ID? result data? error shape?), which matters when a workflow run starts a chained task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter already carries a precise semantic description, including pinData's wrapping rule, the timeout vs timeoutMs scoping, and executionMode's 'never chosen implicitly' caveat. The description adds the connecting glue — the method model and auth context — but the schema does the heavy lifting, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Run a workflow' pairs a specific verb with a clear resource and is immediately differentiated from the 28 siblings (create/get/update/delete/list workflows). The method breakdown makes explicit that this tool executes, never manages, workflow definitions, and the trigger/HTTP vs MCP-server distinction removes ambiguity about what 'run' means here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing logic: workflows with webhook/form/chat triggers use auto/trigger over HTTP, while triggerless workflows require prepare/pinned/direct through n8n's MCP server. It also states the fallback behavior (use exposeToMcp when n8n refuses) and the prepare-first requirement before pinned. It doesn't name exclusion conditions against sibling tools, but within the tool the when-to-use decision is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_update_full_workflowAIdempotent
Full workflow update. Requires complete nodes[] and connections{}. For incremental use n8n_update_partial_workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID to update | |
| name | No | New workflow name | |
| nodes | No | Complete array of workflow nodes (required if modifying workflow structure) | |
| settings | No | Workflow settings to update | |
| nodeGroups | No | Canvas groups (n8n 2.28+). Omit to keep the existing groups; pass [] to ungroup everything. Members are node IDs. | |
| connections | No | Complete connections object (required if modifying workflow structure) | |
| parentFolderId | No | Move the workflow into this folder (n8n 2.32+): folder ID = move there, null = move to project root, omit = leave the current folder unchanged. For a move without other changes prefer the moveToFolder operation of n8n_update_partial_workflow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a full replacement behavior by requiring complete nodes and connections, which adds some context beyond annotations. However, it does not elaborate on side effects, return values, or error scenarios. Annotations cover read-only and destructive hints, so the bar is lowered, but the description still contributes limited behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose, states the key requirement, and names the alternative. Every word adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 7 parameters and nested objects, the description is brief, but the schema provides rich parameter details and the description successfully conveys the critical distinction from the partial update tool. It lacks explicit mention of return behavior and the effect of omitting optional fields, but overall it is sufficiently complete for an agent given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter coverage with descriptive text for each field, including 'Complete array of workflow nodes' and 'Complete connections object'. The description merely repeats the completeness requirement without adding new meaning, so it stays at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action as a 'Full workflow update' and specifies the resource. It explicitly distinguishes itself from the sibling tool by naming n8n_update_partial_workflow, making its purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance by stating 'Requires complete nodes[] and connections{}' and directing users to the partial update tool for incremental changes. This gives clear when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_update_partial_workflowAIdempotent
Update workflow incrementally with diff operations. Types: addNode, removeNode, updateNode, patchNodeField, moveNode, enable/disableNode, addConnection, removeConnection, rewireConnection, cleanStaleConnections, replaceConnections, updateSettings, updateName, setNodeGroups, add/removeTag, activate/deactivateWorkflow, transferWorkflow, moveToFolder. patchNodeField requires fieldPath (dot path, e.g. "parameters.jsCode") and patches: [{find, replace}]. setNodeGroups replaces all canvas groups: [{name, nodeNames|nodeIds}] (or [] to ungroup). moveToFolder moves the workflow into a folder (n8n 2.32+): {parentFolderId: folder ID or null for project root}. See tools_documentation("n8n_update_partial_workflow", "full") for details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID to update | |
| operations | Yes | Array of diff operations to apply. Each operation must have a "type" field and relevant properties for that operation type. | |
| validateOnly | No | If true, only validate operations without applying them | |
| continueOnError | No | If true, apply valid operations even if some fail (best-effort mode). Returns applied and failed operation indices. Default: false (atomic) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by enumerating all operation types and detailing specific requirements for patchNodeField, setNodeGroups, and moveToFolder (including version note). This enriches the behavioral profile significantly, though it omits return format and potential side effects of removal operations. The annotation destructiveHint=false is not directly contradicted because the description does not explicitly claim non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: one clear opening sentence, a list of operation types, and three specific clarifications. Every sentence adds value, and the final pointer to tools_documentation avoids redundancy. It is slightly long but appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool this complex, the description covers the main operation categories and critical constraints, including version requirements. However, it lacks specification of return values and error/atomicity behavior (though continueOnError is in the schema). The explicit reference to tools_documentation for full details partially compensates, but the absence of output description is a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving baseline 3, but the description markedly enhances parameter understanding: it clarifies that operations must have a 'type' field and provides concrete shapes for key operations (e.g., patchNodeField with fieldPath and patches, setNodeGroups with name/nodeNames). This is far more informative than the generic array description in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Update workflow incrementally with diff operations,' clearly stating the specific verb (update), resource (workflow), and mode (incremental diff). This distinguishes it from sibling tools like n8n_update_full_workflow and n8n_create_workflow, making its purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'incrementally' implies usage for partial changes, contrasting with full replacement, but the description does not explicitly state when to use this tool over n8n_update_full_workflow or provide exclusions. It conveys clear context without naming alternatives or when-not cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_validate_workflowBRead-onlyIdempotent
Validate workflow by ID. Checks nodes, connections, expressions. Returns errors/warnings/suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID to validate | |
| options | No | Validation options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, open-world, and idempotent hints. Description adds that it returns errors/warnings/suggestions but does not elaborate on response structure or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences conveying core purpose and output. No redundant information, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should detail return format. Lacks explanation of validation profiles, which are documented only via enum values. Does not address potential confusion with sibling 'validate_workflow'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed property descriptions. Description restates the parameters' purpose without adding new meaning or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it validates a workflow by ID, checking nodes, connections, expressions, and returning results. However, it does not differentiate from the sibling 'validate_workflow', which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like n8n_audit_instance or n8n_health_check. Does not specify prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_workflow_versionsADestructive
Manage workflow version history, rollback, comparison, and cleanup. Six modes:
list: Show version history for a workflow
get: Get details of a specific version
rollback: Restore workflow to a previous version (creates backup first)
diff: Compare two versions
delete: Delete specific version or all versions for a workflow
prune: Manually trigger pruning to keep N most recent versions
Two sources:
source: 'local' (default) - snapshots n8n-mcp takes before it changes a workflow. Scoped to your n8n instance, works on any n8n version, and covers only changes made through n8n-mcp. Old backups are pruned automatically (10 most recent per workflow, plus an age-based retention window).
source: 'native' - n8n's own workflow history, the same list the n8n UI shows, including edits made by people in the UI. Needs an n8n MCP access token and the workflow's "Available in MCP" setting; supports list, get, rollback and diff only. Native rollback is not pre-validated.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Operation mode (default: list) | list |
| limit | No | Max versions to return in list mode (native: capped at 50) | |
| offset | No | Skip this many versions in native list mode | |
| source | No | Which history to read: 'local' (n8n-mcp snapshots, default) or 'native' (n8n's own version history). delete and prune are local-only. | local |
| deleteAll | No | Delete all versions for workflow (delete mode only) | |
| timeoutMs | No | Client deadline for the native call (default 30000) | |
| versionId | No | Version ID. local: numeric snapshot id (number or numeric string); native: n8n's version id string. Required for get and diff, for a single-version delete, and for native rollback; optional for local rollback. | |
| workflowId | No | Workflow ID (required for list, rollback, delete, prune, diff; required for every native mode) | |
| exposeToMcp | No | Native only. When n8n refuses the workflow because it is not available in MCP, enable that setting on the workflow and retry once. This is a visible, persistent workflow setting - confirm with the user first. | |
| maxVersions | No | Keep N most recent versions (prune mode only) | |
| toVersionId | No | The second version to compare against in diff mode (same id format as versionId) | |
| validateBefore | No | Validate workflow structure before rollback (local only; accepted and ignored for native) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive behavior, and the description goes further by disclosing side effects: rollback creates a backup first, delete and prune are local-only, prune retains 10 most recent versions automatically, and exposeToMcp is a visible persistent workflow setting requiring user confirmation. This exceeds what annotations alone provide and helps agents anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence, a compact mode list, and a source comparison section. It is longer than average, but the tool has 12 parameters and multiple modes, and every sentence contributes operational detail without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers modes, sources, prerequisites, side effects, and source-specific constraints, which is strong for a complex tool. It does not describe return value shapes or error conditions, and with no output schema present, some of that burden falls on the description; however, the core invocation context is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 12 parameters, including mode-specific behavior and defaults. The description adds high-level source semantics but does not meaningfully enrich individual parameter meanings beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Manage workflow version history, rollback, comparison, and cleanup.' It then enumerates six precise modes, making the tool's scope unmistakable. This clearly distinguishes it from sibling workflow tools like n8n_create_workflow or n8n_update_partial_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool via its six modes and explains the critical distinction between the 'local' and 'native' sources. It does not explicitly name sibling alternatives or state when not to use this tool, but the mode breakdown leaves little ambiguity about intended usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nodesARead-onlyIdempotent
Search n8n nodes by keyword with optional real-world examples. Pass query as string. Example: query="webhook" or query="database". Returns max 20 results. Use includeExamples=true to get top 2 template configs per node.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | OR=any word, AND=all words, FUZZY=typo-tolerant | OR |
| limit | No | Max results (default 20) | |
| query | Yes | Search terms. Use quotes for exact phrase. | |
| source | No | Filter by node source: all=everything (default), core=n8n base nodes, community=community nodes, verified=verified community nodes only | all |
| includeExamples | No | Include top 2 real-world configuration examples from popular templates (default: false) | |
| includeOperations | No | Include resource/operation tree per node. Adds ~100-300 tokens per result but saves a get_node round-trip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds behavioral context: max 20 results, default limit, behavior of includeExamples and includeOperations (token cost per result). This exceeds the burden given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences that front-load the purpose and immediately provide actionable examples and constraints. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and 6 parameters, the description is complete: it covers query usage, results limit, and the two boolean options. The context signals show high schema coverage and no nested objects, so the description needs to do little else. The sibling differentiation is implicit but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description adds value by explaining the query parameter further (use quotes for exact phrase) and clarifying includeExamples and includeOperations behaviors beyond their schema descriptions. A small lift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches n8n nodes by keyword with optional real-world examples. It distinguishes itself from siblings like search_templates or get_node by focusing on node search with template config examples, and from get_node by offering operations inclusion to save round-trips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage via example queries and mentions the trade-off of includeOperations (saves a round-trip to get_node). However, it does not explicitly state when to use this tool over siblings like search_templates or get_node, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_templatesARead-onlyIdempotent
Search templates with multiple modes. Use searchMode='keyword' for text search, 'by_nodes' to find templates using specific nodes, 'by_task' for curated task-based templates, 'by_metadata' for filtering by complexity/setup time/services, 'patterns' for lightweight workflow pattern summaries mined from 2700+ templates.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | For searchMode=by_task: the type of task. For searchMode=patterns: optional category filter (omit for overview of all categories). | |
| limit | No | Maximum number of results. Default 20. | |
| query | No | For searchMode=keyword: search keyword (e.g., "chatbot") | |
| fields | No | For searchMode=keyword: fields to include in response. Default: all fields. | |
| offset | No | Pagination offset. Default 0. | |
| category | No | For searchMode=by_metadata: filter by category (e.g., "automation", "integration") | |
| nodeTypes | No | For searchMode=by_nodes: array of node types (e.g., ["n8n-nodes-base.httpRequest", "n8n-nodes-base.slack"]) | |
| complexity | No | For searchMode=by_metadata: filter by complexity level | |
| searchMode | No | Search mode. keyword=text search (default), by_nodes=find by node types, by_task=curated task templates, by_metadata=filter by complexity/services, patterns=lightweight workflow pattern summaries | keyword |
| targetAudience | No | For searchMode=by_metadata: filter by target audience (e.g., "developers", "marketers") | |
| maxSetupMinutes | No | For searchMode=by_metadata: maximum setup time in minutes | |
| minSetupMinutes | No | For searchMode=by_metadata: minimum setup time in minutes | |
| requiredService | No | For searchMode=by_metadata: filter by required service (e.g., "openai", "slack") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool is safe and idempotent. The description adds behavioral clarity by detailing the five distinct search modes and their parameters (e.g., 'patterns' mode uses 2700+ templates for summaries), without contradicting annotations. The explanation of 'patterns' as lightweight summaries is extra context beyond annotations, but it lacks details on pagination behavior or result format, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently enumerates all five modes and their purposes without redundancy. Every clause adds value (e.g., 'lightweight workflow pattern summaries mined from 2700+ templates'), and it's front-loaded with the main action ('Search templates with multiple modes').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and rich sibling context, the description is remarkably complete. It covers the core behavior (five search modes), when to use each, and hints at return differences (e.g., 'patterns' yields summaries). With readOnlyHint and idempotentHint annotations, no additional safety info is needed. The only minor gap is no explicit mention of result pagination, but the schema's offset/limit parameters suffice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by grouping parameters by search mode (e.g., 'query' for keyword, 'nodeTypes' for by_nodes), providing context not in the schema. However, for parameters like 'category' and 'targetAudience', the description only restates what the schema says, offering no deeper semantics, so it doesn't fully reach a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches templates with multiple modes, enumerates each mode with its specific use case (e.g., 'searchMode=keyword' for text search, 'by_nodes' to find templates using specific nodes), and distinguishes itself from siblings like search_nodes (which likely searches for nodes, not templates). The explicit listing of five search modes provides a precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use each mode (e.g., 'Use searchMode=keyword for text search, by_nodes to find templates using specific nodes'), which directly guides the AI agent in selecting the right approach. It implies that for template-related searches this tool is appropriate, while siblings like search_nodes are for node-level searches, providing clear separation of concerns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tools_documentationARead-onlyIdempotent
Get documentation for n8n MCP tools. Call without parameters for quick start guide. Use topic parameter to get documentation for specific tools. Use depth='full' for comprehensive documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Level of detail. "essentials" (default) for quick reference, "full" for comprehensive docs. | essentials |
| topic | No | Tool name (e.g., "search_nodes") or "overview" for general guide. Leave empty for quick reference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, read-only operation. The description adds behavioral context beyond annotations: it explains that calling without parameters returns a 'quick start guide,' and that depth='full' provides 'comprehensive documentation.' This clarifies the different response modes. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding value: first sentence states the core purpose, second gives the default behavior, third explains the two optional parameters. It is front-loaded and contains no unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, no output schema), the description covers the main use cases well. It explains all invocation modes. However, it does not describe the format of the returned documentation (e.g., markdown, text), which would be helpful for an agent. Still, it is largely complete for a straightforward documentation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions using the 'topic' parameter and 'depth="full"', but this mostly restates the schema's own descriptions. It adds minimal new meaning beyond what the schema already provides. Therefore, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get documentation for n8n MCP tools.' It distinguishes itself from siblings (which deal with templates, nodes, validation) by explicitly focusing on tool documentation. The different invocation modes (no params, topic, depth) are also outlined, making the purpose very specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Call without parameters for quick start guide. Use topic parameter to get documentation for specific tools. Use depth="full" for comprehensive documentation.' This tells the agent exactly when to use each parameter combination. It does not mention when not to use the tool or alternatives, but the sibling tools are sufficiently different that no further exclusion is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_nodeARead-onlyIdempotent
Validate n8n node configuration. Use mode='full' for comprehensive validation with errors/warnings/suggestions, mode='minimal' for quick required fields check. Example: nodeType="nodes-base.slack", config={resource:"channel",operation:"create"}
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Validation mode. full=comprehensive validation with errors/warnings/suggestions, minimal=quick required fields check only. Default is "full" | full |
| config | Yes | Configuration as object. For simple nodes use {}. For complex nodes include fields like {resource:"channel",operation:"create"} | |
| profile | No | Profile for mode=full: "minimal", "runtime", "ai-friendly", or "strict". Default is "ai-friendly" | ai-friendly |
| nodeType | Yes | Node type as string. Example: "nodes-base.slack" |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| errors | No | |
| summary | No | |
| nodeType | Yes | |
| warnings | No | |
| displayName | Yes | |
| suggestions | No | |
| workflowNodeType | No | |
| missingRequiredFields | No | Only present in mode=minimal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as readOnlyHint true and idempotentHint true, so the description has less burden. It adds mode parameters and example usage but does not detail return format or success/failure behavior, which is partially covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a clear example, no fluff. Could be slightly more compact by integrating the example into the main statement, but it is efficient and front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 params, nested objects, output schema) and 100% schema coverage, the description covers the key behavior. The output schema handles return details, so no further explanation needed. The example adds practical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description provides an example for nodeType and config that goes beyond the schema by showing a practical use case. This adds value, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it validates n8n node configuration with a specific verb and resource. Provides examples of nodeType and config to distinguish it from sibling tools like 'search_nodes' or 'get_node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes two validation modes ('full' for comprehensive, 'minimal' for quick checks) and gives usage example. Context suggests siblings like 'validate_workflow' exist but no direct 'when not to use' is stated, though mode distinction sufficiently guides selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_workflowARead-onlyIdempotent
Full workflow validation: structure, connections, expressions, AI tools. Returns errors/warnings/fixes. Essential before deploy.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Optional validation settings | |
| workflow | Yes | The complete workflow JSON to validate. Must include nodes array and connections object. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| errors | No | |
| summary | Yes | |
| warnings | No | |
| suggestions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so the safety profile is clear. The description adds that it returns errors/warnings/fixes, which is useful but not extensive. Since annotations carry the behavioral burden, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and scope. Every word adds value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and return type. An output schema exists, so return details are documented elsewhere. Slightly missing mention of the optional 'options' parameter, but the schema covers it. Overall adequate for a validation tool with rich structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter. The description mentions the validation categories (structure, connections, expressions) which map to options, but does not add new meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Full workflow validation' specifies the action and scope. Lists what is validated (structure, connections, expressions, AI tools) and what is returned (errors/warnings/fixes). Distinguishes from sibling 'validate_node' by being for the entire workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Essential before deploy' which implies when to use it, but does not explicitly mention when not to use it or alternatives like validate_node for single nodes. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v2.79.0- Changed
n8n_executions4 fields changed- added
Input schema / properties / action / defaultAdded value: +"list" - changed
Input schema / properties / action / descriptionPrevious value: -"Operation: get=get execution details, list=list executions, delete=delete execution"New value: +"Operation: get=get execution details, list=list executions (default), delete=delete execution" - changed
Input schema / properties / id / descriptionPrevious value: -"Execution ID (required for action=get or action=delete)"New value: +"Execution ID. Required for action=delete; for action=get, omitting it lists executions instead" - removed
Input schema / requiredRemoved value: -[ - "action" -]
- Changed
n8n_workflow_versions3 fields changed- added
Input schema / properties / mode / defaultAdded value: +"list" - changed
Input schema / properties / mode / descriptionPrevious value: -"Operation mode"New value: +"Operation mode (default: list)" - removed
Input schema / requiredRemoved value: -[ - "mode" -]
7 tool updates
v2.77.0- Changed
n8n_create_workflow2 fields changed- changed
Input schema / properties / settings / descriptionPrevious value: -"Optional workflow settings (execution order, timezone, error handling)"New value: +"Optional workflow settings (execution order, timezone, error handling). Any other key the n8n Public API accepts is forwarded as well, e.g. availableInMCP (expose the workflow to n8n's instance-level MCP server), callerPolicy, callerIds." - added
Input schema / properties / settings / properties / availableInMCPAdded value: +{ + "description": "Expose the workflow to n8n's instance-level MCP server (n8n 1.119+)", + "type": "boolean" +}
- Added
n8n_explore_node_resources - Added
n8n_list_catalog - Added
n8n_manage_agents - Changed
n8n_manage_datatable8 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Operation to perform"New value: +"Operation to perform. addColumn/deleteColumn/renameColumn need N8N_MCP_ACCESS_TOKEN." - changed
Input schema / properties / action / enumPrevious value: -[ - "createTable", - "listTables", - "getTable", - "updateTable", - "deleteTable", - "getRows", - "insertRows", - "updateRows", - "upsertRows", - "deleteRows" -]New value: +[ + "createTable", + "listTables", + "getTable", + "updateTable", + "deleteTable", + "getRows", + "insertRows", + "updateRows", + "upsertRows", + "deleteRows", + "addColumn", + "deleteColumn", + "renameColumn" +] - added
Input schema / properties / columnAdded value: +{ + "description": "For addColumn: the column to add. Name must start with a letter, contain only letters, digits and underscores, and be at most 63 characters.", + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "string", + "number", + "boolean", + "date" + ], + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" +} - added
Input schema / properties / columnIdAdded value: +{ + "description": "For deleteColumn/renameColumn: ID of the column (from getTable).", + "type": "string" +} - changed
Input schema / properties / columns / descriptionPrevious value: -"For createTable (required, at least one): column definitions. Schema is immutable after creation via public API."New value: +"For createTable (required, at least one): column definitions. Change columns later with addColumn/deleteColumn/renameColumn." - changed
Input schema / properties / name / descriptionPrevious value: -"For createTable: table name. For updateTable: new name (rename only — schema is immutable after creation)"New value: +"For createTable: table name. For updateTable: new table name. For renameColumn: new column name." - changed
Input schema / properties / projectId / descriptionPrevious value: -"For createTable: project ID to create the table in. If omitted, uses the default project."New value: +"For createTable: project ID to create the table in. If omitted, uses the default project. For the column actions: the project owning the table - resolved automatically when the instance has exactly one accessible project, otherwise required (the error lists the candidates)." - added
Input schema / properties / timeoutMsAdded value: +{ + "description": "For the column actions: client timeout in ms (5000-600000, default 30000).", + "maximum": 600000, + "minimum": 5000, + "type": "integer" +}
- Changed
n8n_test_workflow7 fields changed- added
Input schema / properties / executionModeAdded value: +{ + "description": "For method=direct: manual (default) runs it as a manual execution; production runs it through the production execution path. Both execute the workflow's nodes for real - this only changes the execution context. Never chosen implicitly.", + "enum": [ + "manual", + "production" + ], + "type": "string" +} - added
Input schema / properties / exposeToMcpAdded value: +{ + "description": "For the official methods: enable the workflow's persistent \"Available in MCP\" setting when n8n refuses the call. Confirm with the user first.", + "type": "boolean" +} - added
Input schema / properties / methodAdded value: +{ + "description": "How to run it. auto (default): trigger over HTTP when the workflow has a webhook/form/chat trigger, otherwise report that it cannot be triggered - auto never runs through n8n's MCP server. trigger: force the HTTP path. prepare: list the nodes needing pinned data (read-only). pinned: run with pinData through n8n's MCP server. direct: start a run through n8n's MCP server, with optional inputs.", + "enum": [ + "auto", + "trigger", + "prepare", + "pinned", + "direct" + ], + "type": "string" +} - added
Input schema / properties / pinDataAdded value: +{ + "description": "For method=pinned (required, non-empty): pinned trigger data keyed by node name. Each value is an array of ITEMS, and every item must be wrapped as { \"json\": { ... } } - e.g. {\"Webhook\": [{\"json\": {\"id\": \"123\"}}]}, never a flat object. Get the node list from method=prepare.", + "type": "object" +} - changed
Input schema / properties / timeout / descriptionPrevious value: -"Timeout in ms (default: 120000)"New value: +"Timeout in ms (default: 120000). HTTP trigger path only (method auto/trigger) — the official methods (prepare/pinned/direct) use timeoutMs instead." - added
Input schema / properties / timeoutMsAdded value: +{ + "description": "Client-side deadline for the official call (default: 30000 for prepare, 300000 for pinned/direct)", + "maximum": 600000, + "minimum": 5000, + "type": "integer" +} - added
Input schema / properties / triggerNodeNameAdded value: +{ + "description": "For method=pinned/direct: which trigger node to start from. Defaults to the detected trigger node. Required by n8n when inputs are given.", + "type": "string" +}
- Changed
n8n_workflow_versions11 fields changed- added
Input schema / properties / exposeToMcpAdded value: +{ + "description": "Native only. When n8n refuses the workflow because it is not available in MCP, enable that setting on the workflow and retry once. This is a visible, persistent workflow setting - confirm with the user first.", + "type": "boolean" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Max versions to return in list mode"New value: +"Max versions to return in list mode (native: capped at 50)" - changed
Input schema / properties / mode / enumPrevious value: -[ - "list", - "get", - "rollback", - "delete", - "prune" -]New value: +[ + "list", + "get", + "rollback", + "delete", + "prune", + "diff" +] - added
Input schema / properties / offsetAdded value: +{ + "description": "Skip this many versions in native list mode", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / sourceAdded value: +{ + "default": "local", + "description": "Which history to read: 'local' (n8n-mcp snapshots, default) or 'native' (n8n's own version history). delete and prune are local-only.", + "enum": [ + "local", + "native" + ], + "type": "string" +} - added
Input schema / properties / timeoutMsAdded value: +{ + "description": "Client deadline for the native call (default 30000)", + "maximum": 600000, + "minimum": 5000, + "type": "integer" +} - added
Input schema / properties / toVersionIdAdded value: +{ + "description": "The second version to compare against in diff mode (same id format as versionId)" +} - changed
Input schema / properties / validateBefore / descriptionPrevious value: -"Validate workflow structure before rollback"New value: +"Validate workflow structure before rollback (local only; accepted and ignored for native)" - changed
Input schema / properties / versionId / descriptionPrevious value: -"Version ID (required for get mode and single version delete, optional for rollback)"New value: +"Version ID. local: numeric snapshot id (number or numeric string); native: n8n's version id string. Required for get and diff, for a single-version delete, and for native rollback; optional for local rollback." - removed
Input schema / properties / versionId / typeRemoved value: -"number" - changed
Input schema / properties / workflowId / descriptionPrevious value: -"Workflow ID (required for list, rollback, delete, prune)"New value: +"Workflow ID (required for list, rollback, delete, prune, diff; required for every native mode)"
4 tool updates
v2.68.0- Changed
n8n_create_workflow1 field changed- added
Input schema / properties / parentFolderIdAdded value: +{ + "description": "Optional folder ID to place the workflow in (n8n 2.32+). Omit for the project root. Find or create folders with n8n_manage_folders.", + "type": "string" +}
- Changed
n8n_evaluations3 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Operation: list_runs=list test runs, get_run=run details with metrics, list_cases=per-case results"New value: +"Operation: list_runs=list test runs, get_run=run details with metrics, list_cases=per-case results, run=trigger a run, cancel=stop a running run" - changed
Input schema / properties / action / enumPrevious value: -[ - "list_runs", - "get_run", - "list_cases" -]New value: +[ + "list_runs", + "get_run", + "list_cases", + "run", + "cancel" +] - changed
Input schema / properties / runId / descriptionPrevious value: -"Test run ID (required for action=get_run or action=list_cases)"New value: +"Test run ID (required for action=get_run, list_cases, or cancel)"
- Added
n8n_manage_folders - Changed
n8n_update_full_workflow1 field changed- added
Input schema / properties / parentFolderIdAdded value: +{ + "description": "Move the workflow into this folder (n8n 2.32+): folder ID = move there, null = move to project root, omit = leave the current folder unchanged. For a move without other changes prefer the moveToFolder operation of n8n_update_partial_workflow.", + "type": [ + "string", + "null" + ] +}
14 tool updates
v2.66.2- Added
get_node - Added
n8n_autofix_workflow - Added
n8n_create_workflow - Added
n8n_delete_workflow - Added
n8n_executions - Added
n8n_get_workflow - Added
n8n_list_workflows - Added
n8n_manage_datatable - Added
n8n_test_workflow - Added
n8n_update_full_workflow - Added
search_nodes - Added
search_templates - Added
tools_documentation - Added
validate_node
12 tool updates
v2.65.2- Added
get_template - Removed
n8n_create_workflow - Removed
n8n_delete_workflow - Added
n8n_evaluations - Removed
n8n_executions - Removed
n8n_list_workflows - Added
n8n_manage_credentials - Removed
n8n_test_workflow - Added
n8n_validate_workflow - Removed
search_templates - Removed
tools_documentation - Added
validate_workflow
11 tool updates
v2.65.1- Removed
get_node - Removed
get_template - Removed
n8n_autofix_workflow - Removed
n8n_get_workflow - Removed
n8n_manage_credentials - Removed
n8n_manage_datatable - Removed
n8n_update_full_workflow - Removed
n8n_validate_workflow - Removed
search_nodes - Removed
validate_node - Removed
validate_workflow
1 tool update
v2.63.0- Removed
n8n_generate_workflow
TDQS
Scored across 28 tools
Most tools are clearly scoped to distinct resources (workflows, nodes, templates, credentials, executions), but there is notable overlap: n8n_validate_workflow and validate_workflow appear to do the same thing, and n8n_create_workflow/n8n_get_workflow/n8n_update_full_workflow/n8n_update_partial_workflow/n8n_delete_workflow overlap with the generic workflow tools. The n8n_ prefix is used inconsistently, making it harder to tell which tools are the canonical set.
Naming is inconsistent: some tools use verb_noun (get_template, search_nodes, validate_workflow), others use n8n_verb_noun (n8n_list_workflows, n8n_create_workflow), and some use n8n_manage_* (n8n_manage_credentials, n8n_manage_folders). The n8n_ prefix is applied arbitrarily, and there are duplicate concepts with different names (validate_workflow vs n8n_validate_workflow).
28 tools is on the heavy side but arguably justified for a comprehensive n8n management server covering workflows, nodes, templates, credentials, executions, agents, folders, data tables, and auditing. However, several tools could be consolidated (e.g., validate_workflow vs n8n_validate_workflow, n8n_workflow_versions could be folded into n8n_get_workflow), which would reduce the count without losing functionality.
The tool surface is quite comprehensive: workflow CRUD, validation, testing, versioning, deployment, template search, node exploration, credential management, folder management, data tables, agents, and auditing. Minor gaps exist (e.g., no direct tool for managing workflow tags beyond partial updates, no explicit tool for listing all nodes in the instance), but the core workflows are well covered.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations.141,724 npmMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations, enabling them to understand and work with n8n's 525+ workflow automation nodes.141,724 npm34MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations, enabling them to build and validate workflows.141,724 npmMIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations.141,724 npmMIT