Skip to main content
Glama
README.md
# N8N MCP Server

Serveur MCP (Model Context Protocol) pour gérer plusieurs instances N8N depuis Claude, VSCode ou tout autre client MCP.

## Fonctionnalités

11 outils MCP disponibles :

| Outil | Description |
|-------|-------------|
| `n8n_list_instances` | Lister les instances N8N disponibles |
| `n8n_list_workflows` | Lister les workflows |
| `n8n_search_workflows` | Rechercher des workflows |
| `n8n_get_workflow` | Récupérer un workflow |
| `n8n_create_workflow` | Créer un workflow |
| `n8n_update_workflow` | Mettre à jour un workflow |
| `n8n_delete_workflow` | Supprimer un workflow |
| `n8n_toggle_workflow` | Activer/désactiver un workflow |
| `n8n_execute_workflow` | Exécuter un workflow |
| `n8n_list_executions` | Lister les exécutions |
| `n8n_get_execution` | Détails d'une exécution |

## Modes de transport

Le serveur supporte deux modes de transport :

| Mode | Usage | Variable |
|------|-------|----------|
| **SSE** (défaut) | Déploiement sur Coolify/Docker | `MCP_TRANSPORT=sse` |
| **stdio** | Usage local (Claude Desktop) | `MCP_TRANSPORT=stdio` |

## Installation

### Prérequis

- Node.js 18+
- Une ou plusieurs instances N8N avec API activée

### Installation locale

```bash
# Cloner le repository
git clone https://github.com/businessarchi/n8n-mcp-server.git
cd n8n-mcp-server

# Installer les dépendances
npm install

# Build
npm run build
```

## Configuration

### Variables d'environnement

#### Option 1 : Configuration JSON (recommandé pour plusieurs instances)

```bash
N8N_INSTANCES='[{"name":"prod","url":"https://n8n.example.com","apiKey":"your-api-key"},{"name":"dev","url":"https://n8n-dev.example.com","apiKey":"your-api-key"}]'
```

#### Option 2 : Configuration individuelle

```bash
# Instance 1
N8N_INSTANCE_1_NAME=prod
N8N_INSTANCE_1_URL=https://n8n.example.com
N8N_INSTANCE_1_API_KEY=your-api-key

# Instance 2
N8N_INSTANCE_2_NAME=dev
N8N_INSTANCE_2_URL=https://n8n-dev.example.com
N8N_INSTANCE_2_API_KEY=your-api-key
```

#### Option 3 : Instance unique

```bash
N8N_URL=https://n8n.example.com
N8N_API_KEY=your-api-key
N8N_INSTANCE_NAME=default
```

### Générer une clé API N8N

1. Aller dans **Settings** → **API** dans votre instance N8N
2. Créer une nouvelle clé API
3. Copier la clé et l'utiliser dans la configuration

## Utilisation

### Avec Claude Desktop (mode stdio)

Ajouter dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ou `%APPDATA%\Claude\claude_desktop_config.json` (Windows) :

```json
{
  "mcpServers": {
    "n8n": {
      "command": "node",
      "args": ["/chemin/vers/n8n-mcp-server/dist/index.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "N8N_INSTANCES": "[{\"name\":\"prod\",\"url\":\"https://n8n.example.com\",\"apiKey\":\"xxx\"}]"
      }
    }
  }
}
```

### Avec un client MCP SSE (mode réseau)

Une fois déployé sur Coolify, le serveur expose :

| Endpoint | Description |
|----------|-------------|
| `GET /` | Informations sur le serveur |
| `GET /health` | Health check |
| `GET /sse` | Connexion SSE pour les clients MCP |
| `POST /messages` | Envoi de messages au serveur |

Configuration client MCP SSE :
```json
{
  "mcpServers": {
    "n8n": {
      "transport": "sse",
      "url": "https://votre-serveur.coolify.io/sse"
    }
  }
}
```

## Déploiement sur Coolify

### Configuration Coolify

1. **Créer une nouvelle application** dans Coolify
2. **Source** : GitHub → Sélectionner ce repository
3. **Type de build** : Dockerfile
4. **Port exposé** : `3000`

### Variables d'environnement Coolify

```
N8N_INSTANCES=[{"name":"prod","url":"https://n8n.example.com","apiKey":"xxx"}]
```

Ou individuellement :

```
N8N_INSTANCE_1_NAME=prod
N8N_INSTANCE_1_URL=https://n8n.example.com
N8N_INSTANCE_1_API_KEY=your-api-key
```

### Health Check

Configurer le health check vers `/health` sur le port `3000`.

## Développement

```bash
# Mode développement avec rechargement automatique
npm run dev

# Build
npm run build

# Démarrer en production (SSE par défaut)
npm start

# Démarrer en mode stdio
MCP_TRANSPORT=stdio npm start
```

## Architecture

```
src/
├── index.ts        # Point d'entrée MCP Server (SSE + stdio)
├── config.ts       # Gestion de la configuration
├── n8n-client.ts   # Client API N8N
├── tools.ts        # Définitions des 11 outils MCP
└── types.ts        # Types TypeScript
```

## Licence

MIT