Skip to main content
Glama
n8n MCP Server

n8n MCP Server

by verzth

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

Getting an API Key

  1. Open your n8n instance

  2. Go to Settings → n8n API

  3. Click Create an API key

  4. 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 build

Configuration

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

N8N_BASE_URL

✅

Base URL of your n8n instance (e.g. https://n8n.example.com)

N8N_API_KEY

✅

API key from n8n Settings → n8n API

Usage Examples

Once configured, you can ask Claude things like:

List all active workflows in n8n
Show me the last 10 failed executions
Activate the workflow named "Daily Report"
Create a new tag called "production" and apply it to workflow abc123
Test the Slack credential
Run a security audit on my n8n instance
What community packages do I have installed?

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Watch mode (auto-rebuild on change)
npm run dev

Project 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, packages

Transport

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 with destructiveHint: true so clients can prompt for confirmation

  • Credential secret data is intentionally excluded from n8n_list_credentials and n8n_get_credential responses (n8n API design — secrets are write-only)

License

MIT

Available Tools

39 tools
n8n_activate_workflowActivate n8n WorkflowA
Idempotent

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 WorkflowA
Idempotent

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 WorkflowA
Idempotent

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 CredentialA
Destructive

Permanently delete a credential. Workflows using it will break.

Args:

  • id (string): Credential ID to delete

Inputs: id (required).

n8n_delete_executionDelete n8n ExecutionA
Destructive

Permanently delete a specific execution and its data.

Args:

  • id (string): Execution ID to delete

Inputs: id (required).

n8n_delete_tagDelete n8n TagA
Destructive

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 VariableA
Destructive

Delete a workflow variable. Workflows referencing it will get undefined.

Args:

  • id (string): Variable ID to delete

Inputs: id (required).

n8n_delete_workflowDelete n8n WorkflowA
Destructive

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 CapabilitiesA
Read-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 CredentialA
Read-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 SchemaA
Read-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 ExecutionA
Read-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 WorkflowA
Read-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 TagsA
Read-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 PackagesA
Read-onlyIdempotent

List all installed community node packages in the n8n instance.

Inputs: no named parameters.

n8n_list_credentialsList n8n CredentialsA
Read-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 ExecutionsA
Read-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 ProjectsA
Read-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 TagsA
Read-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 UsersA
Read-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 VariablesA
Read-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 WorkflowsA
Read-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 TagsA
Idempotent

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 WorkflowA
Idempotent

Restore an archived workflow back to normal state.

Args:

  • id (string): Workflow ID to unarchive

Inputs: id (required).

n8n_uninstall_community_packageUninstall n8n Community PackageA
Destructive

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 CredentialA
Idempotent

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 TagA
Idempotent

Rename an existing tag.

Args:

  • id (string): Tag ID

  • name (string): New tag name

Inputs: id (required), name (required).

n8n_update_variableUpdate n8n VariableA
Idempotent

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 WorkflowA
Idempotent

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

    A3.9/5.0

    Scored across 39 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to programmatically control n8n via natural language for automated workflow creation, modification, and execution management.
      1
      -
    • A
      license
      A
      quality
      C
      maintenance
      Enables management of n8n workflows, executions, credentials, tags, and variables via MCP tools. Supports stdio, Claude Code, and Claude Web with optional Authentik OAuth.
      22
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Full-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 v1
      51
      38 npm
      3
      MIT