# Guide de Démarrage - Serveur MCP Keep Notes

## 🚀 Méthodes de Démarrage

### Méthode 1: Script PowerShell (Recommandé pour Windows)

Le script vérifie automatiquement les prérequis et démarre le serveur.

```powershell
# Exécuter depuis le dossier mcp-server
.\start-mcp.ps1
```

**Avantages:**
- ✅ Vérifie que Prisma est généré
- ✅ Vérifie que Keep Notes est en cours d'exécution
- ✅ Messages d'erreur clairs
- ✅ Compatible Windows PowerShell

---

### Méthode 2: Script Batch (Windows)

```cmd
# Exécuter depuis le dossier mcp-server
start-mcp.bat
```

---

### Méthode 3: Commande directe (Cross-platform)

```bash
# Depuis le dossier mcp-server
npm start
```

Ou directement:

```bash
node index.js
```

---

### Méthode 4: Mode SSE (Alternative)

Si vous avez besoin du mode SSE (Server-Sent Events):

```bash
npm run start:sse
```

Ou via PowerShell:

```powershell
.\start-sse.ps1
```

---

## ✅ Prérequis

Avant de démarrer, assurez-vous que:

1. **Node.js est installé**
   ```bash
   node --version
   # Doit retourner v18 ou supérieur
   ```

2. **Dépendances sont installées**
   ```bash
   npm install
   ```

3. **Client Prisma est généré**
   ```bash
   npx prisma generate
   ```

4. **Keep Notes est en cours d'exécution**
   - Vérifiez: http://localhost:3000
   - Si non démarré, allez dans `keep-notes/` et exécutez `npm run dev`

---

## 🔧 Installation Initiale (Première fois)

### Étape 1: Installer les dépendances

```bash
cd mcp-server
npm install
```

### Étape 2: Générer le client Prisma

```bash
npx prisma generate
```

### Étape 3: Tester la connexion à la base de données

```bash
node test-server.js
```

Vous devriez voir:

```
🧪 Testing MCP Server Database Connection...

✅ Prisma Client initialized successfully

📝 Test 1: Counting notes...
   Found XX notes in database

✅ All database tests passed successfully!
🚀 MCP Server is ready to use!
```

### Étape 4: Démarrer le serveur MCP

```powershell
.\start-mcp.ps1
```

---

## 🎯 Utilisation avec Cursor

### Configuration Cursor

Ouvrez les paramètres de Cursor et ajoutez:

**JSON Config:**
```json
{
  "mcpServers": {
    "keep-notes": {
      "command": "node",
      "args": ["D:/dev_new_pc/Keep/mcp-server/index.js"]
    }
  }
}
```

**Ou avec le script PowerShell:**
```json
{
  "mcpServers": {
    "keep-notes": {
      "command": "pwsh",
      "args": [
        "-File",
        "D:/dev_new_pc/Keep/mcp-server/start-mcp.ps1"
      ]
    }
  }
}
```

### Vérifier que Cursor reconnaît le MCP

1. Redémarrez Cursor
2. Ouvrez une nouvelle conversation
3. Tapez: "List all MCP tools"
4. Vous devriez voir les outils Keep Notes listés

---

## 🎯 Utilisation avec N8N

### Option 1: Via les workflows MCP

1. Importez les workflows N8N (voir `N8N-SETUP.md`)
2. Configurez les variables d'environnement
3. Activez les workflows

### Option 2: Via MCP Client Node

1. Dans N8N, ajoutez un **MCP Client Tool Node**
2. Configurez l'endpoint:
   - **URL:** `stdio://` (mode par défaut)
   - **Command:** `node`
   - **Args:** `["D:/dev_new_pc/Keep/mcp-server/index.js"]`
3. Sélectionnez les outils que vous souhaitez exposer

---

## 📊 Vérifier le Serveur en Cours d'Exécution

### Vérifier avec PowerShell

```powershell
# Liste les processus Node
Get-Process | Where-Object {$_.ProcessName -eq "node"}
```

### Vérifier le port (si mode SSE)

```powershell
# Vérifier si le port SSE est utilisé (si configuré)
netstat -ano | findstr "3001"
```

---

## 🛑 Arrêter le Serveur

### Depuis le terminal

Appuyez sur **Ctrl+C**

### Depuis PowerShell

```powershell
# Trouver et tuer le processus
$process = Get-Process node | Where-Object {$_.Path -like "*mcp-server*"}
Stop-Process -Id $process.Id
```

---

## 🔍 Dépannage

### Erreur: "Cannot find module '@prisma/client'"

**Solution:**
```bash
npx prisma generate
```

### Erreur: "Connection refused to database"

**Solution:**
1. Vérifiez que Keep Notes est en cours d'exécution (http://localhost:3000)
2. Vérifiez le chemin de la base de données dans `index.js`
3. Exécutez `node test-server.js` pour tester

### Erreur: "Server is not responding"

**Solution:**
1. Vérifiez que le serveur est en cours d'exécution
2. Redémarrez Cursor/N8N
3. Vérifiez les logs dans le terminal

### Erreur: "Permission denied" (Windows)

**Solution:**
Exécutez PowerShell en tant qu'administrateur ou changez la politique d'exécution:

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```

---

## 📝 Logs et Débogage

Le serveur MCP écrit les logs dans la console:

```
Keep Notes MCP server running on stdio
```

Pour plus de détails, ajoutez `--debug` (modifiez le script):

```bash
node index.js --debug
```

---

## 🎉 Démarrage Rapide (Récapitulatif)

```bash
# 1. Allumer Keep Notes
cd keep-notes
npm run dev

# 2. Dans un autre terminal, démarrer MCP
cd mcp-server
npm start

# 3. Ouvrir Cursor/N8N et utiliser les outils MCP
```

---

## 📚 Documentation Complémentaire

- [README.md](./README.md) - Documentation complète du serveur MCP
- [N8N-SETUP.md](./N8N-SETUP.md) - Installation des workflows N8N
- [N8N-WORKFLOWS.md](./N8N-WORKFLOWS.md) - Description des workflows
- [CHANGES.md](./CHANGES.md) - Résumé des modifications

---

## 🚀 Mode SSE Alternative

Si vous avez besoin du mode SSE (Server-Sent Events) pour N8N sur une machine distante:

### Démarrage SSE

```powershell
# Exécuter depuis le dossier mcp-server
.\start-sse.ps1
```

Ou directement:

```bash
npm run start:sse
```

### Documentation SSE Complète

- **[START-SSE.md](./START-SSE.md)** - Guide complet de démarrage SSE
- **[README-SSE.md](./README-SSE.md)** - Documentation des outils SSE
- **Port SSE**: 3001 (par défaut)
- **Nombre d'outils**: 19 (9 Notes + 5 Notebooks + 5 Labels)

### Configuration N8N pour SSE

```json
{
  "name": "keep-notes-sse",
  "transport": "sse",
  "url": "http://YOUR_IP:3001/sse"
}
```

Remplacez `YOUR_IP` par votre IP locale (ex: 192.168.1.100)

---

## 🆘 Support

**Problèmes?**
1. Vérifiez les logs dans le terminal
2. Exécutez `node test-server.js` pour tester
3. Consultez la documentation de débogage

**Commandes utiles:**
```bash
# Vérifier Node.js
node --version

# Vérifier les dépendances
npm list

# Régénérer Prisma
npx prisma generate

# Tester la base de données
node test-server.js
```
