Skip to main content
Glama
mastrangi

n8n MCP Server

by mastrangi

n8n MCP Server

An MCP server that lets any MCP-compatible client (Claude Code, Claude Desktop, etc.) manage workflows and executions on your own self-hosted n8n instance, via n8n's public REST API. Runs locally over stdio — your n8n URL and API key never leave your machine.

Requirements

  • Python 3.11+

  • uv

  • A running n8n instance with the public API enabled

  • An n8n API key (n8n → Settings → API)

Related MCP server: n8n MCP Server

Setup

  1. Clone this repository and install dependencies:

    git clone https://github.com/mastrangi/mcp-n8n.git
    cd mcp-n8n
    uv sync
  2. Create .env (never committed) from the template:

    cp .env.example .env

    Fill in:

    • N8N_URL — your n8n instance's base URL (e.g. https://n8n.example.com)

    • N8N_API_KEY — generated from your n8n instance's Settings → API page

  3. Register with your MCP client. For Claude Code, run from the directory you cloned this repo into:

    claude mcp add n8n -- uv run --directory "$(pwd)" n8n-mcp

    For other clients, point them at the same command (uv run --directory /absolute/path/to/mcp-n8n n8n-mcp) using stdio transport.

  4. Verify it's connected:

    claude mcp list

Tools

Tool

Description

list_workflows

List workflows, filtered by active status, name, or tags

get_workflow

Get a workflow's full definition by ID

create_workflow

Create a workflow from nodes/connections/settings (pass parentFolderId in the workflow object to place it in a folder)

update_workflow

Replace a workflow's definition

delete_workflow

Delete a workflow by ID

activate_workflow

Activate a workflow

deactivate_workflow

Deactivate a workflow

list_executions

List executions, filtered by workflow or status

get_execution

Get a specific execution's details

execute_workflow

Trigger a workflow via its Webhook trigger node (only works for workflows that have one and are active — n8n's public API has no generic "run by ID" endpoint), optionally forwarding data as the webhook's JSON body

list_folders

List folders in a project, filtered by parent folder or name

create_folder

Create a folder in a project, optionally nested under a parent folder

Why no execute_workflow_by_id?

n8n's public REST API has no generic "run this workflow now" endpoint — only workflows with a Webhook trigger node can be invoked externally, by calling that webhook directly. execute_workflow does exactly that: it looks up the workflow's Webhook node and calls it, returning an error that explains why when the workflow has no webhook or isn't active.

Development

uv run pytest -v

Security

  • N8N_API_KEY lives only in your local .env file, which is gitignored. No tool logs, prints, or returns the key.

  • execute_workflow calls the target webhook without the n8n API key attached — n8n's Webhook node captures request headers into execution data, so sending the key there would let it leak back out through get_execution(include_data=True).

License

MIT — see LICENSE.

Available Tools

12 tools
activate_workflowActivate WorkflowC

Activate a workflow by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the burden of behavioral disclosure. It omits important details about whether activation is idempotent, what happens if the workflow is already active, whether permissions are required, or what side effects occur. It only states the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the action and resource. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and an output schema, so a short description is acceptable. However, the absence of any behavioral context or usage guidance leaves meaningful gaps about activation semantics, making it only minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, but it only says 'by ID,' which essentially restates the workflow_id property name. It does not clarify ID format, how to obtain a valid ID, or any constraints beyond the schema's string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Activate') and resource ('a workflow') and indicates the key parameter ('by ID'). It is clearly distinguishable from siblings like deactivate_workflow and execute_workflow, though it does not explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as execute_workflow or update_workflow. The intended context is only implied by the name and verb, with no exclusions or preconditions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_folderCreate FolderA

Create a folder within a project. Pass parent_folder_id to nest it inside another folder instead of the project root.

project_id is required (see list_folders for how to find it), except that n8n also accepts the literal string "personal" to mean your own personal project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
project_idYes
parent_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden, and it does well by disclosing the special 'personal' project_id value, the root-vs-nested behavior, and the requirement on project_id. It does not mention permissions or error behavior, but for a straightforward create operation with an output schema these are secondary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, information-dense sentences with no filler. The core purpose comes first, followed by the most important parameter behavior, then the required-parameter nuance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and the description covers project_id, parent_folder_id, and placement behavior. Nothing essential to selecting or invoking the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates strongly: it explains project_id's required status and special 'personal' value, and it explains parent_folder_id's nesting semantics. The name parameter is adequately implied by 'Create a folder' and its string type in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Create a folder') and immediately scopes it to a project, which clearly separates it from the sibling create_workflow. It also clarifies the two placement modes (project root vs nested) in a way that adds precision beyond the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives task-specific guidance: pass parent_folder_id to nest, and project_id is required unless using the 'personal' alias. The pointer to list_folders for finding project_id is useful routing advice, but it does not explicitly discuss when not to use the tool versus a sibling.

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. workflow must include name, nodes, connections, and settings.

