Skip to main content

Overview

Railway provides instant cloud hosting for n8n-MCP with:
  • ☁️ Instant cloud hosting - No server setup required
  • 🔒 Secure by default - HTTPS included, auth token warnings
  • 🌐 Global access - Connect from any Claude Desktop
  • Auto-scaling - Railway handles the infrastructure
  • 📊 Built-in monitoring - Logs and metrics included

One-Click Deploy

Deploy on Railway

Step-by-Step Deployment

1. Deploy to Railway

  1. Click the “Deploy on Railway” button above
  2. Sign in to Railway (or create a free account)
  3. Configure your deployment:
    • Project name (optional)
    • Environment (leave as “production”)
    • Region (choose closest to you)
  4. Click “Deploy” and wait ~2-3 minutes

2. Configure Security

The deployment includes a default AUTH_TOKEN for instant functionality, but you MUST change it immediately.
  1. Go to your Railway dashboard
  2. Click on your n8n-mcp service
  3. Navigate to “Variables” tab
  4. Find AUTH_TOKEN
  5. Replace with a secure token:
# Generate secure token locally:
openssl rand -base64 32
  1. Railway will automatically redeploy with the new token
The server displays warnings every 5 minutes until you change the default token.

3. Get Your Service URL

  1. In Railway dashboard, click on your service
  2. Go to “Settings” tab
  3. Under “Domains”, copy your URL:
    https://your-app-name.up.railway.app
    
  4. Add /mcp to the end for your MCP endpoint:
    https://your-app-name.up.railway.app/mcp
    

4. Connect Claude Desktop

Add to your Claude Desktop configuration:
{
  "mcpServers": {
    "n8n-railway": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-app-name.up.railway.app/mcp",
        "--header",
        "Authorization: Bearer YOUR_SECURE_TOKEN_HERE"
      ]
    }
  }
}
~/Library/Application Support/Claude/claude_desktop_config.json
Restart Claude Desktop after saving the configuration.

Environment Variables

Pre-configured Variables

These are automatically set by the Railway template:
VariableDefaultDescription
AUTH_TOKENREPLACE_THIS...⚠️ CHANGE IMMEDIATELY
MCP_MODEhttpRequired for cloud deployment
NODE_ENVproductionProduction optimizations
LOG_LEVELinfoBalanced logging
TRUST_PROXY1Railway runs behind proxy
CORS_ORIGIN*Allow any origin
HOST0.0.0.0Listen on all interfaces
PORT(Railway provides)Automatically configured
AUTH_RATE_LIMIT_WINDOW900000 (15 min)Rate limit window
AUTH_RATE_LIMIT_MAX20Max auth attempts per IP
WEBHOOK_SECURITY_MODEstrictSSRF protection

Optional Variables

For n8n MCP Client Tool Integration

Set N8N_MODE to enable n8n integration mode:
  1. Go to Railway dashboard → Your service → Variables
  2. Add variable: N8N_MODE = true
  3. Save changes - Railway will redeploy automatically

For n8n API Integration (Workflow Management)

Enable workflow management features:
  1. Go to Railway dashboard → Your service → Variables
  2. Add variables:
    • N8N_API_URL: Your n8n instance URL (e.g., https://n8n.example.com)
    • N8N_API_KEY: API key from n8n Settings → API
  3. Save changes - Railway will redeploy automatically

Architecture

Claude Desktop → mcp-remote → Railway (HTTPS) → n8n-MCP Server
  1. Claude Desktop uses mcp-remote as a bridge
  2. mcp-remote converts stdio to HTTP requests
  3. Railway provides HTTPS endpoint and infrastructure
  4. n8n-MCP runs in HTTP mode on Railway

Single-Instance Design

The n8n-MCP HTTP server is designed for single n8n instance deployment. All clients connecting to the server share the same n8n instance. For multi-tenant usage, deploy separate Railway instances.

Security Features

Rate Limiting

  • Automatic brute force protection - 20 attempts per 15 minutes per IP
  • Configurable limits via environment variables
  • Standard rate limit headers for client awareness

SSRF Protection

  • Default strict mode blocks localhost, private IPs, and cloud metadata
  • Cloud metadata always blocked (169.254.169.254, metadata.google.internal, etc.)
  • Use moderate mode only if connecting to local n8n instance
Configure in Variables tab:
WEBHOOK_SECURITY_MODE=strict          # Production (recommended)
# or
WEBHOOK_SECURITY_MODE=moderate        # If using local n8n with port forwarding

Monitoring & Logs

View Logs

  1. Go to Railway dashboard
  2. Click on your n8n-mcp service
  3. Click on “Logs” tab
  4. View real-time logs including:
    • Server startup messages
    • Authentication attempts
    • API requests (without sensitive data)
    • Errors and warnings

Monitor Usage

Railway provides metrics for:
  • Memory usage (typically ~100-200MB)
  • CPU usage (minimal when idle)
  • Network traffic
  • Response times

Pricing

Railway Free Tier

  • $5 free credit monthly
  • 500 hours of runtime
  • Sufficient for personal use of n8n-MCP

Estimated Costs

  • n8n-MCP typically uses: ~0.1 GB RAM
  • Monthly cost: ~$2-3 for 24/7 operation
  • Well within free tier for most users

Troubleshooting

Connection Issues

“Invalid URL” error in Claude Desktop:
  • Ensure you’re using the exact configuration format shown above
  • The URL should end with /mcp
  • Use full HTTPS URL
“Unauthorized” error:
  • Check that your AUTH_TOKEN matches exactly (no extra spaces)
  • Ensure the Authorization header format is correct: Authorization: Bearer TOKEN
“Cannot connect to server”:
  • Verify your Railway deployment is running (check Railway dashboard)
  • Ensure the URL is correct and includes https://
  • Check Railway logs for any errors

Windows: npx Command Not Found

This is a common Windows issue with spaces in Node.js installation paths. Solution 1: Use node directly (Recommended)
{
  "mcpServers": {
    "n8n-railway": {
      "command": "node",
      "args": [
        "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npx-cli.js",
        "-y",
        "mcp-remote",
        "https://your-app-name.up.railway.app/mcp",
        "--header",
        "Authorization: Bearer YOUR_SECURE_TOKEN_HERE"
      ]
    }
  }
}
To find your exact npx path, open Command Prompt and run: where npx

Railway-Specific Issues

Build failures:
  • Railway uses AMD64 architecture - the template is configured for this
  • Check build logs in Railway dashboard for specific errors
Environment variable issues:
  • Variables are case-sensitive
  • Don’t include quotes in the Railway dashboard (only in JSON config)
  • Railway automatically restarts when you change variables

Updates

Since the Railway template uses a specific Docker image tag, updates are manual:
  1. Check for updates on GitHub
  2. Update image tag in Railway:
    • Go to Settings → Deploy → Docker Image
    • Change tag from current to new version
    • Click “Redeploy”

Next Steps

Quickstart Guide

Learn how to use n8n-MCP with Claude

Docker Deployment

Deploy using Docker containers

Build docs developers (and LLMs) love