- Add leantime-mcp Dockerfile (daniel-eder/leantime-mcp, SSE transport) - Add leantime-mcp service to docker-compose.yml on effi-net - Add Leantime env vars to .env.example (API_KEY, USER_EMAIL, URL) - Update services.md: Leantime + leantime-mcp entries, dependency diagram, resource table - Update mcp-et-n8n.md: MCPO config with leantime SSE server, new leantime-mcp section - Add LEANTIME-INSTALLATION.md: full reinstall guide (XPenology + MCP)
5.8 KiB
🔗 Intégration MCP et n8n
Vue d'ensemble
Effi s'intègre avec plusieurs outils externes via :
- MCP (Model Context Protocol) : Protocole d'outils pour l'IA
- n8n : Plateforme d'automatisation de workflows
- CouchDB : Synchronisation Obsidian LiveSync
MCPO - Proxy MCP
Rôle
MCPO fait le pont entre OpenWebUI et les outils MCP (Obsidian, Leantime, etc.).
Configuration
Fichier : ~/effi/mcpo-config/config.json
{
"mcpServers": {
"leantime": {
"url": "http://leantime-mcp:8079/sse",
"transport": "sse"
}
}
}
Important : Le transport doit être sse (MCPO ne supporte pas StreamableHTTP). Le conteneur leantime-mcp doit aussi être configuré en mode SSE.
Accès
- URL MCPO :
http://192.168.1.27:8000 - Port : 8000
Vérification
# Lister les outils MCP disponibles
curl -s http://192.168.1.27:8000/v1/tools | jq '.[].name'
# Vérifier la connexion MCPO
docker logs mcpo --tail 20
Dépannage
Problème : mcpo redémarre en boucle
Cause : Config mcpo-config/config.json vide ou inexistant
Solution :
cat > ~/effi/mcpo-config/config.json << 'EOF'
{"mcpServers": {}}
EOF
docker compose restart mcpo
Problème : Processus zombies
Symptômes : [mcpo] <defunct> dans ps aux
Solution :
docker restart mcpo
Problème : Erreur 400 Bad Request entre MCPO et leantime-mcp
Cause : Incompatibilité de protocole (SSE vs StreamableHTTP)
Solution : Vérifier que leantime-mcp est lancé avec --transport sse et que la config MCPO pointe vers /sse avec "transport": "sse".
leantime-mcp - Serveur MCP Leantime
Rôle
Serveur MCP dédié qui expose l'API Leantime via le protocole MCP, permettant à Effi de gérer les projets et tâches Leantime directement depuis Open WebUI.
Architecture
Open WebUI → MCPO (port 8000) → leantime-mcp (port 8079, SSE) → Leantime API (port 8380, XPenology NAS)
Configuration
Docker Compose :
leantime-mcp:
build:
context: ./leantime-mcp
dockerfile: Dockerfile
image: effi-leantime-mcp:latest
container_name: effi-leantime-mcp
restart: unless-stopped
environment:
- LEANTIME_URL=http://192.168.1.25:8380
- LEANTIME_API_KEY=${LEANTIME_API_KEY}
- LEANTIME_USER_EMAIL=${LEANTIME_USER_EMAIL}
ports:
- "8079:8079"
networks:
- effi-net
Variables d'environnement (.env) :
LEANTIME_URL=http://192.168.1.25:8380
LEANTIME_API_KEY=votre_cle_api_leantime
LEANTIME_USER_EMAIL=votre_email@example.com
Outils MCP disponibles
| Outil | Description |
|---|---|
list_projects |
Lister les projets |
create_project |
Créer un projet |
get_project |
Détails d'un projet |
list_tickets |
Lister les tickets/tâches |
create_ticket |
Créer un ticket |
update_ticket |
Modifier un ticket |
get_ticket |
Détails d'un ticket |
list_users |
Lister les utilisateurs |
get_user |
Détails d'un utilisateur |
add_comment |
Ajouter un commentaire |
add_timesheet |
Ajouter une entrée timesheet |
get_timesheets |
Consulter les timesheets |
Clé API Leantime
Pour générer la clé API :
- Se connecter à
http://192.168.1.25:8380 - Aller dans Company > API Keys
- Créer une nouvelle clé
- Copier la clé dans
.envsousLEANTIME_API_KEY
Transport SSE
Important : Leantime-mcp utilise le transport SSE (Server-Sent Events), pas StreamableHTTP. MCPO ne supporte que SSE. Le Dockerfile lance le serveur avec --transport sse.
Rôle
n8n permet de créer des workflows d'automatisation déclenchés par Effi ou des événements externes.
Configuration
Variables d'environnement (dans .env) :
N8N_USER=master
N8N_PASSWORD=mot_de_passe_securise
Accès
- URL :
http://192.168.1.27:5678 - Authentification : Basic Auth
Cas d'usage
Exemple 1 : Webhook depuis Effi
- Créer un workflow dans n8n avec un nœud Webhook
- Configurer l'URL du webhook dans OpenWebUI
- Effi peut déclencher des actions via ce webhook
Exemple 2 : Intégration Home Assistant (futur)
[Commande vocale Effi]
→ OpenWebUI
→ n8n (webhook)
→ API Home Assistant
→ Action domotique
Sauvegarde des workflows
Les workflows sont stockés dans ~/effi/n8n-data/
CouchDB - Obsidian LiveSync
Rôle
CouchDB sert de backend de synchronisation pour Obsidian LiveSync, permettant d'accéder aux notes depuis plusieurs appareils.
Initialisation (premier démarrage)
# Créer les bases système
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/_users
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/_replicator
# Créer la base pour Obsidian
curl -X PUT http://master:MOT_DE_PASSE@192.168.1.27:5984/obsidian-livesync
Configuration Obsidian
Dans Obsidian (desktop ou mobile) :
- Installer le plugin Self-hosted LiveSync
- Configuration :
- URL :
http://192.168.1.27:5984 - Database :
obsidian-livesync - Username :
master - Password : [mot de passe CouchDB]
- URL :
- Activer la synchronisation
Accès
- URL :
http://192.168.1.27:5984 - Interface Fauxton :
http://192.168.1.27:5984/_utils
Pipelines - Middleware mem0
Rôle
Le service pipelines est un middleware pour OpenWebUI permettant d'utiliser des pipelines personnalisés, notamment mem0 pour la mémoire avancée.
Accès
- URL :
http://192.168.1.27:9099
Intégrations futures
Home Assistant
Voir le document dans les notes d'archive pour les idées d'intégration complète avec Home Assistant.
Nextcloud
Intégration possible pour :
- Sauvegarde automatique des conversations
- Accès aux fichiers pour le RAG
- Synchronisation des tâches