To place the workflow in a folder instead of the project root, include parentFolderId (a folder ID from list_folders) in workflow. To create it in a project other than your personal one, include projectId.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It usefully discloses required fields inside workflow and the default behavior of placing the workflow in the project root or personal project. However, it does not mention permissions, error behavior, or what happens on conflict, which are relevant behavioral traits for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, beginning with the core action and requirement. Every sentence adds necessary information: required fields, folder placement, and project selection. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential information needed to construct a valid create_workflow call: required fields and optional routing parameters. Since an output schema exists, return values need not be described. It could be more complete by mentioning error cases or permissions, but the main invocation context is sufficiently specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a generic workflow object with additionalProperties true and no property descriptions, so the description must compensate. It does so by enumerating required fields (name, nodes, connections, settings) and optional routing fields (parentFolderId, projectId), adding meaning the schema lacks. It stops short of fully defining the structure of nodes or connections, but the core semantics are covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a new workflow') and differentiates it from siblings like update_workflow, activate_workflow, and delete_workflow. It also clarifies the scope by specifying that this is for new workflows, not modifying or executing existing ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear contextual guidance for when to include parentFolderId or projectId, which helps the agent decide how to construct the call. It does not explicitly name alternative tools or state when not to use this tool, but the create verb and the optional conditions make the intended usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deactivate_workflowDeactivate WorkflowC

Deactivate a workflow by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a state change but does not explain whether deactivation is reversible, whether it stops running executions, or how it differs from deletion, which are important operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the action and immediately indicating the required parameter. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and the single parameter is simple. However, the absence of behavioral context and usage guidance makes the description incomplete for an agent choosing between deactivation, activation, execution, and deletion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'By ID' maps cleanly to the sole workflow_id parameter and clarifies that the identifier identifies the target workflow, though it adds little beyond the property name and does not describe ID format or provenance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Deactivate') and names the resource ('a workflow') plus the identification method ('by ID'). It is clear and recognizable against siblings like activate_workflow and delete_workflow, though it does not explicitly contrast itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to deactivate a workflow versus activating, deleting, or executing it. The description simply states the action, leaving the agent to infer the appropriate context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_workflowDelete WorkflowB

Delete a workflow by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema details, the description must disclose behavioral implications. It states the delete action, but does not explicitly mention irreversibility, cascading effects on executions or folders, authentication requirements, or what happens if the workflow does not exist. These are significant gaps for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extra words. Every part contributes to the core meaning, making it easy to parse and immediately actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter delete tool, the core call shape is clear, but contextual details are missing: no usage conditions, no side-effect disclosure, and no mention of irreversibility. An agent invoking safely would benefit from knowing whether deletion is permanent or whether the workflow must be deactivated first.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a workflow_id string with no further description, and the description adds no new meaning beyond 'by ID.' With 0% schema description coverage, the description needed to clarify the ID format, source, or required state, but it simply restates the parameter name's obvious meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete a workflow by ID.' It clearly identifies the action and the identifying parameter, and it differentiates from sibling tools like update_workflow, get_workflow, and activate_workflow by naming a distinct destructive operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as deactivate_workflow or update_workflow. There is no mention of prerequisites, conditions, or consequences (e.g., whether the workflow must be inactive before deletion), leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_workflowExecute WorkflowA

Trigger a workflow's execution via its Webhook trigger node, if it has one.

