n8n-mcp
n8n-MCP
一个模型上下文协议(MCP)服务器,为 AI 助手提供对 n8n 节点文档、属性和操作的全面访问。几分钟内即可部署,让 Claude 和其他 AI 助手深入了解 n8n 的 2,175 个工作流自动化节点(827 个核心节点 + 1,348 个社区节点)。
概述
n8n-MCP 充当 n8n 工作流自动化平台与 AI 模型之间的桥梁,使它们能够有效地理解和使用 n8n 节点。它提供对以下内容的结构化访问:
2,175 个 n8n 节点 - 827 个核心节点 + 1,348 个社区节点(1,195 个已验证)
节点属性 - 99% 的覆盖率,包含详细模式
节点操作 - 63.6% 的可用操作覆盖率
文档 - 官方 n8n 文档的 87% 覆盖率(包括 AI 节点)
AI 工具 - 检测到 265 个具有完整文档的 AI 能力工具变体
真实世界示例 - 从流行模板中提取的 156 个排名配置
模板库 - 2,352 个工作流模板,AI 元数据覆盖率达 99.96%
社区节点 - 使用
source过滤器搜索已验证的社区集成
Related MCP server: n8n-MCP
支持本项目
n8n-mcp 最初是一个个人工具,但现在帮助了数万名开发者高效地自动化他们的工作流。维护和开发这个项目占用了我付费工作的时间。您的赞助可以帮助我投入专注的时间来开发新功能、快速响应问题、保持文档更新,并确保与最新 n8n 版本的兼容性。成为赞助者
重要安全警告
切勿直接使用 AI 编辑您的生产工作流! 请始终:
在使用 AI 工具前复制您的工作流
先在开发环境中测试
导出重要工作流的备份
在部署到生产环境前验证更改
AI 结果可能不可预测。请保护您的工作!
快速开始
尝试 n8n-MCP 的最快方式 - 无需安装,无需配置:
免费套餐:每天 100 次工具调用
即时访问:立即开始构建工作流
始终最新:最新的 n8n 节点和模板
无需基础设施:我们处理一切
只需注册,获取您的 API 密钥,然后连接您的 MCP 客户端。
想要自托管? 请参阅自托管指南,了解 npx、Docker、Railway 和本地安装选项。
n8n 集成
想要将 n8n-MCP 与您的 n8n 实例一起使用?请查看我们全面的 n8n 部署指南,了解:
使用 MCP 客户端工具节点进行本地测试
使用 Docker Compose 进行生产部署
在 Hetzner、AWS 和其他提供商上的云部署
故障排除和安全最佳实践
Cloudflare Access 身份验证
如果您的 n8n 实例位于 Cloudflare Access(零信任)之后,请提供您的服务令牌,以便 n8n-MCP 可以进行身份验证:
N8N_CF_CLIENT_ID- Cloudflare Access 客户端 IDN8N_CF_CLIENT_SECRET- Cloudflare Access 客户端密钥
设置后,这些值将作为 CF-Access-Client-Id / CF-Access-Client-Secret 标头发送到 n8n API 请求、版本/健康探测和 webhook 执行中。该令牌仅限于 N8N_API_URL 源——对另一个主机(例如,分离的 WEBHOOK_URL 源)的 webhook 调用不会收到它,以避免令牌泄露。
连接您的 IDE
n8n-MCP 适用于多种 AI 驱动的 IDE 和工具:
Claude Code - Claude Code CLI 的快速设置
Visual Studio Code - 集成了 GitHub Copilot 的 VS Code
Cursor - 分步 Cursor IDE 设置
Windsurf - 带有项目规则的 Windsurf 集成
Codex - Codex 集成指南
Antigravity - Antigravity 集成指南
添加 Claude 技能(可选)
通过专门教授 AI 如何构建生产就绪工作流的技能,来增强您的 n8n 工作流构建能力!

