# 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