n8n's public API has no generic "run workflow by ID" endpoint, so this only works for workflows containing a Webhook trigger node, and the workflow must be active for the webhook to respond. data, if given, is sent as the JSON request body, landing in the workflow's $json.body.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses important behavioral details: the execution goes through the webhook rather than a generic API, the workflow must be active, and data is placed into the workflow's $json.body. It does not cover error handling or permissions, but the primary constraints and side effects are clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences: the first names the action, the second explains the limitation and activation requirement, and the third explains parameter behavior. There is no filler, repetition, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema is present and there are no annotations, the description supplies all essential context an agent needs: what the tool does, its scope and prerequisite, the absence of a generic alternative, and the semantics of data. For a two-parameter tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning, and it does. It explains that data is sent as the JSON request body and lands in $json.body, which is not apparent from the schema alone. The optionality of data is conveyed with 'if given,' matching the schema's default null.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Trigger a workflow's execution') and immediately narrows the mechanism to a Webhook trigger node. This clearly distinguishes it from workflow CRUD siblings like get_workflow or update_workflow by identifying both the action and its prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the key precondition: the tool only works for workflows that contain a Webhook trigger node, and the workflow must be active for the webhook to respond. It also explains the API limitation (no generic 'run workflow by ID' endpoint), setting clear expectations, though it does not enumerate explicit alternatives or when-not-to-use cases beyond that.

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 details of a specific execution by ID. Set include_data=True to include input/output data.

ParametersJSON Schema
NameRequiredDescriptionDefault
execution_idYes
include_dataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals one useful behavioral trait: input/output data is excluded unless include_data=True. However, it does not state whether this is a read-only operation, how it handles missing IDs, or what happens if include_data is requested for an execution with no data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences: the first states the primary action and target, the second explains the optional flag. There is no filler or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool with two parameters and an output schema, the description covers the main actions and the optional data-inclusion behavior. It is adequate for a first-time caller, though it could be more complete by noting that get_execution is a read-only lookup, distinct from execution-triggering siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains execution_id as the identifier of the execution and clarifies that include_data=True controls inclusion of input/output data. This adds meaning beyond the raw schema, though execution_id's semantics are largely inferable from the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get') and resource ('details of a specific execution by ID'), which is enough to understand the tool's core function. It does not explicitly name sibling alternatives like list_executions, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_executions, execute_workflow, or get_workflow. The only usage-related hint is the include_data flag, which explains an option rather than when the tool should be chosen.

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 the full definition (nodes, connections, settings) of a workflow by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description itself communicates that this is a read-only retrieval operation and that the response contains the workflow's definition. It doesn't discuss auth requirements or not-found behavior, but the 'Get' framing makes the non-mutating intent clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the action, names the target resource, and adds the useful detail about what the definition includes. There is no redundant wording or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, get-by-ID tool with an output schema, the description is sufficient. It clearly states what will be returned and covers the essential retrieval semantics without needing to enumerate error cases or return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema provides no descriptive text for workflow_id, the description explicitly says 'by ID', which clarifies the parameter's role. With only one required parameter, there is little room for ambiguity, though no ID format or example is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), a clear resource ('a workflow'), and identifies the retrieval key ('by ID'). It also specifies the content scope ('nodes, connections, settings'), which distinguishes it from tools like get_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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call this tool when you need the full definition of a specific workflow. It does not explicitly contrast with get_execution or list_workflows, but the singular 'a workflow by ID' conveys the intended use case.

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, optionally filtered by workflow ID or status (success, error, running, waiting).

Defaults to returning up to 100 executions. n8n caps this at 250 per request; pass a higher limit (up to 250) explicitly if you need more and results seem truncated.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully reveals the default limit of 100, the n8n cap of 250, and the possibility of truncated results, which are important behavioral traits beyond a simple 'list' statement. It does not mention ordering or pagination details, but the output schema covers return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and efficient, with the main purpose front-loaded and the limit/cap guidance placed in a natural follow-up. Every sentence adds useful information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with three optional parameters and an output schema, the description covers the essential operational details: what is listed, how to filter, and the default/cap behavior. It does not address alternative tool selection explicitly, but the main gaps are minor and the presence of an output schema reduces the need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it interprets the status parameter by listing valid values (success, error, running, waiting), explains the limit parameter's default and cap, and clarifies workflow_id as a filter. The workflow_id description could be more detailed on format, but all three parameters receive some meaningful semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact operation ('List workflow executions') and names the resource explicitly. It also specifies the available filters (workflow ID or status) and lists the valid status values, making the tool's purpose unambiguous and distinguishable from sibling tools like get_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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use this tool and how to configure it, including optional filters and limit behavior. It does not explicitly compare against alternatives such as get_execution, but the 'List' scope is clear enough that an agent will understand this is for multiple executions rather than a single one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersList FoldersA

List folders within a project, optionally filtered by parent folder or name.