了解更多:n8n-skills 仓库
Claude 项目设置
为了在使用 n8n-MCP 与 Claude 项目时获得最佳效果,请使用这些增强的系统指令:
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.`
将这些指令保存在您的 Claude 项目中,以获得最佳的 n8n 工作流辅助和智能模板发现。
可用的 MCP 工具
核心工具(7 个工具)
tools_documentation- 获取任何 MCP 工具的文档(从这里开始!)search_nodes- 跨所有节点的全文搜索。使用source: 'community'|'verified'搜索社区节点,使用includeExamples: true获取配置get_node- 具有多种模式的统一节点信息工具:信息模式(默认):
detail: 'minimal'|'standard'|'full',includeExamples: true文档模式:
mode: 'docs'- 人类可读的 Markdown 文档属性搜索:
mode: 'search_properties',propertyQuery: 'auth'版本:
mode: 'versions'|'compare'|'breaking'|'migrations'
validate_node- 统一节点验证:mode: 'minimal'- 快速必填字段检查(<100ms)mode: 'full'- 包含配置文件(minimal、runtime、ai-friendly、strict)的全面验证
validate_workflow- 完整的工作流验证,包括 AI 代理验证search_templates- 统一模板搜索:searchMode: 'keyword'(默认) - 使用query参数进行文本搜索searchMode: 'by_nodes'- 使用特定nodeTypes查找模板searchMode: 'by_task'- 针对常见task类型的精选模板searchMode: 'by_metadata'- 按complexity、requiredService、targetAudience过滤
get_template- 获取完整的工作流 JSON(模式:nodes_only、structure、full)
n8n 管理工具(16 个工具 - 需要 API 配置)
这些工具需要在您的配置中设置 N8N_API_URL 和 N8N_API_KEY。
工作流管理
n8n_create_workflow- 使用节点和连接创建新工作流n8n_get_workflow- 统一工作流检索(模式:full、details、structure、minimal)n8n_update_full_workflow- 更新整个工作流(完全替换)n8n_update_partial_workflow- 使用差异操作更新工作流n8n_delete_workflow- 永久删除工作流n8n_list_workflows- 使用过滤和分页列出工作流n8n_validate_workflow- 按 ID 在 n8n 中验证工作流n8n_autofix_workflow- 自动修复常见工作流错误n8n_workflow_versions- 管理版本历史和回滚n8n_deploy_template- 将 n8n.io 的模板直接部署到您的实例,并自动修复
执行管理
n8n_test_workflow- 测试/触发工作流执行(webhook、form、chat)n8n_executions- 统一执行管理(list、get、delete)n8n_evaluations- 读取评估测试运行(列出运行、聚合指标、按案例结果;n8n 2.30+)
数据表管理
n8n_manage_datatable- 管理 n8n 数据表和行(list、get、create、update、delete)
凭据管理
n8n_manage_credentials- 管理 n8n 凭据(list、get、create、update、delete、getSchema)
安全与审计
n8n_audit_instance- 将 n8n 内置审计 API 与深度工作流扫描相结合的安全审计
系统工具
n8n_health_check- 检查 n8n API 连接性和功能
只读部署
对于治理敏感的环境,请同时使用两个环境变量。完全禁用具有写入/破坏性或处理敏感数据的工具(n8n_manage_credentials 和 n8n_manage_datatable 也提供读取操作,但此处完全移除,因为即使读取也会暴露敏感材料):
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_datatable对于将读取和写入操作捆绑在同一名称下的工具,仅阻止破坏性操作,同时保留 list 和 get:
DISABLED_TOOL_OPERATIONS=n8n_workflow_versions:delete,rollback,prune;n8n_executions:delete结合使用只读 n8n API 密钥(在您的 n8n 实例中设置 → API)以实现深度防御。请参阅只读部署方案获取完整设置指南。
文档
自托管指南 - npx、Docker、Railway 和本地安装
安全与加固 - 信任模型、加固选项、工作流限制
n8n 部署指南 - 使用 n8n 进行生产部署
数据库配置 - SQLite 适配器和内存优化
隐私与遥测 - 我们收集什么以及如何选择退出
工作流差异操作 - 令牌高效的工作流更新
HTTP 部署 - 远程服务器设置
变更日志 - 完整版本历史
许可证
MIT 许可证 - 详见 LICENSE。
贡献
请参阅 CONTRIBUTING.md 了解开发设置、测试和贡献指南。
致谢
请参阅致谢了解鸣谢和模板归属。
💼 需要为您构建?
与 AiAdvisors 合作 — 由 n8n-mcp 和 n8n-skills 背后的团队提供自动化审计、构建和运维服务。
Available Tools
7 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.
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.
7 tool updates
v2.65.1- First observed
get_node - First observed
get_template - First observed
search_nodes - First observed
search_templates - First observed
tools_documentation - First observed
validate_node - First observed
validate_workflow
TDQS
Scored across 7 tools
Each tool targets a distinct resource or action: documentation, templates (get and search), nodes (search, get, validate), and workflow validation. There is no overlap between searching templates and validating nodes, for example. Descriptions clearly differentiate purposes.
Most tools follow a verb_noun pattern (get_template, search_nodes, validate_node, etc.), but 'tools_documentation' breaks this pattern as it lacks a verb prefix. Overall, the naming is readable and predictable, with one minor inconsistency.
With 7 tools, the server is well-scoped for an n8n assistant. Each tool addresses a specific need (documentation, template retrieval, node search/validation, workflow validation) without redundancy or unnecessary bloat.
The tool surface covers key aspects: documentation, templates (search and get), nodes (search, get details, validate node config), and full workflow validation. Missing are tools for creating or updating templates/workflows, but for a documentation and validation assistant, the set is largely complete.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Open-source Zapier/n8n alternative as an MCP server: agents build, run and debug your workflows.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseAqualityAmaintenanceA Model Context Protocol server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations for effective workflow automation.2882,432 npm23,048MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations.82,432 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.82,432 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.82,432 npmMIT