Tutoriel : Connecter Claude Desktop à votre N8N sur Raspberry Pi (via Cloudflare Tunnel)
Vous rêvez de demander à Claude : « Analyse mes derniers workflows et dis-moi s’il y a des erreurs » ? C’est désormais possible grâce au Model Context Protocol (MCP).
Cependant, quand on héberge soi-même n8n (Self-hosted) sur un Raspberry Pi à la maison, le rendre accessible à une IA dans le Cloud de manière sécurisée est un défi. Ce guide vous explique comment créer ce pont sécurisé en utilisant Cloudflare Tunnel, sans jamais ouvrir de port sur votre box internet.
Pourquoi Cloudflare Tunnel ?
Plutôt que d’ouvrir le port 5678 sur votre routeur (ce qui est risqué), nous utilisons un logiciel léger (cloudflared) sur le Raspberry Pi. Il crée un lien sortant chiffré vers Cloudflare. Résultat :
- Aucun port ouvert chez vous.
- Votre n8n a une URL HTTPS propre (ex :
n8n.votre-domaine.com). - Le pare-feu (WAF) de Cloudflare bloque les attaques avant qu’elles n’atteignent votre salon.
Étape 1 : Préparer n8n (Attention au piège du cache !)
Le support MCP est arrivé avec la version 2.1 de n8n. Si vous utilisez Docker, attention : Docker aime « mettre en cache » les installations. Il faut forcer la mise à jour.
1. Activer le MCP dans Docker Compose
Ajoutez cette variable d’environnement dans votre fichier docker-compose.yml (attention aux espaces !) :
environment:
- N8N_MCP_ENABLED=true
2. Forcer la reconstruction
Lancez ces commandes pour obliger Docker à télécharger la vraie dernière version contenant le serveur MCP :
docker compose build --no-cache n8n
docker compose up -d
Le build peut prendre jusqu’à une dizaine de minutes ! Astuce : Vérifiez les logs avec docker compose logs n8n. Si vous ne voyez pas la ligne « MCP server started », c’est que la mise à jour n’a pas pris.
Étape 2 : Configurer la sécurité Cloudflare (Zero Trust)
Si vous protégez votre n8n avec une page de login Cloudflare (Zero Trust) comme je l’ai fait, Claude sera bloqué. Il faut lui donner un laisser-passer.
- Allez dans le dashboard Zero Trust > Access > Applications.
- Dans votre application n8n, ajoutez une Policy.
- Action : Choisissez
Bypass(Contourner). - Règle : Sélectionnez Path starts with et entrez
/mcp-server/.
Pourquoi ? L’URL /mcp-server/ est le point d’entrée standard que n8n utilise pour dialoguer avec les IA.
Étape 3 : Configurer Claude Desktop (Sur votre Mac/PC)
Nous allons utiliser supergateway via npx pour gérer la connexion. C’est la méthode recommandée pour gérer l’authentification.
- Dans n8n, allez dans Settings > Instance-Level MCP, puis en haut à droite cliquez sur « Connect » et allez sur l’onglet « Access Token » afin de générer votre clé API.
- Ouvrez le fichier de config de Claude (sur Mac) :
~/Library/Application Support/Claude/claude_desktop_config.json - Collez le code JSON fourni (en remplaçant la clé générée juste au-dessus) :
{
"mcpServers": {
"n8n-mcp": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--streamableHttp",
"https://n8n.votre-domaine.com/mcp-server/http",
"--header",
"Authorization: Bearer VOTRE_CLE_API_COMPLETE_ICI"
]
}
}
}
Important : Notez l’utilisation de /mcp-server/http qui est plus stable que le SSE classique pour traverser les protections Cloudflare.
Étape 4 : Le test de vérité (Curl)
Avant de lancer Claude, testons si le tunnel fonctionne. Ouvrez votre terminal et lancez cette commande :
curl -v -X POST https://n8n.votre-domaine.com/mcp-server/http \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
- Si vous recevez du HTML (
<!DOCTYPE html>) : Cloudflare bloque encore (revérifiez l’étape 2). - Si vous recevez un JSON avec
"serverInfo": C’est gagné ! 🎉
🔒 Note sur la sécurité
Cette configuration est sécurisée car :
- Tout passe par HTTPS via le Tunnel.
- Même si on contourne la page de login Cloudflare, l’accès reste protégé par le Token n8n. Sans ce token, impossible d’entrer.
- N’oubliez pas de créer une clé API dédiée que vous pourrez révoquer si besoin.
Si vous m’avez suivi jusqu’ici, bravo ! En tout cas, je reste disponible si vous avez besoin d’aide.
Laurent
