- Unified localStorage key to 'theme-preference' across all components
- Fixed header.tsx using wrong localStorage key ('theme' instead of 'theme-preference')
- Added localStorage hybrid persistence for instant theme changes
- Removed router.refresh() which was causing stale data revert
- Replaced Blue theme with Sepia
- Consolidated auth() calls to prevent race conditions
- Updated UserSettingsData types to include all themes
7.4 KiB
Guide de Démarrage - Serveur MCP Keep Notes (Mode SSE)
🚀 Démarrage Rapide du Serveur SSE
Option 1: Script PowerShell (Recommandée pour Windows)
# Exécuter depuis le dossier mcp-server
.\start-sse.ps1
Ce script fait:
- ✅ Vérifie que Prisma est généré
- ✅ Vérifie que Keep Notes est en cours d'exécution (port 3000)
- ✅ Génère Prisma si nécessaire
- ✅ Messages d'erreur clairs
- ✅ Démarre le serveur MCP sur le port 3001
Option 2: Commande directe
cd mcp-server
npm run start:sse
Ou directement:
node index-sse.js
✅ Prérequis
1. Node.js installé
node --version
# Doit retourner v18 ou supérieur
2. Dépendances installées
cd mcp-server
npm install
3. Client Prisma généré
npx prisma generate
4. Keep Notes en cours d'exécution
Le serveur SSE nécessite que Keep Notes soit démarré sur le port 3000.
# Dans un autre terminal
cd keep-notes
npm run dev
5. Port 3001 disponible
Le serveur SSE utilise le port 3001. Vérifiez qu'il n'est pas déjà utilisé:
# Windows (PowerShell)
netstat -ano | findstr "3001"
# Mac/Linux
lsof -i :3001
🎯 Utilisation avec N8N
Configuration N8N pour MCP SSE
Le serveur SSE est parfait pour N8N sur une machine distante!
Étape 1: Trouver votre IP
Windows:
ipconfig
Cherchez "IPv4 Address" (ex: 192.168.1.100)
Mac/Linux:
ifconfig
# ou
ip addr show
Étape 2: Configurer N8N
Dans N8N, allez dans Settings → MCP Access et ajoutez:
{
"name": "keep-notes",
"transport": "sse",
"url": "http://192.168.1.100:3001/sse"
}
Remplacez 192.168.1.100 par votre IP réelle.
Étape 3: Activer les workflows
- Importez les workflows N8N (voir
N8N-SETUP.md) - Activez chaque workflow (bouton play)
- Les workflows peuvent maintenant appeler les outils MCP
🛠️ Outils Disponibles (19 au total)
Notes (9 outils)
| # | Outil | Description |
|---|---|---|
| 1 | create_note | Créer une nouvelle note (support complet) |
| 2 | get_notes | Récupérer toutes les notes (supporte filtres) |
| 3 | get_note | Récupérer une note par ID |
| 4 | update_note | Mettre à jour une note |
| 5 | delete_note | Supprimer une note |
| 6 | search_notes | Rechercher des notes |
| 7 | get_labels | Récupérer les labels (méthode legacy) |
| 8 | toggle_pin | Épingler/désépingler une note |
| 9 | toggle_archive | Archiver/désarchiver une note |
Notebooks (5 outils)
| # | Outil | Description |
|---|---|---|
| 10 | create_notebook | Créer un nouveau notebook |
| 11 | get_notebooks | Récupérer tous les notebooks |
| 12 | get_notebook | Récupérer un notebook avec ses notes |
| 13 | update_notebook | Mettre à jour un notebook |
| 14 | delete_notebook | Supprimer un notebook |
Labels (5 outils)
| # | Outil | Description |
|---|---|---|
| 15 | create_label | Créer un nouveau label |
| 16 | get_labels_detailed | Récupérer les labels avec détails |
| 17 | update_label | Mettre à jour un label |
| 18 | delete_label | Supprimer un label |
📊 Tests de Vérification
Test 1: Health Check
curl http://localhost:3001/
Réponse attendue:
{
"name": "Keep Notes MCP SSE Server",
"version": "2.0.0",
"status": "running",
"endpoints": {
"sse": "/sse",
"message": "/message"
}
}
Test 2: SSE Connection
curl -N http://localhost:3001/sse
Test 3: Appeler un outil (get_notes)
curl -X POST http://localhost:3001/message \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_notes",
"arguments": {}
},
"id": 1
}'
Test 4: Créer une note
$body = @{
jsonrpc = "2.0"
method = "tools/call"
params = @{
name = "create_note"
arguments = @{
content = "Test depuis MCP SSE"
title = "SSE Test"
color = "green"
}
}
id = 1
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Method POST -Uri "http://localhost:3001/message" `
-Body $body -ContentType "application/json"
🔧 Configuration Avancée
Changer le port
Modifier index-sse.js:
const PORT = process.env.PORT || 3002;
Ou utiliser une variable d'environnement:
$env:PORT=3002; node index-sse.js
Sécurisation avec API Key
Ajouter de l'authentification dans index-sse.js:
app.use((req, res, next) => {
const apiKey = req.headers['x-api-key'];
if (apiKey !== process.env.MCP_API_KEY) {
return res.status(401).json({ error: 'Unauthorized' });
}
next();
});
🛑 Arrêter le Serveur
Appuyez sur Ctrl+C dans le terminal.
Le serveur fermera proprement:
- Arrêtera toutes les connexions SSE
- Déconnectera Prisma de la base de données
- Affichera un message de confirmation
📚 Documentation Complémentaire
- README-SSE.md - Documentation détaillée des outils
- README.md - Documentation principale du serveur MCP
- N8N-SETUP.md - Guide d'installation des workflows N8N
- N8N-WORKFLOWS.md - Description des workflows N8N
🔍 Dépannage
Erreur: "Port 3001 already in use"
Solution 1: Changer le port dans index-sse.js:
const PORT = process.env.PORT || 3002;
Solution 2: Trouver et tuer le processus:
Get-Process node | Where-Object {$_.Path -like "*index-sse*"}
Stop-Process -Id $process.Id
Erreur: "Cannot connect from N8N"
Checklist:
- ✅ Serveur SSE en cours d'exécution (
http://localhost:3001fonctionne) - ✅ Firewall autorise le port 3001
- ✅ Utilisation de l'IP correcte (pas
localhostdepuis N8N distant) - ✅ N8N peut atteindre votre réseau
- ✅ Utilisation de
http://(pashttps://)
Test depuis N8N:
curl http://YOUR_IP:3001/
Erreur: "Prisma Client not initialized"
Solution:
cd mcp-server
npx prisma generate
SSE Connection Drops
C'est normal! SSE maintient une connexion persistante. Si elle chute:
- Le client doit se reconnecter automatiquement
- Vérifier la stabilité du réseau
- Vérifier les paramètres firewall/proxy
🌐 Architecture SSE vs stdio
| Fonctionnalité | SSE (index-sse.js) | stdio (index.js) |
|---|---|---|
| Transport | HTTP/SSE | Process local |
| Accès distant | ✅ Oui | ❌ Non |
| Port | 3001 | N/A |
| Utilisation N8N | ✅ Parfait | ❌ Impossible |
| Utilisation Cursor | ✅ Possible | ✅ Parfait |
| Setup | Moyen | Simple |
| Latence | Faible | Très faible |
| Outils | 19 | 19 |
Recommandation:
- SSE pour N8N sur machine distante ✅
- stdio pour Cursor sur la même machine ✅
🎉 Démarrage Rapide (Récapitulatif)
# 1. Démarrer Keep Notes (terminal 1)
cd keep-notes
npm run dev
# 2. Démarrer le serveur MCP SSE (terminal 2)
cd mcp-server
.\start-sse.ps1
# 3. Configurer N8N avec: http://YOUR_IP:3001/sse
# 4. Importer et activer les workflows N8N
# 5. Utiliser les outils MCP dans vos workflows!
Version: 2.0.0 Dernière mise à jour: 18 janvier 2026 Status: ✅ Production Ready