by Super-Chain
Convert N8N agent / workflow into MCP servers, you can use it in Claude / Cursor / Super Chain
# Add to your Claude Code skills
git clone https://github.com/Super-Chain/N8N2MCPA comprehensive platform that converts N8N workflows into Model Context Protocol (MCP) servers, enabling seamless integration with AI assistants like Claude, Cursor, and other MCP-compatible platforms. Build powerful automation tools using N8N's visual workflow editor and deploy them as callable AI functions.

Copy the N8N template link/JSON from any workflow
Map your credentials through our intuitive interface
Deploy with one click!
Your N8N workflow gets deployed and creates a local hosted MCP server. Just paste the server URL into Claude, Cursor, Super Chain, or any MCP-compatible platform!
Convert your N8N workflows into MCP servers that AI assistants can use as custom tools
graph TB
subgraph "AI Assistant Layer"
A[Claude/Cursor/Super Chain]
end
subgraph "N8N 2 MCP"
B[Agent Marketplace<br/>Flask Web App]
C[MCP Router<br/>FastAPI Service]
D[Workflow Parser<br/>Analysis Engine]
end
subgraph "Infrastructure"
E[Supabase Database]
F[N8N Instance]
G[Credential Manager]
end
A -->|MCP Protocol| C
C -->|Dynamic MCP| F
B -->|Workflow Management| E
B -->|Deploy & Configure| F
C -->|User Config| E
B -->|Parse & Analyze| D
D -->|Extract Requirements| G
G -->|Secure Handling| F
No comments yet. Be the first to share your thoughts!
⚠️ Important: Playwright installation is required for N8N workflow execution. The system will use dummy credentials if Playwright is not properly installed, limiting functionality.
Clone the repository
git clone https://github.com/Super-Chain/N8N2MCP.git
cd N8N2MCP
Configure environment
cp env.example .env
# Edit .env with your actual configuration values
Start with Docker Compose
docker-compose up -d
This starts:
View logs
docker-compose logs -f
Clone the repository
git clone https://github.com/Super-Chain/N8N2MCP.git
cd N8N2MCP
Install dependencies
pip install -r requirements.txt
Install Playwright browsers (Required)
playwright install
# This downloads the necessary browser binaries for N8N authentication
Configure environment
# Copy and edit the .env file (see Environment Configuration section)
cp .env.example .env
# Supabase Configuration
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
# N8N Configuration
X_N8N_API_KEY=your_n8n_api_key
N8N_BASE_URL=https://your-n8n-instance.com
N8N_USERNAME=your_n8n_username
N8N_PASSWORD=your_n8n_password
# MCP Router Configuration
N8N_BUILDER_URL=http://localhost:6545
# Server Configuration
FLASK_HOST=0.0.0.0
FLASK_PORT=5000
MCP_HOST=0.0.0.0
MCP_PORT=6545
# Optional: Authentication credentials (auto-populated)
N8N_AUTH=
N8N_BROWSER_ID=
Start both servers
python main.py
This starts:
Access to UI Front end : http://localhost:5000
Configuration Notes:
# Example MCP server URL format:
http://localhost:6545/mcp/{workflow_id}/{api_key}
# Test MCP server:
curl http://localhost:6545/list # List all registered MCP servers
N8N2MCP/
├── main.py # Unified server startup script
├── requirements.txt # Consolidated Python dependencies
├── .env # Environment configuration (shared)
│
├── agent_marketplace/ # Flask web application
│ ├── app.py # Main Flask app with API endpoints
│ ├── database.py # Supabase integration & data models
│ ├── n8n_workflow_parser.py # Workflow analysis engine
│ ├── setup_supabase.py # Database setup utilities
│ ├── templates/ # HTML templates
│ │ ├── workflows.html # Main marketplace interface
│ │ └── static/ # CSS, JS assets
│ └── __init__.py # Python package marker
│
├── mcp_router/ # FastAPI MCP service
│ ├── mcp_router.py # Main FastAPI application
│ ├── n8n_credential_extractor.py # N8N authentication
│ ├── credential_helper.py # Credential management utilities
│ └── __init__.py # Python package marker
│
└── README.md # This documentation
The system uses 2 main tables in Supabase:
-- Main workflow storage table
CREATE TABLE IF NOT EXISTS public.user_workflows (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
user_id TEXT NOT NULL,
template_id TEXT NOT NULL,
template_url TEXT NOT NULL,
workflow_name TEXT NOT NULL,
workflow_json JSONB NOT NULL,
workflow_description TEXT,
n8n_workflow_id TEXT,
source TEXT DEFAULT 'user_upload',
credentials_required JSONB DEFAULT '[]'::jsonb,
mcp_link TEXT,
status TEXT DEFAULT 'pending',
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- MCP server configurations
CREATE TABLE IF NOT EXISTS public.mcp_configs (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
workflow_id TEXT NOT NULL,
user_apikey TEXT NOT NULL,
code TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(workflow_id, user_apikey)
);
-- Enable Row Level Security (recommended)
ALTER TABLE user_workflows ENABLE ROW LEVEL SECURITY;
ALTER TABLE mcp_configs ENABLE ROW LEVEL SECURITY;
python main.py
This automatically starts both services with: