n8n-free-mcp
Allows management of n8n workflows, executions, and tags through the n8n API, including listing, creating, updating, activating/deactivating, and deleting workflows; listing and debugging executions; and checking connection status.
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-free-mcpShow me the failed executions of the last runs and diagnose the error"
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-free-mcp
Free & open-source MCP server for n8n. Manage your workflows, debug executions and control your self-hosted n8n instance directly from Claude Code, Claude Desktop, Cursor, or any Model Context Protocol client.
🆓 100% free, MIT licensed — no paywalls, no telemetry
🏠 Built for self-hosted / homelab n8n instances (works with n8n Cloud too)
🔑 Uses n8n's official public API (
/api/v1) with your own API key🪶 Tiny: one file, two dependencies (
@modelcontextprotocol/sdk+zod)🧠 Context-friendly: list tools return compact summaries instead of dumping full workflow JSON
Tools
Tool | Description |
| List workflows (id, name, active, tags, node count) with filters + pagination |
| Full workflow JSON: nodes, connections, settings |
| Create a new workflow from n8n-format JSON |
| Replace a workflow (read-only fields stripped automatically) |
| Toggle a workflow's triggers |
| Delete a workflow (irreversible ⚠️) |
| List executions, filter by status ( |
| Execution detail — with |
| Delete an execution record |
| List instance tags |
| Verify the instance is reachable and the API key works |
Related MCP server: n8n Workflow Builder MCP Server
Setup
1. Get an n8n API key
In your n8n instance: Settings → n8n API → Create an API key.
2. Install
git clone https://github.com/jserna0001/n8n-free-mcp.git
cd n8n-free-mcp
npm install
npm run build3. Configure your MCP client
Claude Code:
claude mcp add --scope user n8n \
--env N8N_API_URL=https://your-n8n-instance.com \
--env N8N_API_KEY=your-api-key \
-- node /path/to/n8n-free-mcp/dist/index.jsClaude Desktop / Cursor / other clients (claude_desktop_config.json, mcp.json, etc.):
{
"mcpServers": {
"n8n": {
"command": "node",
"args": ["/path/to/n8n-free-mcp/dist/index.js"],
"env": {
"N8N_API_URL": "https://your-n8n-instance.com",
"N8N_API_KEY": "your-api-key"
}
}
}
}Alternative: .env file. Instead of passing env vars from the client, copy .env.example to .env in the project root and fill it in. Environment variables from the client take precedence.
4. Try it
Ask your assistant things like:
"List my n8n workflows"
"Show me the failed executions of the last runs and diagnose the error"
"Deactivate the workflow called X"
"Duplicate this workflow but change the webhook path"
Notes
The n8n public API does not expose credential values (by design). Credential management tools are intentionally out of scope.
update_workflowperforms a full replace (PUT), as required by the n8n API — fetch withget_workflow, modify, then update.n8n API keys are JWTs with an expiration date. If you start getting 401s, generate a new key.
Contributing
Issues and PRs welcome. Ideas on the roadmap:
Trigger workflows via webhook test URLs
Variables & projects endpoints
npm package (
npx n8n-free-mcp)Docker image
License
MIT © Justine Serna
Available Tools
12 toolsactivate_workflowActivate workflowA
Activate a workflow (starts running on its triggers).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose all behavioral traits. It states the outcome ('starts running on its triggers') but does not mention side effects, reversibility, permissions needed, or state transitions. For a mutation tool, this is insufficient.
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 sentence, front-loaded with the core action. No wasted words; every part adds value. It is appropriately sized for a simple tool.
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 (one required parameter, no output schema, no annotations), the description is mostly complete. It covers the main purpose and activation effect. However, it could mention that the workflow must be in an inactive state or that activation is reversible, but these are minor gaps.
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% (one 'id' parameter described as 'Workflow ID'). The description adds no further meaning to the parameter; it merely restates the schema. Baseline of 3 is appropriate as the schema already documents the parameter.
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: 'Activate a workflow (starts running on its triggers).' It uses a specific verb ('Activate') and resource ('workflow'), and the parenthetical clarifies the behavior. This distinguishes it from siblings like deactivate_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: to start a workflow's triggers. However, it does not explicitly state when to use this tool over alternatives (e.g., when the workflow is inactive, or prerequisites like workflow being in a valid state). The name and context provide some guidance, but explicit guidelines are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_connectionCheck connectionA
Verify that the n8n instance responds and the API key is valid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what the tool does but does not disclose behavioral details such as whether it is read-only, what happens on failure, or any side effects. This is minimal disclosure.
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, clear sentence with no unnecessary words. It is front-loaded and efficiently conveys the tool's function.
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 (no parameters, no output schema), the description provides adequate context. It could mention the expected response or behavior on failure, but for a health check tool, the current description is 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?
The tool has no parameters, so the schema already covers 100% of the input structure. The description adds value by explaining the tool's purpose beyond the empty schema. No param details are needed.
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: verifying that the n8n instance responds and the API key is valid. This is a specific verb+resource combination that distinguishes it from sibling tools dealing with workflows and executions.
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 the tool is for checking connectivity before other operations, but does not explicitly state when to use or when not to use it. No alternatives are mentioned, but the context of sibling tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workflowCreate workflowA
Create a new workflow (created inactive; use activate_workflow to enable it). 'nodes' and 'connections' are JSON in n8n's standard export format.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workflow name | |
| nodes | Yes | JSON array of n8n nodes (n8n export format) | |
| settings | No | JSON object of workflow settings (optional) | |
| connections | Yes | JSON object of connections between nodes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description must disclose behavior. It mentions inactivity and format of nodes/connections, but does not cover side effects, permissions, idempotency, or limits. Adequate but not comprehensive.
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: first states action and key behavior (inactive), second adds format detail. Front-loaded, no unnecessary 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 creation tool with full schema coverage and no output schema, description covers core behavior and follow-up step. Could mention return value but not required. Reasonably 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 coverage is 100%, so baseline is 3. Description adds 'n8n's standard export format' which reinforces schema but does not significantly extend meaning. Marginal improvement.
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 'Create a new workflow' and distinguishes from sibling 'activate_workflow' by noting the created workflow is inactive. Verb and resource are specific, with sibling differentiation.
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 tells when to use (create a new workflow) and what to do next (use activate_workflow to enable). Missing explicit exclusions or alternatives beyond activate, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate_workflowDeactivate workflowA
Deactivate a workflow (stops responding to its triggers).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It explains the outcome ('stops responding to its triggers') but omits details like reversibility (can be reactivated?), permission requirements, or side effects on existing executions.
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, efficient sentence that front-loads the action and provides a clear parenthetical explanation. 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 1 parameter, no output schema, and low complexity, the description is mostly complete. It explains the outcome, but could mention that the workflow must exist and that deactivation is reversible (implied by sibling 'activate_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% (one parameter 'id' described as 'Workflow ID'). The description adds no further parameter details. Baseline 3 is appropriate since the schema already covers the parameter meaning.
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 'Deactivate a workflow' and explains what that means ('stops responding to its triggers'). It distinguishes from siblings like activate_workflow (opposite) and delete_workflow (permanent removal).
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 (to stop a workflow from triggering) but provides no explicit guidance on alternatives or prerequisites. It lacks information on when not to use (e.g., if already deactivated) or comparison with other sibling tools like update_workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_executionDelete executionA
Delete an execution record. ⚠️ Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Execution ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full responsibility for behavioral disclosure. It warns of irreversibility, which is a key trait, but lacks details on side effects, permissions, or error conditions, leaving gaps in 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 extremely concise: one sentence plus an emoji that conveys irreversibility. Every element earns its place 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?
Given the tool's simplicity (1 param, no output schema), the description covers the core action and a key warning. However, it omits context like return behavior (success/error), prerequisites, or how irreversible deletion affects related data, which would be helpful for a complete picture.
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 input schema provides 100% coverage for the single parameter 'id' with a clear description ('Execution ID'). The description adds no additional meaning beyond what the schema already offers, 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 verb 'Delete' and the resource 'execution record', and the use of '⚠️ Irreversible' emphasizes the destructive nature, distinguishing it from sibling tools like 'deactivate_workflow' or 'get_execution'.
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 no guidance on when to use this tool versus alternatives (e.g., 'deactivate' or 'soft delete'). The irreversibility warning hints at caution but does not explicitly state usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflowDelete workflowA
Permanently delete a workflow. ⚠️ Irreversible — confirm with the user before using.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the workflow to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that deletion is permanent and irreversible, which is critical. However, it could mention prerequisites (e.g., workflow state) or what happens to associated data.
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 with zero fluff. The warning emoji adds emphasis without waste.
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 delete operation, the description is fairly complete: it states action, permanence, and required confirmation. Could optionally mention return value or error cases, but not essential.
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% (id parameter described in schema). The description adds no extra meaning to the parameter, 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 'Permanently delete a workflow', which is a specific verb-resource pair. This distinguishes it from siblings like deactivate_workflow (temporary) and delete_execution (different resource).
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 a clear guideline: 'confirm with the user before using' and notes irreversibility. However, it does not explicitly list alternatives 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.
get_executionGet executionA
Get the details of an execution. With includeData=true it returns per-node data (can be very large) — ideal for diagnosing errors.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Execution ID | |
| includeData | No | Include node input/output data (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the key behavioral trait of large data when includeData=true. However, it does not mention idempotency, safety, or access requirements, which are minimal for a read operation.
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-loading the purpose, with no wasted words. 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?
The description covers the tool's core behavior adequately given the simple 2-parameter schema and no output schema. It explains the critical parameter behavior but could optionally mention return structure.
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%, providing baseline of 3. The description adds value by explaining that includeData=true returns per-node data and is useful for error diagnosis, going beyond the schema's basic 'include node input/output data'.
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 'execution details', distinguishing it from siblings like 'list_executions' and 'delete_execution'. It adds specificity about the includeData parameter differentiating it from a basic list.
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 includeData=true for diagnosing errors and warns about potential large data size, providing clear usage context. It does not explicitly mention when to avoid it, but the warning implies caution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowGet workflowA
Get a full workflow by ID, including nodes, connections and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID | |
| excludePinnedData | No | Exclude pinData (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must cover behavioral traits. It adds context by listing what the full workflow includes, but it does not disclose side effects, permission requirements, rate limits, or response structure. For a read operation, safety is implied but not stated.
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 sentence that efficiently communicates the core purpose and included elements. It is appropriately front-loaded. However, it could add minimal additional context (e.g., mention the default of excludePinnedData) without becoming verbose.
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 has two parameters and no output schema, the description could elaborate on the return format or note the default value of excludePinnedData. It is adequate for a simple retrieval tool but lacks completeness in explaining expected output.
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 both parameters having descriptions. The tool description does not add extra meaning beyond what the schema provides (id as workflow ID, excludePinnedData as boolean excluding pinData). Per guidelines, baseline is 3 when coverage is high.
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 'full workflow by ID', specifying the included elements (nodes, connections, settings). This distinguishes it from sibling tools like list_workflows (which likely returns summaries) and get_execution (a different resource).
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 using this tool to retrieve a detailed workflow, but it does not explicitly state when to use it over alternatives like list_workflows or provide any exclusions. The usage context is implied but not clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_executionsList executionsA
List workflow executions. Useful for debugging: filter by status ('error', 'success', 'waiting') or by workflowId.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 100) | |
| cursor | No | Pagination cursor | |
| status | No | Filter by status | |
| workflowId | No | Filter by workflow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination behavior, rate limits, or response format. For a list operation without annotations, this is a significant gap.
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 with no wasted words. It front-loads the purpose and immediately provides useful filtering context.
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 tool has 4 parameters (all optional) and no output schema. The description does not explain the return format or pagination details, but it does mention the cursor parameter indirectly. For a list tool, more completeness would be beneficial.
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 emphasizing the debugging use case and listing the filter options (status, workflowId), but does not provide additional meaning beyond the schema for limit and cursor.
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 'List' and the resource 'workflow executions', and adds context about filtering by status or workflowId. This distinguishes it from siblings like get_execution (single execution) or list_workflows.
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 indicates the tool is useful for debugging and specifies the available filters (status, workflowId). However, it does not explicitly mention when not to use it or compare to alternatives, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsList tagsB
List the tags available on the n8n instance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states 'list the tags', implying a read operation, but does not disclose rate limits, pagination details, or any side effects. The presence of 'cursor' and 'limit' parameters hints at pagination, but the description ignores this.
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 short sentence, making it efficient and front-loaded. However, it may be too terse for full understanding, but for a simple tool, it earns its conciseness.
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 simple nature of the tool, the description is incomplete. It lacks details about return format, pagination behavior, and parameter usage. The absence of an output schema increases the need for description completeness, which is not met.
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 input schema has two parameters (limit, cursor) with 0% schema description coverage. The description does not mention either parameter or their purpose. It adds no meaning beyond the raw schema, failing to compensate for the lack of 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 lists tags on the n8n instance, with a specific verb 'list' and resource 'tags'. It is distinct from sibling tools, which focus on workflows, executions, and connections.
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 explicit guidance on when to use this tool versus alternatives. Since no sibling tools deal with tags, the usage context is implied but not elaborated. There are no exclusion criteria or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsList workflowsA
List workflows on the n8n instance. Returns id, name, active state, tags and dates. Supports cursor pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by exact name | |
| tags | No | Filter by tags, comma-separated | |
| limit | No | Max results (default 100) | |
| active | No | Filter by active/inactive workflows | |
| cursor | No | Pagination cursor (nextCursor from a previous response) | |
| excludePinnedData | No | Exclude pinData for lighter responses (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It mentions cursor pagination, which is helpful, but does not explicitly state that the tool is read-only, idempotent, or safe. Additional details like response size limits or rate limiting would improve 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-loading the core purpose and then adding key details. Every sentence adds value without redundancy or 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?
Given the tool's simplicity (list operation, no required params, no output schema), the description adequately conveys what the tool does and what it returns. It covers pagination and fields, though it could mention the HTTP method or more about the response structure.
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 minimal extra meaning beyond the schema: it confirms that cursor is for pagination (schema already indicates that). No parameter examples or additional usage context are provided.
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 'List' and the resource 'workflows', and specifies the returned fields (id, name, active state, tags, dates) and pagination support. It effectively distinguishes this tool from siblings like create_workflow or list_executions.
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 is provided on when to use this tool versus alternatives (e.g., list_executions, get_workflow). There is no mention of prerequisites, optimal use cases, or conditions under which this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workflowUpdate workflowA
Replace an existing workflow (PUT). Pass the full workflow JSON (typically the result of get_workflow with modifications); read-only fields (id, active, tags, dates) are stripped automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the workflow to update | |
| workflow | Yes | Full workflow JSON (name, nodes, connections, settings) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It mentions that read-only fields are stripped automatically, but lacks details on idempotency, validation, auth requirements, or side effects such as whether execution history is affected.
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 redundancy. Front-loaded with the HTTP method and purpose, every word 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?
No output schema exists, so the description does not need to explain return values. However, it could mention the response format or indicate that the update takes effect immediately. Overall adequate but not enriched.
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 descriptive parameter names. The description adds meaningful context: 'full workflow JSON (typically the result of get_workflow with modifications)' and clarifies read-only field behavior, which 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 clearly states 'Replace an existing workflow (PUT)' with a specific verb and resource. It distinguishes from create_workflow and get_workflow by specifying the full replacement pattern.
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?
Describes typical usage: pass full workflow JSON from get_workflow with modifications. Does not explicitly list when not to use or alternatives, but the sibling tool set implies create_workflow for new workflows.
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.
12 tool updates
v0.1.0- First observed
activate_workflow - First observed
check_connection - First observed
create_workflow - First observed
deactivate_workflow - First observed
delete_execution - First observed
delete_workflow - First observed
get_execution - First observed
get_workflow - First observed
list_executions - First observed
list_tags - First observed
list_workflows - First observed
update_workflow
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: workflow CRUD, execution management, connection check, and tag listing. There is no overlap or ambiguity between tools like activate/deactivate or create/delete.
All tools follow a consistent verb_noun pattern with underscores (e.g., activate_workflow, list_executions, check_connection). No mixed conventions or irregular naming.
12 tools is well-scoped for managing n8n workflows and executions. Each tool serves a distinct function without redundancy, covering the primary operations needed.
The tool set fully covers workflow lifecycle (create, get, update, delete, activate, deactivate) and execution operations (list, get, delete), plus connection check and tag listing. No obvious gaps for the domain.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
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
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server enabling secure interaction with n8n workflows, executions, and settings via the Model Context Protocol, designed for integration with Large Language Models (LLMs).3348 npm119MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server for programmatically creating and managing n8n workflows.118MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for n8n workflow automation, enabling management of workflows, executions, credentials, tags, users, and webhooks via an MCP-compatible client.MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that generates production-ready n8n workflows from natural language prompts. Transform simple descriptions into fully validated, deployable automation workflows using AI-powered code generation.1-