{"name":"Overcome API","version":"1.0.0","description":"API d'authentification et de gestion de documents avec support MCP (Model Context Protocol)","documentation":{"authentication":{"description":"Système d'authentification complet avec vérification email et réinitialisation de mot de passe","endpoints":{"register":{"method":"POST","path":"/register","description":"Inscription d'un nouvel utilisateur avec envoi automatique d'email de vérification","body":{"email":"string (email valide, unique)","password":"string (8-255 caractères)"},"response":"Token d'accès + informations utilisateur","rateLimit":"identificationThrottle"},"register2":{"method":"POST","path":"/register2","description":"Inscription alternative avec vérification par email avant création du compte","body":{"email":"string (email valide)","password":"string (8-255 caractères)"},"response":"Email de vérification envoyé","rateLimit":"identificationThrottle"},"emailVerification":{"method":"GET","path":"/email-verification/:token","description":"Vérification d'email avec token signé (valide 1h)","params":{"token":"string (token signé et chiffré)"},"response":"Vérification effectuée"},"emailVerification2":{"method":"GET","path":"/email-verification-2/:token","description":"Vérification d'email et création du compte (valide 1h)","params":{"token":"string (token signé et chiffré)"},"response":"Compte créé + token d'accès"},"login":{"method":"POST","path":"/login","description":"Connexion utilisateur avec limitation de tentatives","body":{"email":"string (email valide)","password":"string (8-255 caractères)"},"response":"Token d'accès + informations utilisateur","rateLimit":"5 tentatives/min, blocage 10min"},"logout":{"method":"DELETE","path":"/logout","description":"Déconnexion et invalidation du token","headers":{"Authorization":"Bearer <token>"},"response":"{ message: \"success\" }","auth":"required"},"checkMe":{"method":"POST","path":"/check-me","description":"Vérification de la validité du token (sans erreur si invalide)","headers":{"Authorization":"Bearer <token> (optionnel)"},"response":"{ user: { uuid, role } } ou null","rateLimit":"globalThrottle"},"currentUser":{"method":"GET","path":"/current-user","description":"Informations de l'utilisateur connecté","headers":{"Authorization":"Bearer <token>"},"response":"{ user: { uuid, role } }","auth":"required"},"sendEmailVerification":{"method":"GET","path":"/email-verification","description":"Renvoyer l'email de vérification","headers":{"Authorization":"Bearer <token>"},"response":"Email envoyé","auth":"required"}}},"passwordReset":{"description":"Système de réinitialisation de mot de passe","endpoints":{"forgotPassword":{"method":"POST","path":"/forgot-password","description":"Demande de réinitialisation de mot de passe","body":{"email":"string (email valide)"},"response":"Email de réinitialisation envoyé (toujours 200)","rateLimit":"2 tentatives/min, blocage 10min"},"resetPasswordTokenCheck":{"method":"GET","path":"/reset-password/:token","description":"Validation/lecture du token (utilisé par le frontend)","params":{"token":"string (token signé et chiffré, valide 1h)"},"response":"200 si token valide"},"resetPassword":{"method":"POST","path":"/reset-password/:token","description":"Réinitialisation du mot de passe avec token signé","params":{"token":"string (token signé et chiffré, valide 1h)"},"body":{"password":"string (8-255 caractères)"},"response":"Mot de passe mis à jour"}}},"admin":{"description":"Fonctionnalités réservées aux administrateurs","auth":"required (role ADMIN)","endpoints":{"dashboard":{"method":"GET","path":"/admin/","description":"Tableau de bord administrateur","response":"Message de bienvenue avec rôle"},"uploadDocument":{"method":"PUT","path":"/admin/upload","description":"Upload de document (max 10MB)","body":{"document":"file (pdf, jpg, jpeg, png, webp, gif, svg, txt, html, htm, csv, json, xml, doc, docx, xls, xlsx)"},"response":"{ message: \"success\", url: \"document_url (if the serve Files of file system is on)\" }"},"editDocument":{"method":"POST","path":"/admin/upload","description":"Met à jour le titre et la description","body":{"fileName":"string (nom du fichier, 10-40 caractères)","title":"string (3-255 caractères)","description":"string (3-1000 caractères)"},"response":"{ message: \"success\" }"},"serveDocument":{"method":"GET","path":"/admin/upload/:filename","description":"Accès aux documents uploadés","params":{"filename":"string (nom du fichier)"},"response":"Fichier streamé avec headers appropriés"},"listDocuments":{"method":"GET","path":"/admin/uploads","description":"Liste des documents avec pagination et filtres","queryParams":{"page":"number (page actuelle, défaut: 1)","limit":"number (éléments par page, défaut: 10, max: 100)","search":"string (recherche dans titre et description)","sortBy":"string (tri par: created_at, updated_at, title, size, file_name, défaut: created_at)","sortOrder":"string (ordre: asc ou desc, défaut: desc)"},"response":"{ data: [...], meta: { pagination_info }, query_params: { applied_filters } }"},"deleteDocument":{"method":"DELETE","path":"/admin/upload/:filename","description":"Suppression d'un document","params":{"filename":"string (nom du fichier)"},"response":"{ message: \"success\" }"}}},"mcp":{"description":"Serveur MCP (Model Context Protocol) pour intégration avec des assistants IA","protocol":"JSON-RPC 2.0","version":"2025-06-18","endpoint":{"method":"POST","path":"/mcp","description":"Point d'entrée unique pour toutes les requêtes MCP","body":{"jsonrpc":"2.0","id":"number","method":"string","params":"object (selon la méthode)"},"methods":{"initialize":"Initialisation de la connexion MCP","ping":"Test de connectivité","resources/list":"Liste des ressources disponibles","resources/read":"Lecture d'une ressource par URI","tools/list":"Liste des outils disponibles","tools/call":"Exécution d'un outil","prompts/list":"Liste des prompts disponibles","prompts/get":"Récupération d'un prompt"},"resources":[{"uri":"uuid.jpg","name":"uuid.jpg","title":"Roue de voiture","description":"image d'une roue de voiture","mimeType":"image/jpeg"},{"uri":"uuid.json","name":"uuid.json","title":"Capitales Européennes","description":"liste des capitales européennes définies par leur id, le pays, la capitale et l'appartenance au membre de l'UE","mimeType":"application/json"},{"uri":"uuid.json","name":"uuid.json","title":"Horaires du lever et du coucher du soleil","description":"horaires du lever et du coucher du soleil pour le mois de décembre 2025 pour les capitales européennes référencées par leur id","mimeType":"application/json"}],"tools":[{"name":"get_document","title":"Document Provider","description":"Get current document","inputSchema":{"type":"object","properties":{"fileName":{"type":"string","description":"Document file name"}},"required":["fileName"]}}],"prompts":[{"name":"code_review","title":"Request Code Review","description":"Asks the LLM to analyze code quality and suggest improvements","arguments":[{"name":"code","description":"The code to review","required":true}]}]}}},"security":{"rateLimiting":{"identificationThrottle":"Limitation par identification (IP/email)","globalThrottle":"Limitation globale par IP"},"authentication":{"type":"Bearer Token","tokenExpiration":"24h","passwordRequirements":"8-255 caractères"},"emailVerification":{"required":true,"tokenExpiration":"1h","signedUrls":true}},"userRoles":["CLIENT","ADMIN"],"supportedFileTypes":["pdf","jpg","jpeg","png","webp","gif","svg","txt","html","htm","csv","json","xml","doc","docx","xls","xlsx"],"maxFileSize":"10MB","contact":"postmaster@fertiledevelopment.com","status":"✨ active ✨"}