project_id is required — n8n's public API has no way to discover it if your license doesn't support listing projects. If you don't know it, call list_workflows and read shared[0]["projectId"] off any returned workflow.

n8n defaults to returning only 10 folders per page. Pass a higher take (or page through with skip) if a project has more folders than that — results are silently truncated to take with no other signal that more exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
skipNo
takeNo
project_idYes
parent_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does an excellent job. It discloses the API limitation around project_id discovery, the default 10-per-page behavior, and the critical silent truncation of results, which an agent must know to avoid missing data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence followed by tightly scoped paragraphs on required context and pagination. Every sentence adds value, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and an output schema present, the description covers all the essential behavioral and usage context an agent needs: required parameter, discovery fallback, filtering options, and pagination pitfalls. Nothing critical appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain all parameters, and it does. It explains project_id's necessity and discovery path, name and parent_folder_id as filters, and take/skip for pagination, adding significant meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List folders within a project') and names the resource and available filters, making the purpose immediately clear. It also differentiates from sibling tools by scoping to folders and noting optional filtering by parent folder or name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear practical guidance: project_id is required, how to discover it if unknown, and when to increase take or use skip. It does not explicitly list when not to use the tool or name an alternative listing tool, but the context is strong enough 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.

list_workflowsList WorkflowsA

List n8n workflows, optionally filtered by active status, name, or comma-separated tags.

Defaults to returning up to 100 workflows. n8n caps this at 250 per request; pass a higher limit (up to 250) explicitly if you need more and results seem truncated.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
limitNo
activeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It adds meaningful details beyond the schema: the default of 100 results, n8n's hard cap of 250 per request, and a caveat about truncated results. This gives the agent useful expectations about limiting and pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded. The first sentence states the core purpose and filters; the following sentences add only necessary behavioral caveats. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity list tool with an output schema, the description covers everything needed to call it correctly: what it lists, how to filter, how many results to expect, and the hard limit caveat. No required parameters exist, so no prerequisite guidance is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters, and it does. It maps 'name' to a filter, 'tags' to comma-separated tag filtering, 'active' to active-status filtering, and 'limit' to result count with the 250 cap. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List n8n workflows.' It also names the filtering dimensions (active status, name, tags), making the operation unambiguous and clearly distinct from siblings like get_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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies its use case: retrieving a collection of workflows with optional filters. It does not explicitly name alternatives or exclusion criteria, but the context is clear enough that an agent can select it for listing workflows without confusing it with other operations.

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's definition. workflow must include name, nodes, connections, and settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowYes
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does state that this is a full replacement of the workflow definition, not a partial patch. It also names the required structural fields. It does not disclose side effects such as overwriting prior settings, impact on running executions, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences deliver the main action first and then the critical payload constraint. There is no filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential invocation details and the output schema handles return values. What is missing is explicit sibling routing and fuller disclosure of what replacing a workflow entails at runtime, which matters more because no annotations are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It usefully clarifies that the `workflow` object must contain name, nodes, connections, and settings. `workflow_id` is not elaborated, but its meaning is reasonably clear from 'existing workflow'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Replace' with the resource 'existing workflow's definition', so the core action is unmistakable. It also lists the required fields for the replacement workflow, which adds precision. It does not explicitly name sibling tools, but the 'existing' wording distinguishes it from create_workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'existing workflow's definition' implies this tool is for modifying an already-created workflow rather than creating a new one. However, there is no explicit guidance about when to prefer this over create_workflow, get_workflow, or other siblings, and no exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource-action pair: workflow CRUD/lifecycle, execution retrieval/triggering, and folder listing/creation are clearly separated. Even execute_workflow and activate_workflow are unambiguous because their descriptions clarify webhook triggering versus status changes.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, such as list_workflows, create_folder, and deactivate_workflow. The naming is predictable and makes the action and resource immediately clear.

Tool Count5/5

With 12 tools, the server is well-scoped for managing n8n workflows, executions, and folders. Each tool covers a meaningful operation without redundancy or excessive granularity.

Completeness4/5

Workflow lifecycle coverage is strong: create, read, update, delete, activate, deactivate, and list are all present. Minor gaps exist for folders (no update or delete operations) and executions (no cancel or delete), but core workflows are fully covered and workarounds are available.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mastrangi/mcp-n8n'

If you have feedback or need assistance with the MCP directory API, please join our Discord server