n8n MCP Server
Provides tools for managing n8n workflows, executions, credentials, tags, variables, projects, users, and system operations like security audits and community package management.
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 MCP Server List all active workflows in n8n"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
n8n MCP Server
A Model Context Protocol (MCP) server that wraps the n8n self-hosted REST API, letting Claude (and any MCP-compatible LLM client) manage your n8n instance through natural language.
Features
30+ tools covering:
Domain | Operations |
Workflows | list, get, create, update, delete, activate, deactivate, archive, unarchive, manage tags |
Executions | list, get, delete, retry, stop |
Credentials | list, get, get schema, create, update, delete, test |
Tags | list, create, update, delete |
Variables | list, create, update, delete |
Projects | list, create |
Users | list |
System | security audit, discover API capabilities, manage community packages |
Related MCP server: n8n MCP Server
Prerequisites
Node.js 18+
A self-hosted n8n instance (v1.0+)
An n8n REST API key (see Getting an API Key)
Getting an API Key
Open your n8n instance
Go to Settings → n8n API
Click Create an API key
Copy the generated key — you will not be able to see it again
The API key inherits the permissions of the user who created it. Use an owner account to unlock all tools (credential listing, user management, audit).
Installation
git clone https://git.verzth.work/mcp/n8n.git
cd n8n
npm install
npm run buildConfiguration
Claude Desktop
Add the following entry to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"n8n": {
"command": "node",
"args": ["/absolute/path/to/n8n/dist/index.js"],
"env": {
"N8N_BASE_URL": "https://your-n8n-instance.example.com",
"N8N_API_KEY": "your-api-key-here"
}
}
}
}Replace /absolute/path/to/n8n with the actual directory where you cloned the repo.
Claude Code (CLI)
Add to your project's .claude/settings.json or global ~/.claude/settings.json:
{
"mcpServers": {
"n8n": {
"command": "node",
"args": ["/absolute/path/to/n8n/dist/index.js"],
"env": {
"N8N_BASE_URL": "https://your-n8n-instance.example.com",
"N8N_API_KEY": "your-api-key-here"
}
}
}
}Environment Variables
Variable | Required | Description |
| ✅ | Base URL of your n8n instance (e.g. |
| ✅ | API key from n8n Settings → n8n API |
Usage Examples
Once configured, you can ask Claude things like:
List all active workflows in n8nShow me the last 10 failed executionsActivate the workflow named "Daily Report"Create a new tag called "production" and apply it to workflow abc123Test the Slack credentialRun a security audit on my n8n instanceWhat community packages do I have installed?Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode (auto-rebuild on change)
npm run devProject Structure
src/
├── index.ts # Entry point — server init + transport
├── types.ts # TypeScript interfaces
├── constants.ts # Shared constants (limits, pagination)
├── services/
│ └── n8n-client.ts # Axios client + error handler
└── tools/
├── workflows.ts # Workflow management tools
├── executions.ts # Execution management tools
├── credentials.ts # Credential management tools
├── tags.ts # Tag management tools
├── variables.ts # Variable management tools
└── misc.ts # Projects, users, audit, packagesTransport
This server uses stdio transport, which means it runs as a subprocess of the MCP client. It does not expose any network ports and all authentication credentials are passed via environment variables — they never touch the codebase.
Security Notes
API keys are read from environment variables only — never hardcode them
The server only talks to the n8n instance you configure
Destructive tools (
delete,uninstall) are annotated withdestructiveHint: trueso clients can prompt for confirmationCredential secret data is intentionally excluded from
n8n_list_credentialsandn8n_get_credentialresponses (n8n API design — secrets are write-only)
License
MIT
Available Tools
39 toolsn8n_activate_workflowActivate n8n WorkflowAIdempotent
Activate (publish) a workflow so it runs automatically on triggers/schedules.
Args:
id (string): Workflow ID to activate
Inputs: id (required).
n8n_archive_workflowArchive n8n WorkflowAIdempotent
Soft-delete a workflow by archiving it. Can be restored with n8n_unarchive_workflow.
Args:
id (string): Workflow ID to archive
Inputs: id (required).
n8n_create_credentialCreate n8n CredentialA
Create a new credential. Use n8n_get_credential_schema first to know required fields.
Args:
name (string): Credential display name
type (string): Credential type (e.g., 'githubApi', 'slackApi')
data (object): Credential data/secrets (specific to the credential type)
projectId (string?): Project to assign the credential to
Inputs: data (required), name (required), type (required), projectId.
n8n_create_projectCreate n8n ProjectB
Create a new project for organizing workflows and credentials.
Args:
name (string): Project name
Inputs: name (required).
n8n_create_tagCreate n8n TagA
Create a new annotation tag for organizing workflows.
Args:
name (string): Tag name (must be unique)
Inputs: name (required).
n8n_create_variableCreate n8n VariableA
Create a new global workflow variable accessible in all workflows via $vars.key.
Args:
key (string): Variable key/name
value (string): Variable value
type (string?): Variable type (default 'string')
Inputs: key (required), value (required), type.
n8n_create_workflowCreate n8n WorkflowA
Create a new workflow in n8n.
Args:
name (string): Workflow name
nodes (array): Array of node objects (n8n node definitions)
connections (object): Node connection map
settings (object?): Workflow settings
active (boolean): Whether to activate immediately (default false)
Returns: Created workflow with its ID.
Inputs: name (required), nodes (required), connections (required), active, +1 more.
n8n_deactivate_workflowDeactivate n8n WorkflowAIdempotent
Deactivate a workflow so it stops running automatically. Manual executions are still possible.
Args:
id (string): Workflow ID to deactivate
Inputs: id (required).
n8n_delete_credentialDelete n8n CredentialADestructive
Permanently delete a credential. Workflows using it will break.
Args:
id (string): Credential ID to delete
Inputs: id (required).
n8n_delete_executionDelete n8n ExecutionADestructive
Permanently delete a specific execution and its data.
Args:
id (string): Execution ID to delete
Inputs: id (required).
n8n_delete_tagDelete n8n TagADestructive
Delete a tag. Removes it from all workflows that use it.
Args:
id (string): Tag ID to delete
Inputs: id (required).
n8n_delete_variableDelete n8n VariableADestructive
Delete a workflow variable. Workflows referencing it will get undefined.
Args:
id (string): Variable ID to delete
Inputs: id (required).
n8n_delete_workflowDelete n8n WorkflowADestructive
Permanently delete a workflow by ID. This action is irreversible. Consider using n8n_archive_workflow for soft-delete instead.
Args:
id (string): Workflow ID to delete
Inputs: id (required).
n8n_discoverDiscover n8n API CapabilitiesARead-onlyIdempotent
Get the capability map for the current API key — shows which API endpoints/scopes are accessible. Useful for debugging permission issues.
Inputs: no named parameters.
n8n_generate_auditGenerate n8n Security AuditB
Generate a security audit report for the n8n instance. Checks for security misconfigurations, abandoned workflows, credential exposure risks, etc.
Args:
categories (array?): Audit categories to run. Options: 'credentials', 'database', 'filesystem', 'instance', 'nodes'
daysAbandonedWorkflow (number?): Days threshold to flag workflows as abandoned (default 90)
Inputs: categories, daysAbandonedWorkflow.
n8n_get_credentialGet n8n CredentialARead-onlyIdempotent
Retrieve credential metadata by ID. Secret data is NOT returned.
Args:
id (string): Credential ID
Inputs: id (required).
n8n_get_credential_schemaGet n8n Credential SchemaARead-onlyIdempotent
Get the schema/field definitions for a credential type. Use this to know which fields are required when creating credentials.
Args:
credentialTypeName (string): Credential type name (e.g., 'githubApi', 'slackApi', 'telegramApi')
Inputs: credentialTypeName (required).
n8n_get_executionGet n8n ExecutionARead-onlyIdempotent
Retrieve full details of a specific execution by ID, including output data.
Args:
id (string): Execution ID
includeData (boolean): Include execution data/output (default true)
response_format ('markdown' | 'json'): Output format (default 'json')
Inputs: id (required), includeData, response_format.
n8n_get_workflowGet n8n WorkflowARead-onlyIdempotent
Retrieve full details of a specific workflow by ID, including its nodes and connections.
Args:
id (string): Workflow ID
response_format ('markdown' | 'json'): Output format (default 'json' for full detail)
Inputs: id (required), response_format.
n8n_get_workflow_tagsGet n8n Workflow TagsARead-onlyIdempotent
Get the tags associated with a specific workflow.
Args:
id (string): Workflow ID
Inputs: id (required).
n8n_install_community_packageInstall n8n Community PackageA
Install a community node package from npm.
Args:
packageName (string): npm package name (e.g., 'n8n-nodes-evolution-api')
version (string?): Specific version to install (default: latest)
Inputs: packageName (required), version.
n8n_list_community_packagesList n8n Community PackagesARead-onlyIdempotent
List all installed community node packages in the n8n instance.
Inputs: no named parameters.
n8n_list_credentialsList n8n CredentialsARead-onlyIdempotent
List all credentials. Requires owner/admin role. Credential data (secrets) are NOT returned — only metadata.
Args:
name (string?): Filter by credential name
limit (number): Max results (1-250, default 20)
cursor (string?): Pagination cursor
Inputs: name, limit, cursor.
n8n_list_executionsList n8n ExecutionsARead-onlyIdempotent
List workflow executions with optional filtering.
Args:
workflowId (string?): Filter by specific workflow ID
status ('new'|'running'|'success'|'failed'|'waiting'|'canceled'?): Filter by status
includeData (boolean): Include execution data/output (default false, increases response size)
limit (number): Max results per page (1-250, default 20)
cursor (string?): Pagination cursor from previous response
response_format ('markdown' | 'json'): Output format (default 'markdown')
Inputs: limit, cursor, status, workflowId, +2 more.
n8n_list_projectsList n8n ProjectsARead-onlyIdempotent
List all projects in the n8n instance.
Args:
limit (number): Max results (1-250, default 20)
cursor (string?): Pagination cursor
Inputs: limit, cursor.
n8n_list_tagsList n8n TagsARead-onlyIdempotent
List all annotation tags available in the n8n instance.
Args:
limit (number): Max results (1-250, default 20)
cursor (string?): Pagination cursor
Inputs: limit, cursor.
n8n_list_usersList n8n UsersARead-onlyIdempotent
List all users in the n8n instance. Requires owner role.
Args:
limit (number): Max results (1-250, default 20)
cursor (string?): Pagination cursor
Inputs: limit, cursor.
n8n_list_variablesList n8n VariablesARead-onlyIdempotent
List all workflow variables (global key-value pairs available in all workflows).
Args:
limit (number): Max results (1-250, default 20)
cursor (string?): Pagination cursor
Inputs: limit, cursor.
n8n_list_workflowsList n8n WorkflowsARead-onlyIdempotent
List workflows from the n8n instance with optional filtering.
Args:
active (boolean?): Filter by active/inactive status
name (string?): Filter by workflow name (partial match)
tags (string?): Comma-separated tag names to filter by
projectId (string?): Filter by project ID
limit (number): Max results per page (1-250, default 20)
cursor (string?): Pagination cursor from previous response
response_format ('markdown' | 'json'): Output format (default 'markdown')
Returns: List of workflows with id, name, active status, node count, dates.
Inputs: name, tags, limit, active, +3 more.
n8n_retry_executionRetry n8n ExecutionA
Retry a failed execution. Creates a new execution from the point of failure.
Args:
id (string): Failed execution ID to retry
loadWorkflowData (boolean): Reload workflow from current saved version (default false — uses original execution data)
Inputs: id (required), loadWorkflowData.
n8n_set_workflow_tagsSet n8n Workflow TagsAIdempotent
Replace all tags on a workflow. Pass an empty array to remove all tags.
Args:
id (string): Workflow ID
tagIds (array of string): Tag IDs to assign (replaces existing tags)
Inputs: id (required), tagIds (required).
n8n_stop_executionStop n8n ExecutionA
Stop a currently running execution.
Args:
id (string): Running execution ID to stop
Inputs: id (required).
n8n_test_credentialTest n8n CredentialA
Test whether a credential is valid by making a test request to the service.
Args:
id (string): Credential ID to test
Inputs: id (required).
n8n_unarchive_workflowUnarchive n8n WorkflowAIdempotent
Restore an archived workflow back to normal state.
Args:
id (string): Workflow ID to unarchive
Inputs: id (required).
n8n_uninstall_community_packageUninstall n8n Community PackageADestructive
Uninstall a community node package. Workflows using its nodes will break.
Args:
packageName (string): npm package name to uninstall
Inputs: packageName (required).
n8n_update_credentialUpdate n8n CredentialAIdempotent
Update an existing credential's name or data.
Args:
id (string): Credential ID to update
name (string?): New display name
data (object?): Updated credential data/secrets (merged with existing)
Inputs: id (required), data, name.
n8n_update_tagUpdate n8n TagAIdempotent
Rename an existing tag.
Args:
id (string): Tag ID
name (string): New tag name
Inputs: id (required), name (required).
n8n_update_variableUpdate n8n VariableAIdempotent
Update a workflow variable's value.
Args:
id (string): Variable ID
key (string): Variable key/name
value (string): New variable value
Inputs: id (required), key (required), value (required).
n8n_update_workflowUpdate n8n WorkflowAIdempotent
Update an existing workflow. Replaces the full workflow definition. If the workflow is active, it will be republished automatically.
Args:
id (string): Workflow ID to update
name (string): New workflow name
nodes (array): Full array of node objects
connections (object): Full node connection map
settings (object?): Workflow settings
active (boolean?): Activation state
Inputs: id (required), name (required), nodes (required), connections (required), +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 39 tools
Each tool targets a distinct resource-action pair (workflow, execution, credential, tag, variable, project, user, package). Similar operations like delete vs archive are explicitly distinguished in descriptions, leaving no ambiguity.
All tools consistently use the n8n_ prefix with a verb_noun pattern. Minor deviations include plural nouns for lists (list_workflows) versus singular for single items (get_workflow), and a few non-verb-first names like n8n_discover and n8n_get_credential_schema, but the overall pattern remains predictable.
With 39 tools, this is a large set, but it spans the full n8n API surface across workflows, executions, credentials, tags, variables, projects, users, and community packages. Each tool serves a clear purpose, so the count is justified by the broad domain.
Core workflows have full lifecycle coverage (CRUD, activate, archive, tags), and executions/credentials also have comprehensive operations. Minor gaps exist for projects (only list/create) and users (only list), but these do not block primary workflow management workflows.
Maintenance
Related MCP Connectors
n8n MCP — query your own n8n instance (BYO).
Security scanner for n8n workflows + live MCP Trust-Check. 18 rules, OWASP mapped. Paid x402 API.
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to programmatically control n8n via natural language for automated workflow creation, modification, and execution management.1-
- AlicenseAqualityCmaintenanceEnables management of n8n workflows, executions, credentials, tags, and variables via MCP tools. Supports stdio, Claude Code, and Claude Web with optional Authentik OAuth.22MIT
- AlicenseAqualityCmaintenanceFull-instance management for self-hosted n8n — including queue mode — through the Model Context Protocol. 51 tools covering workflows, executions, tags, credentials, variables, projects, users, security audit, source control and health monitoring. n8n-pro-mcp connects Claude Code, Claude Desktop, Cursor or any MCP client to your n8n instance via the official n8n public API v15138 npm3MIT
- FlicenseNot gradedqualityCmaintenanceExposes n8n's REST API and local Ollama as MCP tools, allowing natural language instructions to create, execute, and monitor workflows from MCP clients like VS Code Copilot Chat.-