# Test MCP Server - Lightweight Mode

## Test 1: Get Notes (Lightweight - Default)
```powershell
$body = @{
    jsonrpc = "2.0"
    id = 1
    method = "tools/call"
    params = @{
        name = "get_notes"
        arguments = @{
            fullDetails = $false
        }
    }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Uri "http://localhost:3001/sse" -Method POST -Body $body -ContentType "application/json"
$response.result.content[0].text | ConvertFrom-Json | ConvertTo-Json -Depth 10
```

**Résultat attendu :**
- ✅ Titres des notes
- ✅ Contenu tronqué (200 caractères max)
- ✅ Métadonnées (hasImages, imageCount, etc.)
- ❌ PAS d'images base64 (économie de payload)

## Test 2: Get Notes (Full Details)
```powershell
$body = @{
    jsonrpc = "2.0"
    id = 2
    method = "tools/call"
    params = @{
        name = "get_notes"
        arguments = @{
            fullDetails = $true
        }
    }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Uri "http://localhost:3001/sse" -Method POST -Body $body -ContentType "application/json"
$response.result.content[0].text | ConvertFrom-Json | Select-Object -First 1 | ConvertTo-Json -Depth 10
```

**Résultat attendu :**
- ✅ Toutes les données complètes
- ✅ Images base64 incluses
- ⚠️ Payload très lourd

## Test 3: Create Note
```powershell
$body = @{
    jsonrpc = "2.0"
    id = 3
    method = "tools/call"
    params = @{
        name = "create_note"
        arguments = @{
            title = "Test MCP Lightweight"
            content = "Cette note teste le mode lightweight du serveur MCP"
            color = "green"
            labels = @("Test", "MCP")
        }
    }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Uri "http://localhost:3001/sse" -Method POST -Body $body -ContentType "application/json"
$response.result.content[0].text | ConvertFrom-Json | ConvertTo-Json
```

## Test 4: Search Notes (Lightweight)
```powershell
$body = @{
    jsonrpc = "2.0"
    id = 4
    method = "tools/call"
    params = @{
        name = "get_notes"
        arguments = @{
            search = "test"
            fullDetails = $false
        }
    }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Uri "http://localhost:3001/sse" -Method POST -Body $body -ContentType "application/json"
$response.result.content[0].text | ConvertFrom-Json | ConvertTo-Json -Depth 10
```

## Comparaison de Taille de Payload

### Mode Lightweight
```json
{
  "id": "abc123",
  "title": "Note avec images",
  "content": "Début du contenu qui est automatiquement tronqué à 200 caractères pour réduire...",
  "hasImages": true,
  "imageCount": 3,
  "color": "blue",
  "type": "text",
  "isPinned": false,
  "isArchived": false
}
```
**Taille :** ~300 bytes par note

### Mode Full Details
```json
{
  "id": "abc123",
  "title": "Note avec images",
  "content": "Contenu complet de la note qui peut être très long...",
  "images": [
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg... (100KB+)",
    "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQA... (200KB+)",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg... (150KB+)"
  ],
  "checkItems": [...],
  "labels": [...],
  ...
}
```
**Taille :** 450KB+ par note avec 3 images

### Économie
Pour 10 notes avec images :
- **Lightweight :** ~3 KB
- **Full Details :** ~4.5 MB
- **Économie :** **99.93%** 🎉

## Utilisation dans N8N

### Workflow Tech News
Le workflow utilise automatiquement le mode lightweight car :
1. On ne fait que lire les titres des notes existantes
2. On créé des notes texte sans images
3. Pas besoin des détails complets

### Configuration N8N
```json
{
  "method": "POST",
  "url": "http://localhost:3001/sse",
  "body": {
    "jsonrpc": "2.0",
    "id": "{{ $now.toUnixInteger() }}",
    "method": "tools/call",
    "params": {
      "name": "get_notes",
      "arguments": {
        "fullDetails": false  // ← Mode lightweight par défaut
      }
    }
  }
}
```

## Notes

- Par défaut, `get_notes` retourne des données lightweight
- Pour obtenir les images, spécifier `fullDetails: true`
- Le contenu est tronqué à 200 caractères max
- Utile pour :
  - Lister les notes
  - Rechercher par titre
  - Vérifier l'existence d'une note
  - Workflows N8N optimisés
