Files
Claude-config/mcp/INSTALL.md
Matthieu ea27f27f7f chore : initial claude-config repo
- global CLAUDE.md (time tracking via MCP lesstime)
- workspace CLAUDE.md (dev_malio inventory)
- commands : ticket-writer, push-tickets-lesstime, full-project-review, bump-version
- MCP install guide (Code + Desktop) + .mcp.json.example
- scripts/install.sh + sync.sh
2026-05-13 17:03:07 +02:00

229 lines
6.2 KiB
Markdown

# Installation MCP Lesstime — Claude Code & Claude Desktop
Guide d'installation du serveur MCP **Lesstime** (Malio) pour exposer les outils de gestion de projet (projets, tâches, time-entries, etc.) directement dans Claude Code et Claude Desktop.
---
## 1. Prérequis
### 1.1 Node.js (npx)
Claude Desktop a besoin de `npx` pour lancer le proxy `mcp-remote`. Vérifier qu'il est installé :
```bash
which npx
node --version
```
Si rien ne sort, installer Node.js :
- **Debian/Ubuntu** : `sudo apt install nodejs npm`
- **Via nvm** (recommandé) : voir https://github.com/nvm-sh/nvm
### 1.2 Token API Lesstime
Chaque utilisateur a son **propre token**, lié à ses droits dans l'application. Il n'existe **pas** de token partagé.
1. Aller sur **http://project.malio-dev.fr/profile** (connecté avec son compte Lesstime)
2. Section **Token API MCP**
3. Cliquer sur **Régénérer**
4. **Copier le token affiché immédiatement** (il ne sera plus visible après)
> ⚠️ Le token est un secret personnel. Ne jamais le commiter, ne jamais le partager dans Slack / mail / logs publics. Si tu le compromets, retourne sur le profil et régénère-en un nouveau (l'ancien est invalidé).
---
## 2. Installation Claude Code
Claude Code supporte nativement les transports MCP `http`. C'est la méthode la plus simple.
### 2.1 Éditer le fichier de config
```bash
# Créer le dossier si besoin
mkdir -p ~/.claude
# Ouvrir le fichier
nano ~/.claude/.mcp.json
```
### 2.2 Coller la configuration
```json
{
"mcpServers": {
"lesstime": {
"type": "http",
"url": "http://project.malio-dev.fr/_mcp",
"headers": {
"Authorization": "Bearer TON_TOKEN_ICI"
}
}
}
}
```
Remplacer `TON_TOKEN_ICI` par le token récupéré à l'étape 1.2.
### 2.3 Redémarrer Claude Code
```bash
/exit
```
puis relancer la commande `claude` dans le terminal. Le serveur `lesstime` doit apparaître dans la liste des MCPs connectés.
---
## 3. Installation Claude Desktop
Claude Desktop ne supporte **pas** nativement le transport HTTP — il faut passer par un wrapper local `mcp-remote` (lancé via `npx`).
### 3.1 Localiser le fichier de config
Sur Linux :
```
~/.config/Claude/claude_desktop_config.json
```
Sur macOS :
```
~/Library/Application Support/Claude/claude_desktop_config.json
```
Sur Windows :
```
%APPDATA%\Claude\claude_desktop_config.json
```
### 3.2 Éditer le fichier
```bash
mkdir -p ~/.config/Claude
nano ~/.config/Claude/claude_desktop_config.json
```
### 3.3 Ajouter le bloc `mcpServers`
Si le fichier est **vide** ou inexistant :
```json
{
"mcpServers": {
"lesstime": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://project.malio-dev.fr/_mcp",
"--allow-http",
"--header",
"Authorization: Bearer TON_TOKEN_ICI"
]
}
}
}
```
Si le fichier contient **déjà** d'autres clés (ex. `preferences`), ajouter juste la clé `mcpServers` à côté, sans toucher au reste :
```json
{
"preferences": {
"...": "..."
},
"mcpServers": {
"lesstime": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://project.malio-dev.fr/_mcp",
"--allow-http",
"--header",
"Authorization: Bearer TON_TOKEN_ICI"
]
}
}
}
```
> 💡 Le flag `--allow-http` est **obligatoire** : `mcp-remote` refuse par défaut les URLs non-HTTPS. Comme `project.malio-dev.fr` est en HTTP, sans ce flag tu auras l'erreur : `Error: Non-HTTPS URLs are only allowed for localhost or when --allow-http flag is provided`.
### 3.4 Redémarrer Claude Desktop
Quitter **complètement** l'app (`Ctrl+Q` ou via le menu — fermer la fenêtre ne suffit pas), puis relancer. Le serveur `lesstime` doit apparaître dans la liste des outils MCP disponibles.
---
## 4. Vérification
Une fois Claude (Code ou Desktop) relancé, demander par exemple :
> *« Liste-moi les projets via le MCP lesstime »*
Si tout est bien configuré, Claude appelle l'outil `list-projects` et renvoie la liste des projets actifs (ADMIN, COLTURA, Ferme, Formation, etc.).
### Outils exposés par le MCP Lesstime
Le serveur expose une vingtaine d'outils, regroupés par entité :
- **Projets** : `list-projects`, `get-project`, `create-project`, `update-project`
- **Tâches** : `list-tasks`, `get-task`, `create-task`, `update-task`, `delete-task`
- **Récurrences de tâches** : `create-task-recurrence`, `update-task-recurrence`, `delete-task-recurrence`
- **Time-entries** : `list-time-entries`, `create-time-entry`, `update-time-entry`, `delete-time-entry`
- **Groupes** : `list-groups`, `create-group`, `update-group`
- **Référentiels** : `list-clients`, `list-users`, `list-statuses`, `list-priorities`, `list-tags`, `list-efforts`
---
## 5. Troubleshooting
### Erreur : `Non-HTTPS URLs are only allowed for localhost...`
Tu as oublié `--allow-http` dans les `args` de la config Claude Desktop. Voir 3.3.
### Erreur : `command not found: npx`
Node.js n'est pas installé ou pas dans le PATH. Voir 1.1.
### Erreur 401 / 403 dans les logs
Token invalide ou révoqué. Régénérer un nouveau token sur http://project.malio-dev.fr/profile et le remettre dans la config.
### Le serveur ne monte pas après redémarrage
- Vérifier que le JSON est **syntaxiquement valide** (virgule manquante, accolades non fermées). On peut tester avec : `cat ~/.config/Claude/claude_desktop_config.json | jq .`
- Vérifier les logs Claude Desktop :
- Linux : `~/.config/Claude/logs/`
- macOS : `~/Library/Logs/Claude/`
- Vérifier que le serveur Lesstime est joignable : `curl http://project.malio-dev.fr/_mcp` (devrait répondre, même si c'est une erreur 401 sans header).
### Tester `mcp-remote` à la main
```bash
npx -y mcp-remote http://project.malio-dev.fr/_mcp --allow-http --header "Authorization: Bearer TON_TOKEN_ICI"
```
Le process doit rester en vie et écouter sur stdin. Ctrl+C pour quitter.
---
## 6. Désinstallation
Pour retirer le MCP : supprimer la clé `"lesstime"` du bloc `mcpServers` dans le fichier de config correspondant, puis redémarrer Claude.
Si plus aucun serveur n'est configuré, on peut laisser un bloc vide :
```json
{
"mcpServers": {}
}
```
---
*Dernière mise à jour : 13 mai 2026*