{"name":"co.incarn/photo-animation","slug":"incarn-photo-animation","title":"Incarn","description":"Animate old family photos into short lifelike videos with AI.","url":"https://mcp.market/server/incarn-photo-animation","rating":null,"grade":"C","score":56,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T05:46:15.958Z","last_ok_at":"2026-09-24T05:46:15.958Z","latency_ms":64},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://incarn.co","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://api.incarn.co/mcp"}],"packages":[],"tools":[{"name":"animate_photo","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"photo_id":{"type":"string","description":"Photo uploadée (via confirm_upload), si l'utilisateur a joint un fichier sans URL. Prioritaire si fourni."},"image_url":{"type":"string","format":"uri","description":"URL publique http(s) de la photo. Chemin PRÉFÉRÉ (aucun upload, marche partout)."},"image_file":{"type":"object","properties":{"download_url":{"type":"string","description":"URL de téléchargement de l'image, fournie par l'hôte."},"file_id":{"type":"string","description":"Identifiant du fichier côté hôte."},"mime_type":{"type":"string"},"file_name":{"type":"string"}},"required":["download_url","file_id"],"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)."},"style":{"type":"string","description":"Indication libre et subtile sur le mouvement (optionnel)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"confirm_upload","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"upload_id":{"type":"string","description":"Le upload_id renvoyé par create_upload."}},"required":["upload_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"create_upload","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"mime_type":{"type":"string","description":"Type MIME de l'image (ex: 'image/jpeg', 'image/png')."}},"required":["mime_type"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_animation_status","description":"Récupère le statut d'un job d'animation et l'URL de la vidéo une fois prête.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"Identifiant du job d'animation."}},"required":["job_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_examples","description":"Voir des exemples avant/après d'animation de photos anciennes (galerie de démonstration).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"beat":{"type":"string","description":"Thème optionnel (ex: 'mariage', 'bébé', 'portrait')."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":56,"grade":"C","scanned_at":"2026-09-23T04:57:02.580Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T04:57:02.493Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2800ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.incarn.co/mcp","reachable":true,"authRequired":false,"latencyMs":2800,"serverInfo":{"name":"incarn","version":"1.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://www.incarn.co/icon.svg?5b0b6033add07e87","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}