AI Photo Animator MCP
An official MCP server provided by AI Photo Animator that enables AI agents to animate photos into videos, apply viral dance and meme effects, generate videos from text, edit existing clips, restore old photos, and manage user credits and account status directly through standard MCP tools.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://aiphotoanimator.ai/api/mcpWhat you can do with it
- Animate a selfie with the Bottle Kick Challenge trend
- Restore and colorize old damaged photos
- Generate a video from a text description
- Edit a video clip to change outfit or scene
Source and maintenance
Protocol and capabilities
- Server
- ai-photo-animator 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 10 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
list_effects — List video effects
List video effect templates (dance, sports, meme scenes, etc.). Use the returned `effect` id with animate_photo. `photos` is how many photos the effect needs.
{
"type": "object",
"properties": {}
}{
"title": "List video effects",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}animate_photo — Animate a photo
Turn photo(s) into a short video. With `effect` (from list_effects) the effect decides the motion; without it the photo is animated following `prompt`. Costs credits. Returns a task_id; poll get_video for the result (usually 1–5 minutes).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"image_urls"
],
"properties": {
"effect": {
"type": "string",
"description": "Effect id from list_effects. Omit for a free-form animation."
},
"prompt": {
"type": "string",
"maxLength": 1000,
"description": "Motion description for free-form animation, or extra instructions for an effect."
},
"image_urls": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Public https image URLs (or data:image/...;base64 URLs), in the order the effect asks for. Usually one photo."
}
}
}{
"title": "Animate a photo",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}create_video — Create a video from text
Generate a short video (5 seconds, 720p, with sound) from a text description only, no photo needed. Costs credits. Returns a task_id; poll get_video.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 1000,
"minLength": 3,
"description": "What happens in the video: subject, action, setting, camera, mood."
},
"aspect_ratio": {
"enum": [
"9:16",
"16:9",
"1:1"
],
"type": "string",
"description": "9:16 for TikTok / Reels / Shorts (default), 16:9 for landscape, 1:1 square."
}
}
}{
"title": "Create a video from text",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}edit_video — Edit a video
Edit an existing video clip (MP4, up to 15 seconds, 50 MB) following instructions: put the person from a photo into the clip, change outfit, style, background or scene, while keeping the motion and timing. Costs credits (based on clip length). Returns a task_id; poll get_video.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_url",
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 1000,
"minLength": 3,
"description": "What to change, e.g. \"Replace the dancer with the person in image 1, keep the moves\"."
},
"video_url": {
"type": "string",
"description": "Public https URL of the MP4 clip to edit."
},
"image_urls": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Optional reference photos, referred to as image 1, image 2… in the prompt."
}
}
}{
"title": "Edit a video",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}create_image — Create or edit an image
Generate a new image from text, or edit photo(s) following instructions (change background, outfit, style, lighting, combine several photos). Uses Nano Banana 2 at 1K. Costs credits. Usually returns the image directly; if status is pending, call get_image later.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 4000,
"minLength": 3,
"description": "The image to create, or the edit to make to the photo(s)."
},
"image_urls": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"description": "Photos to edit or combine. Omit to generate from text only."
},
"aspect_ratio": {
"enum": [
"auto",
"1:1",
"3:4",
"4:3",
"2:3",
"3:2",
"4:5",
"5:4",
"9:16",
"16:9",
"21:9"
],
"type": "string",
"description": "auto (default) keeps the input photo's shape."
}
}
}{
"title": "Create or edit an image",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}restore_photo — Restore an old photo
Repair an old or damaged photo: remove scratches, dust, creases and fading, recover sharp faces, keep everyone exactly as they are. Optionally colorize a black-and-white photo. Costs credits. Returns the restored image (or pending → get_image). Tip: animate the result with animate_photo afterwards.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"image_url"
],
"properties": {
"colorize": {
"type": "boolean",
"description": "Also colorize a black-and-white or sepia photo. Default false."
},
"image_url": {
"type": "string",
"description": "Public https URL of the old photo (a scan or phone photo of a print is fine)."
}
}
}{
"title": "Restore an old photo",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}get_image — Get image status
Check an image task from create_image or restore_photo. status is pending, success (image_url ready) or failed (credits refunded).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "task_id returned by create_image or restore_photo"
}
}
}{
"title": "Get image status",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_video — Get video status
Check a generation task. status is pending, success (video_url ready) or failed (credits refunded).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "task_id returned by animate_photo, create_video or edit_video"
}
}
}{
"title": "Get video status",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}list_my_videos — List my videos
The user's most recent video generations, newest first.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 30,
"minimum": 1
}
}
}{
"title": "List my videos",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_credits — Get credits
Remaining credits and plan of the connected account.
{
"type": "object",
"properties": {}
}{
"title": "Get credits",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
media-widget
ui://widget/media-v1.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 862 ms
- 95th percentile latency
- 862 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 862 ms · metadata changed · 10 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http ai-photo-animator-mcp https://aiphotoanimator.ai/api/mcpCodex
codex mcp add ai-photo-animator-mcp --url https://aiphotoanimator.ai/api/mcpCursor
{
"mcpServers": {
"ai-photo-animator-mcp": {
"url": "https://aiphotoanimator.ai/api/mcp"
}
}
}Cline
{
"mcpServers": {
"ai-photo-animator-mcp": {
"type": "streamableHttp",
"url": "https://aiphotoanimator.ai/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"ai-photo-animator-mcp": {
"type": "http",
"url": "https://aiphotoanimator.ai/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http ai-photo-animator-mcp https://aiphotoanimator.ai/api/mcpClaude Desktop
{
"mcpServers": {
"ai-photo-animator-mcp": {
"url": "https://aiphotoanimator.ai/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"ai-photo-animator-mcp": {
"serverUrl": "https://aiphotoanimator.ai/api/mcp"
}
}
}Let your agent find its tools
Find servers like AI Photo Animator MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run AI Photo Animator MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.