Skip to main content
Glama
chinmaybhatk

N8N MCP Server

by chinmaybhatk
README.md
# N8N MCP Server

Model Context Protocol (MCP) server for managing n8n workflows. This allows Claude and other MCP-compatible tools to create, read, update, and delete workflows in your n8n instance.

## Features

- 📋 List all workflows
- 📖 Get workflow details
- ✏️ Create new workflows  
- 🔄 Update existing workflows
- 🗑️ Delete workflows
- ▶️ Execute workflows
- 📊 View execution history
- 🔄 Activate/deactivate workflows

## Setup

1. Clone this repository:
   ```bash
   git clone https://github.com/chinmaybhatk/n8n-mcp-server.git
   cd n8n-mcp-server
   ```

2. Install dependencies:
   ```bash
   npm install
   ```

3. Create environment file:
   ```bash
   cp .env.example .env
   ```

4. Edit `.env` with your n8n credentials:
   ```
   N8N_URL=https://your-n8n-instance.com
   N8N_API_KEY=your_api_key_here
   ```

5. Build the project:
   ```bash
   npm run build
   ```

## Getting n8n API Key

1. In your n8n instance, go to **Settings** > **API**
2. Create a new API key with the following permissions:
   - `workflow:create`
   - `workflow:read`
   - `workflow:update`
   - `workflow:delete`
   - `workflow:execute`
   - `execution:read`

## Usage

### With Claude Desktop

Add to your Claude Desktop MCP configuration:

```json
{
  "mcpServers": {
    "n8n": {
      "command": "node",
      "args": ["/path/to/n8n-mcp-server/build/index.js"],
      "env": {
        "N8N_URL": "https://your-n8n-instance.com",
        "N8N_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Development

Run in development mode:
```bash
npm run dev
```

## Available Tools

- `list_workflows` - List all workflows with optional active filter
- `get_workflow` - Get detailed workflow information by ID
- `create_workflow` - Create a new workflow with nodes and connections
- `update_workflow` - Update an existing workflow
- `delete_workflow` - Delete a workflow by ID
- `activate_workflow` - Activate or deactivate a workflow
- `execute_workflow` - Manually execute a workflow
- `get_executions` - Get workflow execution history

## Troubleshooting

### Common Issues

**400 Bad Request when creating workflows:**
- The server now automatically generates node IDs if not provided
- Default positions are set for nodes without positions
- Default typeVersion is set to 1 if not specified
- Ensure node names and types are provided

**Authentication Errors:**
- Verify your N8N_API_KEY is correct and has proper permissions
- Ensure your N8N_URL is accessible and includes the protocol (https://)
- Check that the API key hasn't expired

**Network Timeouts:**
- The server includes a 30-second timeout for API requests
- For large workflows, consider breaking them into smaller parts

**405 Method Not Allowed:**
- The server includes fallback methods for activation and execution
- For activation, it will try updating the entire workflow if PATCH fails

### Debug Mode

Enable debug mode by setting `DEBUG=true` in your `.env` file:
```
DEBUG=true
```

This will log request/response data for troubleshooting.

### Testing API Connection

You can test your n8n API connection manually:

```bash
curl -H "X-N8N-API-KEY: your_api_key" https://your-n8n-instance.com/api/v1/workflows
```

## Recent Updates (v1.0.2)

- ✅ Auto-generate node IDs when not provided
- ✅ Set intelligent default positions for nodes
- ✅ Auto-set typeVersion to 1 if not specified
- ✅ Enhanced workflow settings with proper defaults
- ✅ Improved activation endpoint with fallback method
- ✅ Added debug mode for request/response logging
- ✅ Better error messages with full response data

## Recent Updates (v1.0.1)

- ✅ Fixed workflow creation payload structure
- ✅ Added comprehensive error handling and logging
- ✅ Improved node validation before creation
- ✅ Added fallback endpoints for different n8n versions
- ✅ Better error messages for troubleshooting
- ✅ Preserved existing workflow data during updates
- ✅ Increased API timeout to 30 seconds

## Example Usage

Once configured, you can interact with Claude like this:

**You:** "Create a workflow that monitors a webhook, processes the data with a Code node to extract email addresses, and sends notifications via Slack."

**Claude will:**
1. Design the workflow structure
2. Create the appropriate nodes (Webhook, Code, Slack)
3. Configure the connections
4. Use the MCP server to create it in your n8n instance

**Note:** You don't need to specify node IDs or positions - the server handles these automatically!

## Security

- Never commit your `.env` file
- Store API keys securely
- Use environment variables for sensitive configuration
- Ensure your n8n instance is properly secured

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request

## License

ISC