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)
This commit is contained in:
Folzo
2026-05-10 17:53:21 +02:00
parent 21674f6eaf
commit c4467d0da2
6 changed files with 482 additions and 12 deletions
+95 -11
View File
@@ -13,7 +13,7 @@ Effi s'intègre avec plusieurs outils externes via :
### Rôle
MCPO fait le pont entre OpenWebUI et les outils MCP (Obsidian, système de fichiers, etc.).
MCPO fait le pont entre OpenWebUI et les outils MCP (Obsidian, Leantime, etc.).
### Configuration
@@ -21,23 +21,32 @@ MCPO fait le pont entre OpenWebUI et les outils MCP (Obsidian, système de fichi
```json
{
"mcpServers": {}
"mcpServers": {
"leantime": {
"url": "http://leantime-mcp:8079/sse",
"transport": "sse"
}
}
}
```
Au démarrage, créer ce fichier s'il n'existe pas :
```bash
cat > ~/effi/mcpo-config/config.json << 'EOF'
{"mcpServers": {}}
EOF
```
**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 : `http://192.168.1.27:8000`
- URL MCPO : `http://192.168.1.27:8000`
- Port : 8000
### Vérification
```bash
# 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**
@@ -61,9 +70,84 @@ docker compose restart mcpo
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"`.
---
## n8n - Automatisation
## 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 :**
```yaml
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`) :**
```bash
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