Source repository czlonkowski/n8n-mcp ↗ 22,312 stars · TypeScript

What problem does it solve?

Building n8n workflows usually requires manual UI clicks: you find integrations, wire up authentication, map fields, handle errors, test, and deploy. For complex multi-step automation—especially when you're not sure of the exact steps yet—this is slow and error-prone.

n8n MCP solves this by letting Claude Code act as your workflow architect. You describe a business process in English (e.g., "When a new row is added to this Airtable, fetch related data from an API, transform it, and post to Slack"), and Claude Code generates the corresponding n8n workflow, deploys it, and can iterate if needed. This is most useful if you're already using n8n for automation and want to spend less time in the UI, or if you want to version-control and test workflows as code.

How it works

n8n MCP is an MCP server written in TypeScript. Once installed and configured, it exposes Claude Code (or Windsurf, Cursor, and other MCP-compatible editors) to n8n's REST API. You communicate with it like any other MCP tool:

The server sits between your editor and your n8n instance (whether self-hosted or cloud), so you need an n8n account or deployment and valid API credentials to authenticate the MCP.

Using it with Claude Code

Once you've installed and registered the n8n MCP with Claude Code (or Windsurf/Cursor), you can ask Claude to build workflows without switching to the n8n UI. For example:

Prompt: "Build me an n8n workflow that polls this webhook for new orders, fetches customer details from our Postgres database, and sends a summary to our Slack channel every hour."

Claude Code will generate the JSON workflow definition, call the MCP to validate integrations and credentials, and deploy it. This is part of a broader trend in AI-agent tooling: using MCPs to let AI agents automate platform-specific tasks without manual intervention.

It's especially valuable in workflows where you'd normally write an agent to orchestrate third-party APIs—n8n's node library often covers the same integrations without requiring custom code.

When not to use it

Requires an n8n instance: This MCP is not useful if you don't already use n8n or don't have a self-hosted or cloud deployment. If you're starting from scratch and need workflow automation, you may want to evaluate n8n directly or compare it with tools like Activepieces (which is MCP-native and ships with 400+ preloaded servers).

Complex custom logic: If your workflow needs bespoke JavaScript or Python transformations beyond n8n's built-in node types, you'll still need to write that code manually in n8n. The MCP automates the scaffolding and integration wiring, not the business logic inside nodes.

Real-time, latency-sensitive workflows: n8n workflows have inherent polling or polling-based trigger delays. If you need sub-second response times, this is not the right tool.

Limited maturity: The repo was created in mid-2025 and is actively maintained, but at 22k stars it's still relatively new. Expect occasional edge cases, missing n8n node types, or API compatibility issues as n8n evolves. Test thoroughly in a staging n8n workspace before running production workflows.

Getting started

Prerequisites: An n8n instance (self-hosted or cloud) and an API token.

Installation: The repo includes instructions for installing the MCP in Claude Desktop, Windsurf, and Cursor. Clone or download the repository, install dependencies, and add the MCP config to your editor's settings.

Example: Installing in Claude Desktop
git clone https://github.com/czlonkowski/n8n-mcp.git cd n8n-mcp npm install npm run build

Then register the MCP by adding it to your editor's configuration file (the exact location varies by editor). You'll need:

First workflow: Open Claude Code and ask it to build a simple workflow. Start with something straightforward—like "Create a workflow that fetches data from a webhook and logs it"—so you can see the end-to-end flow before tackling complex multi-step automation.

For more examples and troubleshooting, check the repo's README and issue tracker.