Files
Effi/docs/02-configuration/mcp-et-n8n.md
T
Folzo c4467d0da2 feat: integrate Leantime project management via MCP (leantime-mcp + MCPO)
- 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)
2026-05-10 17:53:21 +02:00

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 :

  1. Se connecter à http://192.168.1.25:8380
  2. Aller dans Company > API Keys
  3. Créer une nouvelle clé
  4. Copier la clé dans .env sous LEANTIME_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

  1. Créer un workflow dans n8n avec un nœud Webhook
  2. Configurer l'URL du webhook dans OpenWebUI
  3. 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) :

  1. Installer le plugin Self-hosted LiveSync
  2. Configuration :
    • URL : http://192.168.1.27:5984
    • Database : obsidian-livesync
    • Username : master
    • Password : [mot de passe CouchDB]
  3. 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