Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,558Letters: 14Defects: 1,331counted just now
teppi

Server definition

Hash
sha256:abdb2e43bcb7222ab45071e3a5af028bf2e6c0e19225d30f9374822a17c4ca69
What it is
What a remote MCP server returned when asked what it offers: 11 tools

The blob, as servednamed by its sha256

{ "instructions": "Assistant de constat amiable d'accident automobile (modèle européen, droit français).\n\nConduite de l'entretien :\n1. Appelez constat_demarrer pour obtenir un identifiant de dossier, puis répétez cet identifiant à chaque appel suivant.\n2. Recueillez les informations par petits groupes, en langage naturel, et enregistrez-les avec constat_renseigner. N'INVENTEZ JAMAIS une valeur : si la personne ne sait pas, laissez le champ absent.\n3. Faites décrire l'accident, puis appelez constat_croquis avec le scénario le plus proche. L'outil vous renvoie les cases de circonstances habituelles pour ce scénario : relisez-les à la personne et ne les enregistrez qu'après son accord.\n4. constat_statut indique à tout moment ce qui manque.\n5. Quand tout est complet, appelez constat_signatures : vous obtenez un lien par conducteur. Transmettez-les. Le constat part par email automatiquement dès la dernière signature — vous n'avez rien d'autre à faire.\n6. constat_finaliser sert à vérifier l'envoi, ou à envoyer une déclaration unilatérale si le second conducteur ne signe jamais.\n\nPriorités et prudence :\n- S'il y a des blessés, dites d'abord d'appeler le 15 ou le 112. Ne demandez aucune donnée de santé, aucun détail de blessure.\n- Rappelez que le constat doit être déclaré à l'assureur dans les 5 jours ouvrés.\n- Un constat n'est pas une reconnaissance de responsabilité : ne désignez jamais de responsable, et n'employez pas les circonstances pour le faire.\n- Si le second conducteur a pris la fuite, conseillez un dépôt de plainte.\n- Les liens de signature valent 48 heures et ne peuvent pas être retrouvés après coup : s'il est perdu, demandez-en un nouveau via constat_signatures.\n\nRépondez dans la langue de la personne.", "tools": [ { "description": "Annule le dossier et invalide les liens de signature en circulation. Sans effet sur un constat déjà envoyé.", "inputSchema": { "additionalProperties": false, "properties": { "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" } }, "required": [ "dossier" ], "type": "object" }, "name": "constat_annuler", "outputSchema": null }, { "description": "Recherche un assureur ou un courtier destinataire du constat, par son nom. Renvoie les noms exacts à utiliser dans le champ destinataire.assureur de constat_renseigner. Si l'assureur du conducteur n'apparaît pas, utilisez « Autre » et renseignez destinataire.email_courtier.", "inputSchema": { "additionalProperties": false, "properties": { "recherche": { "description": "Début du nom de l'assureur. Vide pour obtenir la liste des partenaires.", "type": "string" } }, "type": "object" }, "name": "constat_assureurs", "outputSchema": null }, { "description": "Renvoie les 17 cases de circonstances officielles du constat amiable européen, avec des conseils pour les choisir. Lecture seule, aucun dossier requis.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "constat_circonstances", "outputSchema": null }, { "description": "Établit le croquis de l'accident à partir d'une description structurée : choisissez le scénario le plus proche du récit et indiquez quel véhicule effectuait la manœuvre. Le croquis est dessiné automatiquement et joint au constat. L'outil renvoie aussi les cases de circonstances et les zones de choc habituelles pour ce scénario : relisez-les au conducteur et enregistrez-les avec constat_renseigner seulement s'il les confirme.", "inputSchema": { "additionalProperties": false, "properties": { "commentaire": { "description": "Précision affichée sous le croquis (ex. « chaussée mouillée, visibilité réduite »). 180 caractères maximum.", "type": "string" }, "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" }, "elements": { "description": "Éléments de voirie présents sur les lieux (6 maximum). Ceux qui ne peuvent pas être dessinés dans la géométrie choisie sont listés en légende.", "items": { "enum": [ "feu_tricolore", "stop", "cedez_le_passage", "passage_pieton", "ligne_continue", "ligne_discontinue", "trottoir", "places_stationnement", "ilot_central", "sens_interdit" ], "type": "string" }, "type": "array" }, "immobilise_a": { "default": false, "description": "Le véhicule A était à l'arrêt ou stationné au moment du choc.", "type": "boolean" }, "immobilise_b": { "default": false, "description": "Le véhicule B était à l'arrêt ou stationné au moment du choc.", "type": "boolean" }, "initiateur": { "description": "Véhicule qui effectuait la manœuvre décrite par le scénario (celui qui recule, double, change de file, s'engage, ouvre sa portière, débouche de la voie secondaire…). Ce n'est PAS une désignation de responsabilité.", "enum": [ "A", "B" ], "type": "string" }, "scenario": { "description": "Géométrie de l'accident, la plus proche de la description du conducteur. meme_sens_choc_arriere = Même sens, même file — collision par l'arrière ; meme_sens_changement_file = Même sens, changement de file ; meme_sens_depassement = Dépassement ; sens_inverse_frontal = Sens inverse — empiétement sur la voie opposée ; intersection_t_refus_priorite = Intersection en T — véhicule débouchant de la voie secondaire ; carrefour_priorite_droite = Carrefour — priorité à droite ; carrefour_feu_rouge = Carrefour à feux — feu rouge non respecté ; virage_a_gauche = Virage à gauche devant un véhicule arrivant en face ; virage_a_droite = Virage à droite ; rond_point_insertion = Rond-point — véhicule s'engageant vs véhicule y circulant ; parking_manoeuvre = Parking — manœuvre dans une allée ; parking_vehicule_stationne = Heurt d'un véhicule stationné ou à l'arrêt ; marche_arriere = Marche arrière ; ouverture_portiere = Ouverture de portière ; sortie_acces_prive = Sortie de parking, lieu privé ou chemin de terre", "enum": [ "meme_sens_choc_arriere", "meme_sens_changement_file", "meme_sens_depassement", "sens_inverse_frontal", "intersection_t_refus_priorite", "carrefour_priorite_droite", "carrefour_feu_rouge", "virage_a_gauche", "virage_a_droite", "rond_point_insertion", "parking_manoeuvre", "parking_vehicule_stationne", "marche_arriere", "ouverture_portiere", "sortie_acces_prive" ], "type": "string" }, "sens": { "default": "gauche_droite", "description": "Sens de circulation de la voie principale sur le dessin. Purement graphique : la scène est simplement observée depuis l'autre extrémité de la voie, la latéralité (priorité à droite, côté de dépassement) est préservée.", "enum": [ "gauche_droite", "droite_gauche" ], "type": "string" }, "voie_principale": { "description": "Nom de la rue principale, affiché sur le croquis. 60 caractères maximum.", "type": "string" }, "voie_secondaire": { "description": "Nom de la voie secondaire, affiché sur le croquis. 60 caractères maximum.", "type": "string" }, "zone_choc_a": { "description": "Zone de choc sur le véhicule A. av=avant, ar=arrière, avg=avant gauche, avd=avant droit, cg=côté gauche, cd=côté droit, arg=arrière gauche, ard=arrière droit.", "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" }, "zone_choc_b": { "description": "Zone de choc sur le véhicule B (mêmes valeurs que zone_choc_a).", "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" } }, "required": [ "dossier", "scenario", "initiateur" ], "type": "object" }, "name": "constat_croquis", "outputSchema": null }, { "description": "Ouvre un dossier de constat amiable et renvoie son identifiant, à réutiliser dans tous les appels suivants. À appeler une seule fois au début de la conversation. Renvoie aussi la liste des informations à recueillir.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Langue du constat et des liens de signature. Par défaut fr.", "enum": [ "fr", "en", "es", "de" ], "type": "string" } }, "type": "object" }, "name": "constat_demarrer", "outputSchema": null }, { "description": "Vérifie l'envoi du constat, et le déclenche si les signatures sont réunies. Normalement inutile : l'email part tout seul à la dernière signature. Sert surtout à confirmer l'envoi, ou à produire une déclaration unilatérale quand le conducteur B ne signe jamais. Appel sans effet si le constat est déjà parti.", "inputSchema": { "additionalProperties": false, "properties": { "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" }, "envoyer_sans_signature_b": { "description": "Envoie le constat sans la signature du conducteur B, en déclaration unilatérale. À ne passer qu'après une demande explicite de l'utilisateur, informé que le constat mentionnera l'absence de signature de B.", "type": "boolean" } }, "required": [ "dossier" ], "type": "object" }, "name": "constat_finaliser", "outputSchema": null }, { "description": "Enregistre ou met à jour les informations du constat. Appelez-le autant de fois que nécessaire, par petits groupes de champs, au fil de la conversation. Seuls les champs fournis sont modifiés. N'inventez jamais une valeur : un champ inconnu doit rester absent. Attention : modifier un constat déjà signé invalide les signatures et oblige à solliciter de nouveau les conducteurs.", "inputSchema": { "additionalProperties": false, "properties": { "accident": { "additionalProperties": false, "description": "Circonstances de temps et de lieu de l'accident.", "properties": { "blesses": { "description": "Y a-t-il des blessés, même légers ? Réponse obligatoire.", "type": "boolean" }, "date": { "description": "Date de l'accident, au format AAAA-MM-JJ.", "type": "string" }, "degats_materiels_autres": { "description": "Y a-t-il des dégâts matériels autres qu'aux deux véhicules (mobilier urbain, mur…) ?", "type": "boolean" }, "degats_materiels_autres_description": { "description": "Nature et propriétaire des biens endommagés autres que les deux véhicules (case 4 du modèle européen). « Oui » sans cette précision n'est exploitable par personne.", "type": "string" }, "heure": { "description": "Heure de l'accident, au format HH:MM (24 h).", "type": "string" }, "lieu": { "description": "Lieu exact : numéro, rue, code postal et commune.", "type": "string" }, "pays": { "description": "Pays de l'accident. Par défaut France.", "type": "string" }, "temoins": { "description": "Noms et coordonnées des témoins, ou « aucun ».", "type": "string" } }, "type": "object" }, "aucune_circonstance_a": { "description": "true si le conducteur A déclare qu'aucune des 17 circonstances ne s'applique (ex. véhicule régulièrement stationné, heurté par l'arrière). Exclusif de circonstances_a : cocher une case inexacte pour pouvoir avancer fausserait l'analyse de responsabilité. Exige alors une explication factuelle dans observations_a.", "type": "boolean" }, "aucune_circonstance_b": { "description": "Équivalent pour le conducteur B, avec observations_b.", "type": "boolean" }, "circonstances_a": { "description": "Numéros des cases de circonstances cochées pour A, de 1 à 17. Appeler constat_circonstances pour la liste officielle et relire les cases au conducteur. Si aucune ne correspond, ne pas en forcer une : utiliser aucune_circonstance_a.", "items": { "type": "integer" }, "type": "array" }, "circonstances_b": { "description": "Numéros des cases de circonstances cochées pour B, de 1 à 17. Si aucune ne correspond, utiliser aucune_circonstance_b.", "items": { "type": "integer" }, "type": "array" }, "conducteur_a": { "additionalProperties": false, "description": "Véhicule A : celui de la personne à qui vous parlez. Ne remplir que les champs connus, et n'inventer aucune valeur — un champ inconnu doit rester absent.", "properties": { "adresse": { "description": "Adresse postale de l'assuré.", "type": "string" }, "agence": { "description": "Agence ou courtier qui gère le contrat.", "type": "string" }, "assureur": { "description": "Nom de la compagnie d'assurance.", "type": "string" }, "carte_verte": { "description": "Numéro de carte verte (attestation d'assurance).", "type": "string" }, "categorie_permis": { "description": "Catégorie du permis, ex. « B ».", "type": "string" }, "code_postal": { "description": "Code postal de l'assuré.", "type": "string" }, "conducteur_adresse": { "description": "Adresse du conducteur s'il diffère de l'assuré (prêt de volant, véhicule de société, location).", "type": "string" }, "conducteur_nom": { "description": "Nom du conducteur au moment de l'accident, s'il diffère de l'assuré.", "type": "string" }, "conducteur_prenom": { "description": "Prénom du conducteur, s'il diffère de l'assuré.", "type": "string" }, "date_naissance": { "description": "Date de naissance du conducteur, au format AAAA-MM-JJ.", "type": "string" }, "degats_description": { "description": "Description en clair des dégâts apparents sur ce véhicule.", "type": "string" }, "email": { "description": "Email de l'assuré. C'est à cette adresse que le constat sera envoyé.", "type": "string" }, "immatriculation": { "description": "Plaque d'immatriculation, ex. « AB-123-CD ».", "type": "string" }, "nom": { "description": "Nom de famille de l'assuré (le titulaire du contrat).", "type": "string" }, "numero_contrat": { "description": "Numéro de contrat ou de police d'assurance.", "type": "string" }, "numero_permis": { "description": "Numéro du permis de conduire.", "type": "string" }, "pays": { "description": "Pays de l'assuré. Par défaut France.", "type": "string" }, "permis_valable_jusquau": { "description": "Fin de validité du permis de conduire, au format AAAA-MM-JJ.", "type": "string" }, "point_de_choc_initial": { "description": "Point de choc INITIAL, là où le contact a commencé (case 10 du modèle européen, la flèche). À ne pas confondre avec zones_endommagees, qui décrit les dégâts apparents (case 11).", "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" }, "prenom": { "description": "Prénom de l'assuré.", "type": "string" }, "remorque_immatriculation": { "description": "Immatriculation de la remorque ou caravane attelée, le cas échéant (case 8 du modèle européen).", "type": "string" }, "remorque_pays": { "description": "Pays d'immatriculation de la remorque. Par défaut celui du véhicule.", "type": "string" }, "telephone": { "description": "Téléphone de l'assuré.", "type": "string" }, "validite_au": { "description": "Fin de validité de l'attestation, au format AAAA-MM-JJ.", "type": "string" }, "validite_du": { "description": "Début de validité de l'attestation, au format AAAA-MM-JJ.", "type": "string" }, "vehicule_marque": { "description": "Marque et modèle du véhicule, ex. « Renault Clio V ».", "type": "string" }, "vehicule_pays": { "description": "Pays d'immatriculation. Par défaut France.", "type": "string" }, "zones_endommagees": { "description": "Zones endommagées du véhicule. av=avant, ar=arrière, avg=avant gauche, avd=avant droit, cg=côté gauche, cd=côté droit, arg=arrière gauche, ard=arrière droit.", "items": { "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" }, "type": "array" } }, "type": "object" }, "conducteur_b": { "additionalProperties": false, "description": "Véhicule B : l'autre véhicule impliqué. Mêmes champs que conducteur_a.", "properties": { "adresse": { "description": "Adresse postale de l'assuré.", "type": "string" }, "agence": { "description": "Agence ou courtier qui gère le contrat.", "type": "string" }, "assureur": { "description": "Nom de la compagnie d'assurance.", "type": "string" }, "carte_verte": { "description": "Numéro de carte verte (attestation d'assurance).", "type": "string" }, "categorie_permis": { "description": "Catégorie du permis, ex. « B ».", "type": "string" }, "code_postal": { "description": "Code postal de l'assuré.", "type": "string" }, "conducteur_adresse": { "description": "Adresse du conducteur s'il diffère de l'assuré (prêt de volant, véhicule de société, location).", "type": "string" }, "conducteur_nom": { "description": "Nom du conducteur au moment de l'accident, s'il diffère de l'assuré.", "type": "string" }, "conducteur_prenom": { "description": "Prénom du conducteur, s'il diffère de l'assuré.", "type": "string" }, "date_naissance": { "description": "Date de naissance du conducteur, au format AAAA-MM-JJ.", "type": "string" }, "degats_description": { "description": "Description en clair des dégâts apparents sur ce véhicule.", "type": "string" }, "email": { "description": "Email de l'assuré. C'est à cette adresse que le constat sera envoyé.", "type": "string" }, "immatriculation": { "description": "Plaque d'immatriculation, ex. « AB-123-CD ».", "type": "string" }, "nom": { "description": "Nom de famille de l'assuré (le titulaire du contrat).", "type": "string" }, "numero_contrat": { "description": "Numéro de contrat ou de police d'assurance.", "type": "string" }, "numero_permis": { "description": "Numéro du permis de conduire.", "type": "string" }, "pays": { "description": "Pays de l'assuré. Par défaut France.", "type": "string" }, "permis_valable_jusquau": { "description": "Fin de validité du permis de conduire, au format AAAA-MM-JJ.", "type": "string" }, "point_de_choc_initial": { "description": "Point de choc INITIAL, là où le contact a commencé (case 10 du modèle européen, la flèche). À ne pas confondre avec zones_endommagees, qui décrit les dégâts apparents (case 11).", "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" }, "prenom": { "description": "Prénom de l'assuré.", "type": "string" }, "remorque_immatriculation": { "description": "Immatriculation de la remorque ou caravane attelée, le cas échéant (case 8 du modèle européen).", "type": "string" }, "remorque_pays": { "description": "Pays d'immatriculation de la remorque. Par défaut celui du véhicule.", "type": "string" }, "telephone": { "description": "Téléphone de l'assuré.", "type": "string" }, "validite_au": { "description": "Fin de validité de l'attestation, au format AAAA-MM-JJ.", "type": "string" }, "validite_du": { "description": "Début de validité de l'attestation, au format AAAA-MM-JJ.", "type": "string" }, "vehicule_marque": { "description": "Marque et modèle du véhicule, ex. « Renault Clio V ».", "type": "string" }, "vehicule_pays": { "description": "Pays d'immatriculation. Par défaut France.", "type": "string" }, "zones_endommagees": { "description": "Zones endommagées du véhicule. av=avant, ar=arrière, avg=avant gauche, avd=avant droit, cg=côté gauche, cd=côté droit, arg=arrière gauche, ard=arrière droit.", "items": { "enum": [ "av", "avg", "avd", "cg", "cd", "ar", "arg", "ard" ], "type": "string" }, "type": "array" } }, "type": "object" }, "conducteur_b_absent": { "description": "true si le second conducteur n'a pas pu être identifié (délit de fuite, véhicule stationné sans propriétaire présent). Le constat est alors une déclaration unilatérale.", "type": "boolean" }, "destinataire": { "additionalProperties": false, "description": "Assureur ou courtier à qui le constat signé sera transmis.", "properties": { "assureur": { "description": "Assureur ou courtier destinataire du constat, tel que renvoyé par l'outil de recherche des assureurs. Utiliser « Autre » si absent de la liste, et fournir alors email_courtier.", "type": "string" }, "email_courtier": { "description": "Email du courtier ou du gestionnaire, si le destinataire n'est pas dans la liste.", "type": "string" } }, "type": "object" }, "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" }, "observations_a": { "description": "Observations du conducteur A, dans ses propres mots.", "type": "string" }, "observations_b": { "description": "Observations du conducteur B, si elles ont été recueillies.", "type": "string" } }, "required": [ "dossier" ], "type": "object" }, "name": "constat_renseigner", "outputSchema": null }, { "description": "Émet les liens de signature à transmettre aux conducteurs. Un constat n'a de valeur légale qu'avec la signature des deux conducteurs, et l'email part automatiquement dès la dernière signature. Les liens valent 48 h et ne sont pas récupérables ensuite : un nouvel appel en émet de nouveaux et invalide les précédents non utilisés.", "inputSchema": { "additionalProperties": false, "properties": { "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" }, "mode": { "description": "b_connu = les informations du conducteur B ont été recueillies, il reçoit un lien de signature. b_a_completer = ses informations sont inconnues, il reçoit un lien pour remplir sa partie sur son téléphone puis signer. b_absent = conducteur non identifié (délit de fuite, véhicule stationné) : seul A signe, le constat devient une déclaration unilatérale.", "enum": [ "b_connu", "b_a_completer", "b_absent" ], "type": "string" }, "relancer": { "description": "Pour réémettre le lien d'un seul conducteur qui a perdu le sien, sans toucher à la signature déjà apposée par l'autre.", "enum": [ "A", "B" ], "type": "string" } }, "required": [ "dossier", "mode" ], "type": "object" }, "name": "constat_signatures", "outputSchema": null }, { "description": "État d'avancement du dossier : informations manquantes, état des signatures, et si le constat a été envoyé. Lecture seule. À appeler avant de conclure quoi que ce soit sur l'avancement, notamment pour savoir si le conducteur B a renseigné sa partie.", "inputSchema": { "additionalProperties": false, "properties": { "dossier": { "description": "Identifiant du dossier renvoyé par constat_demarrer.", "type": "string" } }, "required": [ "dossier" ], "type": "object" }, "name": "constat_statut", "outputSchema": null }, { "description": "Récupère le contenu complet d'un guide de constat-auto.com à partir de l'identifiant renvoyé par `search`. Renvoie un document JSON avec id, titre, URL et texte.", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "Identifiant du document renvoyé par `search`.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "fetch", "outputSchema": null }, { "description": "Recherche dans les guides pratiques de constat-auto.com : constat amiable, démarches après un accident, responsabilité, indemnisation, assurance auto en France. Renvoie une liste JSON de résultats avec identifiant, titre, URL et extrait. Utilisez ensuite `fetch` avec l'identifiant pour lire un guide en entier.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "Termes de recherche en langage naturel.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:abdb2e43bcb7222ab45071e3a5af028bf2e6c0e19225d30f9374822a17c4ca69 | sha256sum