# Configuration du MCP Server avec N8N

Le serveur MCP de Memento utilise le protocole **stdio** (standard input/output), pas HTTP. Voici comment le configurer avec N8N:

## 1. Configuration du MCP Server dans N8N

N8N doit connaître le serveur MCP avant de pouvoir l'utiliser. Ajoutez cette configuration dans votre fichier de config N8N:

### Méthode A: Via Variables d'Environnement

Ajoutez dans votre fichier `.env` de N8N:

```env
N8N_MCP_SERVERS='{"memento":{"command":"node","args":["D:/dev_new_pc/Keep/mcp-server/index.js"],"env":{}}}'
```

### Méthode B: Via Fichier de Configuration MCP

Créez un fichier `~/.n8n/mcp-config.json`:

```json
{
  "mcpServers": {
    "memento": {
      "command": "node",
      "args": ["D:/dev_new_pc/Keep/mcp-server/index.js"],
      "env": {}
    }
  }
}
```

Puis dans N8N, ajoutez:
```env
N8N_MCP_CONFIG_PATH=/path/to/.n8n/mcp-config.json
```

### Méthode C: Configuration Claude Desktop (Alternative)

Si vous utilisez Claude Desktop avec MCP, ajoutez dans `%APPDATA%\Claude\claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "memento": {
      "command": "node",
      "args": ["D:/dev_new_pc/Keep/mcp-server/index.js"]
    }
  }
}
```

## 2. Utilisation dans N8N Workflows

Une fois configuré, vous pouvez utiliser le noeud **"MCP Client"** dans vos workflows:

### Exemple: Créer une note via MCP

```javascript
// Node MCP Client
{
  "serverName": "memento",
  "tool": "create_note",
  "parameters": {
    "title": "Note from N8N",
    "content": "Created via MCP protocol",
    "color": "blue"
  }
}
```

### Outils MCP Disponibles

1. **create_note** - Créer une note
   - Paramètres: title, content, color, type, checkItems, labels, isPinned, isArchived

2. **get_notes** - Récupérer toutes les notes
   - Paramètres: includeArchived, search

3. **get_note** - Récupérer une note par ID
   - Paramètres: id

4. **update_note** - Mettre à jour une note
   - Paramètres: id, title, content, color, checkItems, labels, isPinned, isArchived

5. **delete_note** - Supprimer une note
   - Paramètres: id

6. **search_notes** - Rechercher des notes
   - Paramètres: query

7. **pin_note** - Épingler/désépingler une note
   - Paramètres: id, isPinned

8. **archive_note** - Archiver/désarchiver une note
   - Paramètres: id, isArchived

9. **add_label** - Ajouter un label à une note
   - Paramètres: id, label

## 3. Alternative: Workflow REST API

Pour tester immédiatement sans configurer MCP, utilisez le workflow REST API fourni dans `n8n-memento-workflow.json`.

Ce workflow teste l'API REST de Memento:
- Create Note (POST /api/notes)
- Get All Notes (GET /api/notes)
- Update Note (PUT /api/notes)

## 4. Démarrage des Serveurs

### Serveur Web Memento
```bash
cd D:/dev_new_pc/Keep/keep-notes
npm run dev
```
→ http://localhost:3000

### Serveur MCP (pour test manuel)
```bash
cd D:/dev_new_pc/Keep/mcp-server
node index.js
```

### Import du Workflow dans N8N

1. Ouvrez N8N
2. Cliquez sur "Import from File"
3. Sélectionnez `n8n-memento-workflow.json`
4. Assurez-vous que Memento tourne sur http://localhost:3000
5. Exécutez le workflow avec "Execute Workflow"

## 5. Test du MCP Server

Pour tester le serveur MCP en ligne de commande:

```bash
cd D:/dev_new_pc/Keep/mcp-server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node index.js
```

Vous devriez voir la liste des 9 outils disponibles.

## Notes Importantes

- Le serveur MCP utilise **stdio** (stdin/stdout) pour la communication, pas HTTP
- N8N doit être configuré pour connaître le serveur MCP avant utilisation
- Le workflow JSON fourni teste uniquement l'API REST (plus simple à tester)
- Pour utiliser MCP dans N8N, utilisez le noeud "MCP Client" après configuration
- Le serveur Next.js doit tourner pour que l'API REST fonctionne
