Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:0a98c3123ecb98326ab740d2bc6e33b1cca39037845185b1157acb456175c268
What it is
What a remote MCP server returned when asked what it offers: 5 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Anime une photo ancienne en une courte vidéo naturelle. Consomme 1 crédit (compte approvisionné requis, pas d'essai gratuit). Abonnement à partir de 19 €/mois HT, soit 0,76 € la photo, sur https://www.incarn.co/developers. Fournis l'image via image_url (URL publique http(s) — PRÉFÉRÉ : notre serveur va la chercher, marche partout, aucun upload côté client) OU image_file (fichier joint par l'utilisateur, rempli automatiquement par ChatGPT) OU photo_id (create_upload puis confirm_upload ; ce PUT peut être bloqué dans un agent sandboxé). Privilégie image_url dès qu'une URL est disponible. À n'utiliser que pour des photos que l'utilisateur a le droit d'animer (les siennes, sa famille, ses ancêtres) ; refuse d'animer des personnalités publiques identifiables ou des personnes tierces sans leur consentement.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "image_file": { "additionalProperties": false, "description": "Fichier joint par l'utilisateur — rempli AUTOMATIQUEMENT par ChatGPT (openai/fileParams) quand une photo est attachée. Notre serveur télécharge le download_url côté serveur (aucun upload côté client).", "properties": { "download_url": { "description": "URL de téléchargement de l'image, fournie par l'hôte.", "type": "string" }, "file_id": { "description": "Identifiant du fichier côté hôte.", "type": "string" }, "file_name": { "type": "string" }, "mime_type": { "type": "string" } }, "required": [ "download_url", "file_id" ], "type": "object" }, "image_url": { "description": "URL publique http(s) de la photo. Chemin PRÉFÉRÉ (aucun upload, marche partout).", "format": "uri", "type": "string" }, "photo_id": { "description": "Photo uploadée (via confirm_upload), si l'utilisateur a joint un fichier sans URL. Prioritaire si fourni.", "type": "string" }, "style": { "description": "Indication libre et subtile sur le mouvement (optionnel).", "type": "string" } }, "type": "object" }, "name": "animate_photo", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "description": "Identifiant du job d'animation (à poller).", "type": "string" }, "photo_url": { "description": "URL de la photo source (avant), pour l'aperçu inline.", "type": [ "string", "null" ] }, "status": { "description": "Statut du job : en cours, réussi ou échoué.", "enum": [ "processing", "succeeded", "failed" ], "type": "string" }, "video_url": { "description": "URL de la vidéo une fois prête, sinon null.", "type": [ "string", "null" ] } }, "required": [ "id", "status", "video_url", "photo_url" ], "type": "object" } }, { "description": "Étape 2 : une fois les octets envoyés (PUT) sur l'upload_url, appelle-moi avec le upload_id pour valider la photo (modération incluse). Renvoie un photo_id à passer à animate_photo.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "upload_id": { "description": "Le upload_id renvoyé par create_upload.", "type": "string" } }, "required": [ "upload_id" ], "type": "object" }, "name": "confirm_upload", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "photo_id": { "description": "Identifiant de la photo, à passer à animate_photo.", "type": "string" } }, "required": [ "photo_id" ], "type": "object" } }, { "description": "Étape 1 pour animer une photo JOINTE dans le chat quand il n'y a pas d'URL publique. Renvoie une URL d'upload : PUT les octets du fichier dessus (en-tête Content-Type), puis confirm_upload. IMPORTANT : si une URL publique de la photo existe, préfère plutôt animate_photo avec image_url (aucun upload, marche partout). Le PUT peut être refusé par l'egress d'un agent sandboxé (403 'host_not_allowed') : dans ce cas ne le retente pas, bascule sur image_url ou fais autoriser api.incarn.co. N'envoie JAMAIS l'image en base64.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "mime_type": { "description": "Type MIME de l'image (ex: 'image/jpeg', 'image/png').", "type": "string" } }, "required": [ "mime_type" ], "type": "object" }, "name": "create_upload", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "expires_in": { "description": "Validité de l'URL, en secondes.", "type": "number" }, "note": { "description": "Marche à suivre + fallback si le PUT est bloqué.", "type": "string" }, "upload_id": { "description": "À passer à confirm_upload.", "type": "string" }, "upload_url": { "description": "URL sur api.incarn.co : PUT les octets du fichier dessus.", "type": "string" } }, "required": [ "upload_id", "upload_url", "expires_in", "note" ], "type": "object" } }, { "description": "Récupère le statut d'un job d'animation et l'URL de la vidéo une fois prête.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "job_id": { "description": "Identifiant du job d'animation.", "type": "string" } }, "required": [ "job_id" ], "type": "object" }, "name": "get_animation_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "error": { "description": "Message d'erreur si le job a échoué, sinon null.", "type": [ "string", "null" ] }, "id": { "description": "Identifiant du job.", "type": "string" }, "photo_url": { "description": "URL de la photo source (avant), pour l'aperçu inline.", "type": [ "string", "null" ] }, "status": { "description": "Statut du job : en cours, réussi ou échoué.", "enum": [ "processing", "succeeded", "failed" ], "type": "string" }, "video_url": { "description": "URL de la vidéo une fois prête, sinon null.", "type": [ "string", "null" ] } }, "required": [ "id", "status", "video_url", "error", "photo_url" ], "type": "object" } }, { "description": "Voir des exemples avant/après d'animation de photos anciennes (galerie de démonstration).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "beat": { "description": "Thème optionnel (ex: 'mariage', 'bébé', 'portrait').", "type": "string" } }, "type": "object" }, "name": "list_examples", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "beat": { "description": "Thème appliqué, ou null.", "type": [ "string", "null" ] }, "examples": { "description": "Liste d'exemples avant/après.", "items": { "additionalProperties": false, "properties": { "thumbnail_url": { "description": "URL de la vignette.", "type": "string" }, "title": { "description": "Titre de l'exemple.", "type": "string" } }, "required": [ "title", "thumbnail_url" ], "type": "object" }, "type": "array" }, "gallery_url": { "description": "URL de la galerie publique où chaque portrait s'anime (avant/après). À partager avec l'utilisateur.", "type": "string" } }, "required": [ "beat", "gallery_url", "examples" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:0a98c3123ecb98326ab740d2bc6e33b1cca39037845185b1157acb456175c268 | sha256sum