# Configuration N8N - Memento MCP Server

## Configuration MCP Client dans N8N

Le serveur MCP utilise le transport **Streamable HTTP** (remplace l'ancien SSE).

### 1. Generer une cle API

Dans Memento : **Parametres > MCP > Generer une cle**

La cle a le format `mcp_sk_...` et est associee a votre compte utilisateur. Seules vos notes seront accessibles.

### 2. Configurer le noeud MCP Client dans N8N

1. Ajouter un noeud **MCP Client** dans votre workflow
2. **Server Transport** : `Streamable HTTP`
3. **MCP Endpoint URL** : `http://memento-mcp:3001/mcp` (Docker) ou `http://VOTRE_IP:3001/mcp`
4. **Authentication** : Header Auth
   - Header Name : `x-api-key`
   - Header Value : votre cle API (`mcp_sk_...`)

### Alternative : curl

```bash
# Health check
curl -H "x-api-key: mcp_sk_votrecle" http://localhost:3001/

# Lister les outils
curl -X POST http://localhost:3001/mcp \
  -H "Content-Type: application/json" \
  -H "x-api-key: mcp_sk_votrecle" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

# Creer une note
curl -X POST http://localhost:3001/mcp \
  -H "Content-Type: application/json" \
  -H "x-api-key: mcp_sk_votrecle" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "create_note",
      "arguments": {
        "title": "Ma note",
        "content": "Contenu de la note"
      }
    }
  }'
```

## Outils disponibles (22)

### Notes (11)

| Outil | Description |
|-------|-------------|
| `create_note` | Creer une note |
| `get_notes` | Lister les notes |
| `get_note` | Recuperer une note par ID |
| `update_note` | Modifier une note |
| `delete_note` | Supprimer une note |
| `search_notes` | Rechercher par mot-cle |
| `move_note` | Deplacer vers un notebook |
| `toggle_pin` | Epingler/Depingler |
| `toggle_archive` | Archiver/Desarchiver |
| `export_notes` | Exporter en JSON |
| `import_notes` | Importer depuis JSON |

### Notebooks (6)

| Outil | Description |
|-------|-------------|
| `create_notebook` | Creer un notebook |
| `get_notebooks` | Lister les notebooks |
| `get_notebook` | Details d'un notebook |
| `update_notebook` | Modifier un notebook |
| `delete_notebook` | Supprimer un notebook |
| `reorder_notebooks` | Reordonner |

### Labels (4)

| Outil | Description |
|-------|-------------|
| `create_label` | Creer un label |
| `get_labels` | Lister les labels |
| `update_label` | Modifier un label |
| `delete_label` | Supprimer un label |

### Rappels (1)

| Outil | Description |
|-------|-------------|
| `get_due_reminders` | Recuperer les rappels dus |

## Endpoints HTTP

| Endpoint | Methode | Description |
|----------|---------|-------------|
| `/` | GET | Health check |
| `/mcp` | GET/POST | Endpoint MCP principal |
| `/sse` | GET/POST | Legacy (redirige vers `/mcp`) |
| `/sessions` | GET | Sessions actives |

## Securite

- **Authentification obligatoire** en production (`MCP_REQUIRE_AUTH=true` dans Docker)
- Les cles API sont gerees depuis **Parametres > MCP** dans Memento
- Chaque cle est scopee a un utilisateur : seules ses notes sont accessibles
- Les cles sont hashees en base (SHA256), seul le raw key est montre a la creation

## Ports

| Service | Port | URL |
|---------|------|-----|
| Memento UI | 3000 | http://localhost:3000 |
| MCP Server | 3001 | http://localhost:3001/mcp |
