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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user