Keep/mcp-server/START-SSE.md
sepehr ddb67ba9e5 fix: unify theme system - fix theme switching persistence
- 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
2026-01-18 22:33:41 +01:00

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 SettingsMCP 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

  1. Importez les workflows N8N (voir N8N-SETUP.md)
  2. Activez chaque workflow (bouton play)
  3. 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


🔍 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:

  1. Serveur SSE en cours d'exécution (http://localhost:3001 fonctionne)
  2. Firewall autorise le port 3001
  3. Utilisation de l'IP correcte (pas localhost depuis N8N distant)
  4. N8N peut atteindre votre réseau
  5. Utilisation de http:// (pas https://)

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