Incarn
Server Details
Animate old family photos into short lifelike videos with AI.
- Status
- Healthy
- Uptime
- 98.1% over 44 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a distinct role: the main animation action, the two-step upload workflow, status polling, and an example gallery. The sequential upload tools are clearly differentiated from the direct `image_url` path, leaving no ambiguity about which tool to select.
All tool names use a consistent snake_case verb_noun pattern (`animate_photo`, `confirm_upload`, `create_upload`, `get_animation_status`, `list_examples`). The verbs are varied but follow the same structure, making the set predictable and easy to navigate.
Five tools is well-scoped for a focused photo-animation service: the core action, an upload pipeline, status checking, and discovery. Each tool earns its place without redundancy or bloat.
The tools cover the full workflow end-to-end: animating via public URL or file upload, confirming uploads, polling for results, and viewing examples. Optional features like cancellation or animation history are not required for the core task and are not obvious gaps.
Available Tools
5 toolsanimate_photoAnimer une photoAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Indication libre et subtile sur le mouvement (optionnel). | |
| photo_id | No | Photo uploadée (via confirm_upload), si l'utilisateur a joint un fichier sans URL. Prioritaire si fourni. | |
| image_url | No | URL publique http(s) de la photo. Chemin PRÉFÉRÉ (aucun upload, marche partout). | |
| image_file | No | 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). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Identifiant du job d'animation (à poller). |
| status | Yes | Statut du job : en cours, réussi ou échoué. |
| photo_url | Yes | URL de la photo source (avant), pour l'aperçu inline. |
| video_url | Yes | URL de la vidéo une fois prête, sinon null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, it discloses cost/credit requirements, the need for a funded account, the server-side fetching behavior, and a sandbox limitation on PUT requests. It does not explicitly describe the asynchronous flow or the need to consult get_animation_status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool purpose is front-loaded and every major sentence is informative. The description is lengthier than needed, partly because of pricing and legal details, but each addition is relevant to correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input selection, constraints, consent, and cost well. It lacks an explicit mention of what to do after the animation is submitted and could more clearly state that at least one of image_url, image_file, or photo_id must be provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful decision logic not present in the schema: choose image_url whenever possible, image_file is populated automatically, and photo_id requires the preceding upload sequence. This helps an agent select among parameters that the schema only lists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Anime une photo ancienne en une courte vidéo naturelle' states a specific verb, resource, and output. It is easily distinguishable from the sibling upload/status tools with which it is grouped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance on when to use each input: image_url is preferred, image_file is auto-filled by ChatGPT, and photo_id must be created via create_upload/confirm_upload with a sandbox caveat. It also specifies when not to use the tool for third-party or public figures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_uploadFinaliser un upload de photoAInspect
É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.
| Name | Required | Description | Default |
|---|---|---|---|
| upload_id | Yes | Le upload_id renvoyé par create_upload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| photo_id | Yes | Identifiant de la photo, à passer à animate_photo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false. The description adds that validation includes moderation, which is additional behavioral context. However, it does not clarify failure modes, idempotency, or side effects beyond validation, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with 'Étape 2', and no redundant phrasing. The description conveys the action, condition, and output without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, annotations, and presence of an output schema, the description covers the essential workflow: prerequisite, action, and return value. It does not detail moderation failure outcomes, but that is likely handled by the output schema, so the description is adequately complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (upload_id described as from create_upload). The description reinforces this and adds the prerequisite of sending bytes first, but does not go beyond the schema's description. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a photo after bytes are sent, using upload_id, and returns a photo_id. It also differentiates from siblings by specifying its place as step 2 in a pipeline (create_upload → confirm_upload → animate_photo).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it says to call after sending bytes via PUT and with the upload_id from create_upload, and to pass the returned photo_id to animate_photo. It implies when to use it via the 'Étape 2' step, but does not name alternative tools or explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_uploadPréparer un upload de photoAInspect
É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.
| Name | Required | Description | Default |
|---|---|---|---|
| mime_type | Yes | Type MIME de l'image (ex: 'image/jpeg', 'image/png'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | Marche à suivre + fallback si le PUT est bloqué. |
| upload_id | Yes | À passer à confirm_upload. |
| expires_in | Yes | Validité de l'URL, en secondes. |
| upload_url | Yes | URL sur api.incarn.co : PUT les octets du fichier dessus. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false, providing little behavioral detail. The description discloses important behavior: the tool returns an upload URL, requires a subsequent PUT and confirm_upload, and the PUT may fail due to sandbox egress restrictions. It also warns against base64 sending. It does not describe all possible response fields, but it covers the key workflow behavior clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately compact and front-loaded with the essential purpose and condition. It includes conditional advice and a strong caveat ('N'envie JAMAIS l'image en base64') that is necessary. It is slightly longer than necessary due to the caveats, but each sentence serves a purpose and the structure flows logically from steps to fallback instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a small multi-step upload workflow with an output schema present, and the description covers both the initial call and the follow-up PUT. It addresses error handling (403) and fallback options, which is complete for the agent. It does not detail the exact format of the response, but the output schema is present, so that is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single parameter mime_type. The description mentions 'en-tête Content-Type' for the subsequent PUT, which adds a bit of context about how the mime_type relates to the upload, but otherwise the schema already documents the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it's 'Étape 1 pour animer une photo JOINTE dans le chat quand il n'y a pas d'URL publique' and returns an upload URL. It specifies a verb (créer/préparer), a resource (upload de photo), and the condition when it applies, distinguishing it from the sibling alternate 'animate_photo' with an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (animated photo with a public URL is unavailable) and when to prefer the alternative (animate_photo with image_url). It also gives an instruction for what to do if the PUT fails with 403, including not retrying and falling back to image_url or requesting authorization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_animation_statusStatut d'une animationARead-onlyInspect
Récupère le statut d'un job d'animation et l'URL de la vidéo une fois prête.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Identifiant du job d'animation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Identifiant du job. |
| error | Yes | Message d'erreur si le job a échoué, sinon null. |
| status | Yes | Statut du job : en cours, réussi ou échoué. |
| photo_url | Yes | URL de la photo source (avant), pour l'aperçu inline. |
| video_url | Yes | URL de la vidéo une fois prête, sinon null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as safe and read-only. The description adds the useful detail that the video URL only becomes available when the animation is ready. However, it does not describe behavior such as polling semantics, status values, or error scenarios, though the output schema may cover some of this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence delivers exactly the essential information: what is retrieved and what additional data is returned when ready. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, one-parameter, read-only status tool with an output schema, the description is nearly sufficient. It clearly states the tool's purpose and the eventual video URL. Slightly more guidance about using it after animate_photo would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the only parameter, job_id, is already documented as 'Identifiant du job d'animation'. The description does not need to repeat this and provides no additional syntax or format details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Récupère'), a clear resource ('statut d'un job d'animation'), and an additional output detail (video URL once ready). This distinguishes it from sibling tools like animate_photo, confirm_upload, and create_upload, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: this is the status-checking counterpart to animate_photo. However, the description does not explicitly say when to use it, such as after submitting an animation job, nor does it mention any alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_examplesExemples d'animationsARead-onlyInspect
Voir des exemples avant/après d'animation de photos anciennes (galerie de démonstration).
| Name | Required | Description | Default |
|---|---|---|---|
| beat | No | Thème optionnel (ex: 'mariage', 'bébé', 'portrait'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| beat | Yes | Thème appliqué, ou null. |
| examples | Yes | Liste d'exemples avant/après. |
| gallery_url | Yes | URL de la galerie publique où chaque portrait s'anime (avant/après). À partager avec l'utilisateur. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, and the description does not contradict them. It adds the 'before/after example gallery' context but does not disclose additional behaviors such as default unfiltered listing, pagination, or how the optional theme affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It front-loads the action and resource, and the parenthetical clarifies the nature of the tool effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only demonstration tool with full annotation coverage, an output schema, and one well-documented optional parameter, the description is nearly complete. It could explicitly say that 'beat' filters the examples, but the schema already covers that, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional parameter 'beat' is already explained with examples in the schema. The tool description adds no additional semantic detail about the parameter, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Voir des exemples avant/après d'animation de photos anciennes' (see before/after examples). It also labels itself as a demonstration gallery, which sets it apart from the upload/processing siblings even though it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'galerie de démonstration' framing implies it is meant for previewing examples, presumably before animating a photo, but the description does not explicitly say when to use it versus the sibling tools. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
list_examples2 fields changed- added
Output schema / properties / gallery_urlAdded value: +{ + "description": "URL de la galerie publique où chaque portrait s'anime (avant/après). À partager avec l'utilisateur.", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "beat", - "examples" -]New value: +[ + "beat", + "gallery_url", + "examples" +]
1 tool update
- Changed
list_examples4 fields changed- changed
Output schema / properties / examples / items / properties / thumbnail_url / descriptionPrevious value: -"URL de la photo d'origine (avant)."New value: +"URL de la vignette." - removed
Output schema / properties / examples / items / properties / video_urlRemoved value: -{ - "description": "URL de la vidéo animée (après).", - "type": "string" -} - removed
Output schema / properties / examples / items / properties / yearRemoved value: -{ - "description": "Année de la photo d'origine.", - "type": "string" -} - changed
Output schema / properties / examples / items / requiredPrevious value: -[ - "title", - "year", - "thumbnail_url", - "video_url" -]New value: +[ + "title", + "thumbnail_url" +]
1 tool update
- Changed
list_examples4 fields changed- changed
Output schema / properties / examples / items / properties / thumbnail_url / descriptionPrevious value: -"URL de la vignette."New value: +"URL de la photo d'origine (avant)." - added
Output schema / properties / examples / items / properties / video_urlAdded value: +{ + "description": "URL de la vidéo animée (après).", + "type": "string" +} - added
Output schema / properties / examples / items / properties / yearAdded value: +{ + "description": "Année de la photo d'origine.", + "type": "string" +} - changed
Output schema / properties / examples / items / requiredPrevious value: -[ - "title", - "thumbnail_url" -]New value: +[ + "title", + "year", + "thumbnail_url", + "video_url" +]
2 tool updates
- Changed
animate_photo2 fields changed- added
Output schema / properties / photo_urlAdded value: +{ + "description": "URL de la photo source (avant), pour l'aperçu inline.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "video_url" -]New value: +[ + "id", + "status", + "video_url", + "photo_url" +]
- Changed
get_animation_status2 fields changed- added
Output schema / properties / photo_urlAdded value: +{ + "description": "URL de la photo source (avant), pour l'aperçu inline.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "video_url", - "error" -]New value: +[ + "id", + "status", + "video_url", + "error", + "photo_url" +]
1 tool update
- Changed
animate_photo1 field changed- added
Input schema / properties / image_fileAdded value: +{ + "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" +}
2 tool updates
- Changed
animate_photo2 fields changed- changed
Input schema / properties / image_url / descriptionPrevious value: -"URL publique http(s) de la photo à animer."New value: +"URL publique http(s) de la photo. Chemin PRÉFÉRÉ (aucun upload, marche partout)." - changed
Input schema / properties / photo_id / descriptionPrevious value: -"Photo uploadée (via confirm_upload). Prioritaire si fourni."New value: +"Photo uploadée (via confirm_upload), si l'utilisateur a joint un fichier sans URL. Prioritaire si fourni."
- Changed
create_upload3 fields changed- added
Output schema / properties / noteAdded value: +{ + "description": "Marche à suivre + fallback si le PUT est bloqué.", + "type": "string" +} - changed
Output schema / properties / upload_url / descriptionPrevious value: -"URL présignée : PUT les octets du fichier dessus."New value: +"URL sur api.incarn.co : PUT les octets du fichier dessus." - changed
Output schema / requiredPrevious value: -[ - "upload_id", - "upload_url", - "expires_in" -]New value: +[ + "upload_id", + "upload_url", + "expires_in", + "note" +]
3 tool updates
- Changed
animate_photo2 fields changed- added
Input schema / properties / photo_idAdded value: +{ + "description": "Photo uploadée (via confirm_upload). Prioritaire si fourni.", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "image_url" -]
- Added
confirm_upload - Added
create_upload
3 tool updates
- Changed
animate_photo1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "description": "Identifiant du job d'animation (à poller).", + "type": "string" + }, + "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" + ], + "type": "object" +}
- Changed
get_animation_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$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" + }, + "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" + ], + "type": "object" +}
- Changed
list_examples1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$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" + } + }, + "required": [ + "beat", + "examples" + ], + "type": "object" +}
3 tool updates
- First observed
animate_photo - First observed
get_animation_status - First observed
list_examples
Related MCP Connectors
Turn photos of a person, couple, or pet across the years into an AI growing-up morph video.
Restore old video and turn images into clips with sound. Pay from a capped balance, by card or USDC.
Turn words, images, and audio into an animated video with MP4 export.
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to explain an AI growing-up morph video service, share photo-selection tips, and hand users a link to create their own video from photos taken across the years.MIT
- AlicenseNot gradedqualityCmaintenanceTurn words, images, and audio into an animated video with MP4 export.MIT
- AlicenseBqualityCmaintenanceAI-powered animation generator that transforms static images into animated SVG components using the Model Context Protocol, allowing users to create animations through natural language prompts.118 npm8Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to generate narrated videos from topics or scripts, with stock footage, home videos, or local AI clips.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.