Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 1 min ago
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Serveur du studio MB Mastering (Mathieu Berthet, Paris). Utilise search/fetch pour la recherche documentaire, les tools get_* pour services, tarifs, infos studio et FAQ, ou send_quote_request pour envoyer une demande de devis. Les tools qonto_* , prepare_quote_email, upload_master et list_quote_requests sont réservés au studio (token d'administration). Règles studio : jamais relancer une création (devis/facture) sans vérifier l'état via qonto_list ; toujours passer un request_id ; ne jamais inventer d'adresse client.", "tools": [ { "description": "Récupère le contenu complet d'un document MB Mastering à partir de son id (obtenu via search). / Fetches the full content of a document by id (from search results).", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "Identifiant du document renvoyé par search.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "fetch", "outputSchema": null }, { "description": "Réponses aux questions fréquentes sur le mastering chez MB Mastering : prix, délais, révisions, travail à distance, gravure vinyle, localisation.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_faq", "outputSchema": null }, { "description": "Donne les tarifs de mastering de MB Mastering, ainsi que les délais, la politique de révisions et les modalités de paiement.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_pricing", "outputSchema": null }, { "description": "Liste les services de mastering de MB Mastering (mastering stéréo, stems, à distance, gravure vinyle, numérisation, formation) avec leurs tarifs et descriptions.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_services", "outputSchema": null }, { "description": "Informations sur le studio MB Mastering : fondateur, expérience, adresse à Paris, équipement analogique, liens et réseaux.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_studio_info", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Récupère le corps + liens (WeTransfer, Drive, SwissTransfer, etc.) + pièces jointes d'un mail INBOX par UID. UID est fourni par imap_list_inbox. Décode automatiquement quoted-printable/base64 + UTF-8.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "uid": { "description": "UID du mail (obtenu via imap_list_inbox).", "type": "integer" } }, "required": [ "uid" ], "type": "object" }, "name": "imap_get_mail", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Liste les N derniers mails de INBOX ([email protected]) via IMAP direct sur OVH. Retourne UID (à passer à imap_get_mail), date, expéditeur, objet, flags. Bypass Chrome/Roundcube — beaucoup plus rapide et fiable.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "limit": { "description": "Nombre de mails à retourner (défaut 20, max 50).", "type": "integer" } }, "type": "object" }, "name": "imap_list_inbox", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Journal des demandes de devis reçues via le tool public send_quote_request : envoyées par mail ET filtrées comme robots/spam (avec la raison). Permet de vérifier qu'aucune vraie demande n'a été filtrée.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "days": { "description": "Fenêtre en jours (défaut 7, max 90).", "type": "integer" }, "verdict": { "description": "Filtre : 'envoyé', 'filtré', 'plafond'. Vide = tout.", "type": "string" } }, "type": "object" }, "name": "list_quote_requests", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token d'administration requis). Prépare un brouillon — ou envoie — l'email d'un devis ou d'une facture PDF à un client, depuis [email protected]. Par défaut (mode « draft »), l'email est déposé dans les Brouillons du webmail OVH pour relecture avant envoi ; en mode « send », il est envoyé immédiatement puis archivé dans Envoyés. Le PDF est récupéré par le serveur directement dans Qonto (qonto_type + qonto_number) — ou fourni en base64 pour un document externe.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "description": "Token d'administration (si le client MCP ne permet pas le header Authorization).", "type": "string" }, "body_message": { "description": "Paragraphe personnalisé inséré dans le corps par défaut.", "type": "string" }, "cc": { "description": "Adresses en copie (string CSV ou array).", "type": [ "string", "array" ] }, "client_email": { "description": "Adresse email du client destinataire.", "type": "string" }, "client_name": { "description": "Nom du client (salutation et en-tête To).", "type": "string" }, "document_number": { "description": "Numéro du document, ex. 202608-2.", "type": "string" }, "document_type": { "description": "Type de document joint.", "enum": [ "devis", "facture" ], "type": "string" }, "in_reply_to": { "description": "Message-ID du mail auquel on répond (avec ou sans chevrons), pour threading IMAP/Gmail.", "type": "string" }, "language": { "description": "Langue du wrapper email : 'fr' (défaut, template français avec « Bonjour » + « Bien cordialement, Mathieu Berthet »), 'en' (template anglais avec « Hi » + « Best regards, Jean-Claude assistant to Mathieu Berthet »), ou 'raw' (aucun wrapper — le body_message est envoyé tel quel, pour un contrôle total). Utiliser 'en' pour clients anglophones (SlapFunk, Scott Anderson, etc.) — ne JAMAIS envoyer un body EN avec language 'fr'.", "enum": [ "fr", "en", "raw" ], "type": "string" }, "mode": { "description": "draft (défaut) : brouillon dans le webmail OVH. send : envoi immédiat.", "enum": [ "draft", "send" ], "type": "string" }, "pdf_base64": { "description": "PDF externe encodé en base64 — seulement si le document n'est pas dans Qonto.", "type": "string" }, "pdf_filename": { "description": "Nom du fichier joint. Défaut : Devis-<n>.pdf / Facture-<n>.pdf.", "type": "string" }, "qonto_id": { "description": "Id Qonto du document (alternative à qonto_number).", "type": "string" }, "qonto_number": { "description": "Numéro Qonto du document (D-2026-003, F-2026-001). Défaut : document_number.", "type": "string" }, "qonto_type": { "description": "RECOMMANDÉ : le serveur va chercher le PDF dans Qonto lui-même (aucun base64 à transporter). quote = devis, invoice = facture.", "enum": [ "quote", "invoice" ], "type": "string" }, "references": { "description": "Chaîne References (Message-IDs séparés par espaces). Auto = in_reply_to si absent.", "type": "string" }, "subject": { "description": "Sujet de l'email. Défaut : « MB Mastering — Devis/Facture n° … ».", "type": "string" } }, "required": [ "document_type", "document_number", "client_email" ], "type": "object" }, "name": "prepare_quote_email", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token d'administration requis). Ajoute une ligne à un brouillon (proforma) Qonto existant pour un client, ou crée le brouillon si absent. Idéal pour clients récurrents (Antinote, DKO, etc.) : accumuler les prestations puis facturer d'un coup avec qonto_finalize_invoice.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "client_email": { "type": "string" }, "client_id": { "type": "string" }, "client_name": { "type": "string" }, "quantity": { "type": [ "string", "number" ] }, "title": { "description": "Intitulé de la ligne, ex. 'cutting 12 inch A + B side ATN070'.", "type": "string" }, "unit_price": { "type": "number" } }, "required": [ "title", "unit_price" ], "type": "object" }, "name": "qonto_append_invoice_line", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Crée une facture client Qonto (brouillon/proforma par défaut, ou 'unpaid' = officielle) et renvoie numéro, total, lien de paiement Mollie. Client cherché par id, email puis nom ; création possible avec create_client_if_missing=true + adresse. Anti-doublon : refuse un document identique le même jour (sauf force=true) ; request_id rend l'appel rejouable sans doublon. Aucun PDF dans la réponse : utiliser prepare_quote_email (qonto_type/qonto_number) pour l'envoyer, qonto_get pour l'URL PDF.", "inputSchema": { "additionalProperties": false, "properties": { "address_unknown": { "description": "Le client n'a PAS communiqué son adresse : rue/code postal remplacés par « — » (ville + pays requis). JAMAIS inventer une adresse — la demander au client.", "type": "boolean" }, "auth_token": { "description": "Token d'administration (si le client MCP ne permet pas le header Authorization).", "type": "string" }, "city": { "description": "Ville — obligatoire pour créer un client.", "type": "string" }, "client_country": { "description": "Code pays ISO2 du client créé (défaut FR).", "type": "string" }, "client_email": { "description": "Email du client (recherche par email d'abord).", "type": "string" }, "client_id": { "description": "Id Qonto du client (prioritaire sur email/nom).", "type": "string" }, "client_kind": { "description": "Type du client créé. Défaut individual (le nom du label/artiste est conservé tel quel comme nom affiché) ; company UNIQUEMENT avec tin_number (SIREN/SIRET) — sinon Qonto refuse le devis.", "enum": [ "company", "individual" ], "type": "string" }, "client_name": { "description": "Nom du client (label, studio, artiste ou 'Prénom Nom'). Recherche exacte insensible à la casse.", "type": "string" }, "contact_name": { "description": "Prénom Nom de la personne de contact (ex. 'Rafa Santos') quand client_name est un label — sert de prénom/nom Qonto. Optionnel.", "type": "string" }, "create_client_if_missing": { "description": "Si le client n'existe pas : le créer (sinon erreur explicite). Exige alors l'adresse ci-dessous.", "type": "boolean" }, "due_days": { "description": "Jours avant échéance (défaut 30).", "type": "integer" }, "force": { "description": "Créer même si un document identique (même client, même total, même jour) existe déjà. Défaut false.", "type": "boolean" }, "items": { "description": "Lignes (au moins 1).", "items": { "properties": { "quantity": { "description": "Quantité (défaut 1).", "type": [ "string", "number" ] }, "title": { "description": "Intitulé de la prestation, ex. 'Mastering stéréo — Track X'.", "type": "string" }, "unit_price": { "description": "Prix unitaire HT en €.", "type": "number" } }, "required": [ "title", "unit_price" ], "type": "object" }, "type": "array" }, "request_id": { "description": "Identifiant unique de CET appel (ex. 'mate027-devis-2026-09-22'). Si le même request_id est rejoué (timeout, relance), le serveur renvoie la réponse d'origine sans rien recréer.", "type": "string" }, "status": { "description": "draft (proforma, à finaliser plus tard) ou unpaid (facture officielle). Défaut : draft.", "enum": [ "draft", "unpaid" ], "type": "string" }, "street_address": { "description": "Adresse de facturation (rue) — obligatoire pour créer un client, sauf address_unknown.", "type": "string" }, "tin_number": { "description": "SIREN/SIRET (ou n° fiscal étranger) du client : rend le type company possible. Optionnel.", "type": "string" }, "vat_number": { "description": "N° TVA intracom du client créé (optionnel).", "type": "string" }, "zip_code": { "description": "Code postal — obligatoire pour créer un client, sauf address_unknown.", "type": "string" } }, "required": [ "items" ], "type": "object" }, "name": "qonto_create_invoice", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Crée un devis client Qonto (D-2026-XXX) et renvoie numéro, total, lien client, id. Client cherché par id, email puis nom ; création possible avec create_client_if_missing=true + adresse (jamais inventée : address_unknown=true pose des tirets). Anti-doublon : refuse un devis identique le même jour (sauf force=true) ; request_id rend l'appel rejouable sans doublon. Aucun PDF dans la réponse : prepare_quote_email (qonto_type=quote, qonto_number=D-…) l'envoie, qonto_get donne l'URL PDF. En cas de doute sur l'état : qonto_list avant de relancer.", "inputSchema": { "additionalProperties": false, "properties": { "address_unknown": { "description": "Le client n'a PAS communiqué son adresse : rue/code postal remplacés par « — » (ville + pays requis). JAMAIS inventer une adresse — la demander au client.", "type": "boolean" }, "auth_token": { "type": "string" }, "city": { "description": "Ville — obligatoire pour créer un client.", "type": "string" }, "client_country": { "description": "Code pays ISO2 du client créé (défaut FR).", "type": "string" }, "client_email": { "description": "Email du client (recherche par email d'abord).", "type": "string" }, "client_id": { "description": "Id Qonto du client (prioritaire sur email/nom).", "type": "string" }, "client_kind": { "description": "Type du client créé. Défaut individual (le nom du label/artiste est conservé tel quel comme nom affiché) ; company UNIQUEMENT avec tin_number (SIREN/SIRET) — sinon Qonto refuse le devis.", "enum": [ "company", "individual" ], "type": "string" }, "client_name": { "description": "Nom du client (label, studio, artiste ou 'Prénom Nom'). Recherche exacte insensible à la casse.", "type": "string" }, "contact_name": { "description": "Prénom Nom de la personne de contact (ex. 'Rafa Santos') quand client_name est un label — sert de prénom/nom Qonto. Optionnel.", "type": "string" }, "create_client_if_missing": { "description": "Si le client n'existe pas : le créer (sinon erreur explicite). Exige alors l'adresse ci-dessous.", "type": "boolean" }, "force": { "description": "Créer même si un document identique (même client, même total, même jour) existe déjà. Défaut false.", "type": "boolean" }, "items": { "description": "Lignes (au moins 1).", "items": { "properties": { "quantity": { "description": "Quantité (défaut 1).", "type": [ "string", "number" ] }, "title": { "description": "Intitulé de la prestation, ex. 'Mastering stéréo — Track X'.", "type": "string" }, "unit_price": { "description": "Prix unitaire HT en €.", "type": "number" } }, "required": [ "title", "unit_price" ], "type": "object" }, "type": "array" }, "request_id": { "description": "Identifiant unique de CET appel (ex. 'mate027-devis-2026-09-22'). Si le même request_id est rejoué (timeout, relance), le serveur renvoie la réponse d'origine sans rien recréer.", "type": "string" }, "street_address": { "description": "Adresse de facturation (rue) — obligatoire pour créer un client, sauf address_unknown.", "type": "string" }, "tin_number": { "description": "SIREN/SIRET (ou n° fiscal étranger) du client : rend le type company possible. Optionnel.", "type": "string" }, "validity_days": { "description": "Jours de validité du devis (défaut 30).", "type": "integer" }, "vat_number": { "description": "N° TVA intracom du client créé (optionnel).", "type": "string" }, "zip_code": { "description": "Code postal — obligatoire pour créer un client, sauf address_unknown.", "type": "string" } }, "required": [ "items" ], "type": "object" }, "name": "qonto_create_quote", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Supprime un devis en attente (pending_approval) ou une facture brouillon (draft) — ex. doublon créé par erreur. Refuse tout document envoyé/approuvé/finalisé. Exige confirm=true (le premier appel sans confirm renvoie un récapitulatif).", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "confirm": { "description": "true pour supprimer réellement.", "type": "boolean" }, "id": { "type": "string" }, "number": { "description": "Numéro du document (ou id Qonto).", "type": "string" }, "type": { "description": "Défaut : quote.", "enum": [ "quote", "invoice" ], "type": "string" } }, "type": "object" }, "name": "qonto_delete", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token d'administration requis). Passe un brouillon (proforma) en statut 'unpaid' = facture officielle numérotée. Qonto génère le PDF + lien de paiement Mollie. Trouve le brouillon par invoice_id OU par client (id/email/name).", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "client_email": { "type": "string" }, "client_id": { "type": "string" }, "client_name": { "type": "string" }, "invoice_id": { "type": "string" } }, "type": "object" }, "name": "qonto_finalize_invoice", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Détail d'un devis ou d'une facture Qonto par numéro (D-2026-003, F-2026-001) ou id : lignes, client + adresse, statut, lien client/paiement, URL PDF signée (temporaire). Jamais de base64.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "id": { "description": "Id Qonto (alternative à number).", "type": "string" }, "number": { "description": "Numéro du document (ou id Qonto).", "type": "string" }, "type": { "description": "Défaut : quote.", "enum": [ "quote", "invoice" ], "type": "string" } }, "type": "object" }, "name": "qonto_get", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token). Liste compacte des devis, factures ou clients Qonto (numéro, statut, total, date, client, id). À appeler AVANT de relancer une création si un appel précédent a semblé échouer.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "type": "string" }, "client_email": { "description": "Filtre par email client.", "type": "string" }, "limit": { "description": "Max lignes (défaut 30, max 100).", "type": "integer" }, "status": { "description": "Filtre statut : devis pending_approval|approved|canceled ; factures draft|unpaid|paid|canceled.", "type": "string" }, "type": { "description": "Défaut : quotes.", "enum": [ "quotes", "invoices", "clients" ], "type": "string" } }, "type": "object" }, "name": "qonto_list", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token d'administration requis). Met à jour l'adresse de facturation d'un client Qonto existant. Identifier par client_id (préféré) OU client_email/client_name.", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "description": "Token d'administration.", "type": "string" }, "city": { "description": "Ville.", "type": "string" }, "client_email": { "description": "Fallback : recherche par email.", "type": "string" }, "client_id": { "description": "ID Qonto du client (préféré).", "type": "string" }, "client_name": { "description": "Fallback : recherche par nom.", "type": "string" }, "country_code": { "description": "Code pays ISO2 (défaut FR).", "type": "string" }, "street_address": { "description": "Rue et numéro.", "type": "string" }, "zip_code": { "description": "Code postal.", "type": "string" } }, "required": [ "street_address", "city", "zip_code" ], "type": "object" }, "name": "qonto_update_client", "outputSchema": null }, { "description": "Recherche dans les contenus de MB Mastering (services de mastering, tarifs, studio, FAQ) et renvoie une liste de résultats avec id, titre, extrait et URL. / Searches MB Mastering content (mastering services, rates, studio info, FAQ) and returns matching results.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "Termes de recherche / search query.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search", "outputSchema": null }, { "description": "Envoie une demande de devis de mastering à MB Mastering par email. À utiliser quand l'utilisateur souhaite être recontacté. Requiert au minimum le nombre de titres et l'email du demandeur.", "inputSchema": { "additionalProperties": false, "properties": { "deadline": { "description": "Échéance éventuelle.", "type": "string" }, "format": { "description": "Support final visé (streaming, vinyle, CD…).", "type": "string" }, "genre": { "description": "Genre musical.", "type": "string" }, "notes": { "description": "Précisions libres sur le projet.", "type": "string" }, "requester_email": { "description": "Email du demandeur (pour la réponse).", "type": "string" }, "requester_name": { "description": "Nom du demandeur ou du projet/artiste.", "type": "string" }, "service": { "description": "Service souhaité (mastering stéréo, stems, à distance, gravure vinyle…).", "type": "string" }, "titles": { "description": "Nombre de titres à masteriser.", "minimum": 1, "type": "integer" } }, "required": [ "requester_email", "titles" ], "type": "object" }, "name": "send_quote_request", "outputSchema": null }, { "description": "RÉSERVÉ AU STUDIO (token d'administration requis). Dépose un zip de master client dans ~/www/masters/ sur le serveur OVH. Nom conservé tel quel (contrôle total côté studio). Upload chunké (chunk_index=0 pour le premier, is_last=true pour le dernier — le tool renvoie alors l'URL client). Écriture UNIQUEMENT dans ~/www/masters/ (chemin hardcodé, sanitize strict, pas d'échappement possible).", "inputSchema": { "additionalProperties": false, "properties": { "auth_token": { "description": "Token d'administration (si le client MCP ne permet pas le header Authorization).", "type": "string" }, "chunk_data": { "description": "Contenu du chunk encodé en base64. Max ~8 Mo par chunk pour rester sous les limites HTTP OVH.", "type": "string" }, "chunk_index": { "description": "Index du chunk (0-based). 0 = truncate le fichier destination ; >0 = append.", "type": "integer" }, "filename": { "description": "Nom du fichier .zip (autorisé : lettres/chiffres/._- et espaces ; extension .zip obligatoire ; max 200 chars). Sanitize strict côté serveur.", "type": "string" }, "is_last": { "description": "true pour le dernier chunk → renvoie l'URL client finalisée.", "type": "boolean" } }, "required": [ "filename", "chunk_data" ], "type": "object" }, "name": "upload_master", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d979805cbd198440fcb342fd8bcc8d91a935fc9defaf51f164ba11bdf7777c27 | sha256sum