FOR AGENTS AND DEVELOPERS
Sakaira MCP server
A remote MCP server for AI images, video, voice and music. Sign-in is OAuth 2.1, with no API keys. Its 27 tools are priced in credits, and every result carries its cost and the balance left.
SERVER URL
Connect
| Transport | Streamable HTTP at https://mcp.sakaira.com/mcp |
|---|---|
| Sign-in | OAuth 2.1: authorization code with PKCE (S256), and refresh tokens |
| Client registration | Dynamic client registration at https://mcp.sakaira.com/oauth/register, or a client ID metadata document |
| Token endpoint auth | none (public clients) |
| Scope | mcp:tools |
| Requests | The access token as a Bearer token in the Authorization header |
| Metadata | https://mcp.sakaira.com/.well-known/oauth-protected-resource/mcp and https://mcp.sakaira.com/.well-known/oauth-authorization-server |
Claude Code
Codex
Guides for every assistant: Claude · Claude Code · ChatGPT · Codex · Cursor · Grok · Hermes · OpenClaw · Any MCP client
Tools
Every tool the server offers today, with the parameters an agent sends.
| Tool | Group | What it does | Price |
|---|---|---|---|
| create_image | Make | Generate an image from text, or edit an existing image by passing image_url. | from 2 credits an image (≈ $0.02) |
| upscale_image | Fix | Increase the resolution of an image. | from 1 credit an image (≈ $0.01) |
| remove_background | Fix | Remove the background of an image and return a transparent PNG. | from 2 credits an image (≈ $0.02) |
| restore_image | Fix | Restore and colorize old or damaged photos. | 8 credits an image (≈ $0.08) |
| create_video | Make | Text-to-video and image-to-video, with first and last frames and reference images. | from 2 credits a second (≈ $0.02) |
| cut_video | Edit | Trim a clip by start/end or duration. | 10 credits an edit (≈ $0.11) |
| resize_video | Edit | Resize or reframe a video (pad, crop or a blurred background), e.g. for TikTok. | 10 credits an edit (≈ $0.11) |
| extract_frames | Edit | Extract one frame or one frame every N seconds. | 10 credits an edit (≈ $0.11) |
| video_to_gif | Edit | Convert a video segment into an optimized GIF. | 10 credits an edit (≈ $0.11) |
| stitch_media | Edit | Put audio over video, concatenate videos, or join audio files. | 10 credits an edit (≈ $0.11) |
| extract_audio | Edit | Extract the audio track of a video. | 10 credits an edit (≈ $0.11) |
| remove_audio | Edit | Remove or mute the audio track of a video. | 10 credits an edit (≈ $0.11) |
| create_voiceover | Make | Text to speech. | from 2 credits per 1,000 characters (≈ $0.02) |
| create_music | Make | Generate background music from a style prompt (and optional lyrics). | from 8 credits a track (≈ $0.08) |
| transcribe | Fix | Audio to text with timestamps. | 1.6 credits a minute (≈ $0.02) |
| enhance_audio | Fix | Isolate a voice: remove noise, music and reverb. | from 12 credits a minute (≈ $0.13) |
| save_brand_kit | Your brand | Save the user's brand: name, colors, fonts, tone, voice, logo and images. | Free |
| get_brand_kit | Your brand | Read the user's brand kit before making anything for their brand. | Free |
| delete_brand_kit | Your brand | Delete the user's brand kit and its images. | Free |
| delete_asset | Your account | Delete a file from your library for good. | Free |
| list_models | Your account | Catalog of models, filterable by category or text. | Free |
| describe_model | Your account | All parameters and prices of one model. | Free |
| check_balance | Your account | Your plan and credits with their dates, optionally with a cost estimate. | Free |
| buy_credits | Your account | A credit pack's checkout link for subscribers, or the plans link. | Free |
| get_job | Your account | Status and result of a job, or your most recent jobs. | Free |
| spend_report | Your account | Credits spent by period and by tool. | Free |
| send_feedback | Your account | Report a bug, a missing feature, something confusing, or praise. | Free |
Dollar amounts at monthly-plan rates (1 credit ≈ $0.0106). Yearly plans cost 20% less; credit packs ≈ $0.014 a credit. Prices as of September 2026.
create_video runs in the background: it returns a job_id at once, and get_job returns the clip when it's done.
create_image
Generate 1–4 images from a prompt, or edit images by passing image_url (more references in extras.image_urls). Models: nano-banana-2 (default): fast all-round images and edits, 0.5K to 4K; nano-banana-pro: harder edits and detailed scenes, up to 4K; nano-banana-2-lite: cheap 1K drafts; gpt-image-2.5-sunburst: accurate text and edits; gpt-image-2.5-flare: the same quality, faster; muse-image: high quality at a low price; grok-imagine-image-2: posters and designs with legible text; seedream-5-pro: consistent characters from many references; seedream-5-lite: cheap, consistent sets of images; flux-2-pro: photoreal images at exact sizes; flux-2-max: FLUX's highest detail; flux-2-flex: typography and fine control; flux-2-klein: very fast, very cheap drafts; qwen-image-3: long, detailed prompts; ideogram-4: logos and typography; recraft-4.1: brand illustrations; recraft-4.1-vector: editable SVG icons and logos; mai-image-2.5: realistic scenes and portraits; krea-2: stylized images from style references; luma-uni-1: concept art and moody frames. Set quality (low, medium, high) where a model offers it. Call list_models for prices and describe_model for a model's options. Returns fixed URLs, each kept until its expires_at, plus the cost and your remaining balance.
Price: from 2 credits an image (≈ $0.02)
Parameters (12)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| prompt | string | Required | — | What to generate, or how to edit image_urlUp to 4,000 characters |
| model | nano-banana-2 | nano-banana-pro | nano-banana-2-lite | gpt-image-2.5-sunburst | gpt-image-2.5-flare | muse-image | grok-imagine-image-2 | seedream-5-pro | seedream-5-lite | flux-2-pro | flux-2-max | flux-2-flex | flux-2-klein | qwen-image-3 | ideogram-4 | recraft-4.1 | recraft-4.1-vector | mai-image-2.5 | krea-2 | luma-uni-1 | Optional | nano-banana-2 | nano-banana-2 (default): fast all-round images and edits, 0.5K to 4K; nano-banana-pro: harder edits and detailed scenes, up to 4K; nano-banana-2-lite: cheap 1K drafts; gpt-image-2.5-sunburst: accurate text and edits; gpt-image-2.5-flare: the same quality, faster; muse-image: high quality at a low price; grok-imagine-image-2: posters and designs with legible text; seedream-5-pro: consistent characters from many references; seedream-5-lite: cheap, consistent sets of images; flux-2-pro: photoreal images at exact sizes; flux-2-max: FLUX's highest detail; flux-2-flex: typography and fine control; flux-2-klein: very fast, very cheap drafts; qwen-image-3: long, detailed prompts; ideogram-4: logos and typography; recraft-4.1: brand illustrations; recraft-4.1-vector: editable SVG icons and logos; mai-image-2.5: realistic scenes and portraits; krea-2: stylized images from style references; luma-uni-1: concept art and moody frames. Call list_models for what each model costs. |
| image_url | string | Optional | — | Reference image to edit or use as guidance |
| width | integer | Optional | — | Output width in pixels. Give one side and the other follows at 4:3.256–4,096 |
| height | integer | Optional | — | Output height in pixels. Give one side and the other follows at 4:3.256–4,096 |
| num_images | integer | Optional | 1 | 1–4 |
| remove_background | boolean | Optional | false | Also remove the background (+2 credits per image) |
| seed | integer | Optional | — | 0–2,147,483,647 |
| output_format | png | jpg | jpeg | webp | Optional | png | — |
| quality | low | medium | high | Optional | — | Output quality where the model offers it (GPT Image, Grok, Ideogram); it changes the price. Omit for the model's default. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Billed parameters (num_images, resolution, image_size, width/height, aspect_ratio) are not accepted here; use the top-level fields. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
upscale_image
Make an image 1–4× bigger (scale, 2 by default) from its https URL. Models: topaz-upscale (default): faithful upscales up to 4×; recraft-crisp-upscale: cheap, sharp upscales of PNGs; seedvr2-upscale: very cheap large upscales; clarity-upscaler: creative upscales that add detail. recraft-crisp-upscale takes PNG only. The price follows the output size, read from the image before any charge. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: from 1 credit an image (≈ $0.01)
Parameters (6)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| image_url | string | Required | — | The image to upscale (https) |
| scale | number | Optional | 2 | How many times bigger each side gets (2 doubles width and height)1–4 |
| output_format | png | jpg | jpeg | Optional | — | png or jpg where the model offers a choice; by default a JPEG stays jpg and a PNG or WebP becomes png |
| model | recraft-crisp-upscale | topaz-upscale | seedvr2-upscale | clarity-upscaler | Optional | topaz-upscale | recraft-crisp-upscale: cheap, sharp upscales of PNGs; topaz-upscale (default): faithful upscales up to 4×; seedvr2-upscale: very cheap large upscales; clarity-upscaler: creative upscales that add detail. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
remove_background
Cut out the subject of an image (https URL; PNG, JPEG or WebP) and return a transparent PNG. Models: ideogram-remove-background (default): transparent PNG cut-outs; bria-rmbg-2: cut-outs from a model trained on licensed data. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: from 2 credits an image (≈ $0.02)
Parameters (4)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| image_url | string | Required | — | The image to cut out (https; PNG, JPEG or WebP) |
| model | ideogram-remove-background | bria-rmbg-2 | Optional | ideogram-remove-background | ideogram-remove-background (default): transparent PNG cut-outs; bria-rmbg-2: cut-outs from a model trained on licensed data. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
restore_image
Repair an old or damaged photo from its https URL: remove scratches, fix or add colors (colorize) and raise the resolution. Models: photo-restoration (default): repairing and colorizing old photos. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: 8 credits an image (≈ $0.08)
Parameters (8)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| image_url | string | Required | — | The old or damaged photo (https) |
| colorize | boolean | Optional | true | Fix or add colors |
| remove_scratches | boolean | Optional | true | — |
| enhance_resolution | boolean | Optional | true | — |
| aspect_ratio | 1:1 | 16:9 | 9:16 | 4:3 | 3:4 | Optional | — | Output aspect ratio; the model's default when omitted |
| model | photo-restoration | Optional | photo-restoration | photo-restoration (default): repairing and colorizing old photos. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
create_video
Generate a video from a prompt, animate an image (image_url is the first frame, end_image_url the last), or keep subjects consistent with reference_image_urls. Models: gemini-omni-flash (default): video with sound; veo-3.1: Veo at up to 4K; veo-3.1-fast: Veo quality at a lower price, up to 4K; veo-3.1-lite: cheap clips with sound, or silent b-roll; wan-3: single shots up to 30 s at native 1080p; happyhorse-1.1: talking characters with lip-sync; minimax-h3-max: fast image-to-video with sound; minimax-h3-max-turbo: the cheapest H3 Max clips; minimax-h3: the open-weights H3, up to 4K; seedance-2.5: ads up to 30 s with many reference images; seedance-2: cinematic multi-shot clips; seedance-2-fast: Seedance 2.0 at a lower price; seedance-2-mini: cheap Seedance drafts; kling-3-pro: cinematic motion; kling-3-turbo: faster Kling with sound; kling-o3: consistent characters from reference images; grok-imagine-video-1.5: short clips with sound from text or images; flux-3: cinematic clips from text or a first and last frame; ltx-2.5: open-weights clips up to 20 s and 4K; pixverse-6: cheap social clips with optional sound; vidu-q3: clips up to 16 s with start and end frames; luma-ray-3.2: cinematic silent shots; creatify-boreal: product, UGC and presenter ads from a script. Duration, resolution and aspect ratio are fitted to what the model makes, and any change is listed in warnings. Returns a job_id at once: videos take about 1–5 minutes, so call get_job with that job_id to get the fixed URL, kept until its expires_at. Call list_models for prices and describe_model for each model's options. Quotes above 500 credits need confirm: true.
Price: from 2 credits a second (≈ $0.02)
Parameters (12)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| prompt | string | Required | — | What happens in the video: subject, motion, camera, soundUp to 5,000 characters |
| model | gemini-omni-flash | veo-3.1 | veo-3.1-fast | veo-3.1-lite | wan-3 | happyhorse-1.1 | minimax-h3-max | minimax-h3-max-turbo | minimax-h3 | seedance-2.5 | seedance-2 | seedance-2-fast | seedance-2-mini | kling-3-pro | kling-3-turbo | kling-o3 | grok-imagine-video-1.5 | flux-3 | ltx-2.5 | pixverse-6 | vidu-q3 | luma-ray-3.2 | creatify-boreal | Optional | gemini-omni-flash | gemini-omni-flash (default): video with sound; veo-3.1: Veo at up to 4K; veo-3.1-fast: Veo quality at a lower price, up to 4K; veo-3.1-lite: cheap clips with sound, or silent b-roll; wan-3: single shots up to 30 s at native 1080p; happyhorse-1.1: talking characters with lip-sync; minimax-h3-max: fast image-to-video with sound; minimax-h3-max-turbo: the cheapest H3 Max clips; minimax-h3: the open-weights H3, up to 4K; seedance-2.5: ads up to 30 s with many reference images; seedance-2: cinematic multi-shot clips; seedance-2-fast: Seedance 2.0 at a lower price; seedance-2-mini: cheap Seedance drafts; kling-3-pro: cinematic motion; kling-3-turbo: faster Kling with sound; kling-o3: consistent characters from reference images; grok-imagine-video-1.5: short clips with sound from text or images; flux-3: cinematic clips from text or a first and last frame; ltx-2.5: open-weights clips up to 20 s and 4K; pixverse-6: cheap social clips with optional sound; vidu-q3: clips up to 16 s with start and end frames; luma-ray-3.2: cinematic silent shots; creatify-boreal: product, UGC and presenter ads from a script. Call list_models for what each model costs. |
| image_url | string | Optional | — | First frame: animate this image |
| end_image_url | string | Optional | — | Last frame: the video ends on this image (needs image_url on most models) |
| reference_image_urls | string[] | Optional | — | Images of subjects or products to keep consistent (not frames); see describe_model for each model's limit |
| duration | integer | Optional | — | Seconds (default 5); fitted to what the model makes1–30 |
| resolution | string | Optional | — | 360p, 480p, 540p, 720p, 768p, 1080p, 1440p, 2160p, 2k, 4k; fitted to the model's nearest; default: the model's standard one |
| aspect_ratio | string | Optional | — | "16:9", "9:16", "1:1"…; fitted to the nearest ratio the model makes |
| audio | boolean | Optional | — | Sound on (the default wherever the model can) or off; off costs less on some models |
| seed | integer | Optional | — | 0–2,147,483,647 |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Billed parameters (duration, resolution, aspect_ratio, audio, frames, references) are not accepted here; use the top-level fields. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
cut_video
Keep one part of a video as an MP4 that plays everywhere, cut at the exact frame: give start and end, or start and duration (seconds like 65.5 or "1:05.5"; negative counts from the end). Also trims an audio file, returned as MP3, M4A or WAV (up to 60 min; WAV up to 15 min). The file is an https link to a Sakaira file or any public file, up to 500 MB; a video cut is Full HD at most and up to 45 s of 1080p at 30 fps (longer at lower resolutions). 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (5)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video, or audio file, to cut: an https link to a Sakaira file or any public file, up to 500 MB |
| start | number | string | Optional | — | Where the part to keep starts: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; 0 by default |
| end | number | string | Optional | — | Where it ends: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the end of the file by default |
| duration | number | string | Optional | — | How long the part is: seconds (10) or "mm:ss" ("0:10"); end wins when both are given |
| audio_track | integer | Optional | — | Which audio track to use when the file has several, counted from 1≥ 1 |
resize_video
Reframe or resize a video for a platform or a size, as an H.264 MP4, with pad, crop or a blurred background: give a preset (tiktok, reels, shorts, youtube, square, instagram_portrait…), an aspect_ratio ("9:16") or a width and height (up to 1920). fit auto, the default, crops when that keeps at least 70% of the picture and otherwise sets it on a blurred copy of itself. The video is an https link to a Sakaira file or any public file, up to 500 MB; the result is Full HD at most and up to 45 s of 1080p at 30 fps (30 s with the blurred background). 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (9)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video to resize: an https link to a Sakaira file or any public file, up to 500 MB |
| preset | tiktok | reels | shorts | story | vertical | youtube | landscape | square | instagram_portrait | Optional | — | A platform's size: tiktok, reels, shorts, story, vertical 1080×1920; youtube, landscape 1920×1080; square 1080×1080; instagram_portrait 1080×1350 |
| aspect_ratio | string | number | Optional | — | Width to height, like "9:16", "4:5" or 1.78, from 1:4 to 4:1; with width or height it sets the other side, and alone it never enlarges |
| width | integer | Optional | — | Output width in pixels, 128–1920128–1,920 |
| height | integer | Optional | — | Output height in pixels, 128–1920128–1,920 |
| fit | auto | crop | pad | blur | Optional | auto | How the picture fills the new shape: auto crops when that keeps at least 70% of it, else blur; crop cuts the edges; pad adds bars in pad_color; blur puts it on a blurred copy of itself |
| position | center | top | bottom | left | right | Optional | center | Which part a crop keeps |
| pad_color | string | Optional | black | The bars' colour with fit pad: black, white or #RRGGBB |
| audio_track | integer | Optional | — | Which audio track to use when the file has several, counted from 1≥ 1 |
extract_frames
Save still images from a video as JPG (or PNG): at the timestamps you give, a count of frames spread evenly (the middle frame when nothing else is given), or one every_seconds, optionally between start and end. Each time gives the frame a player shows at that moment, at the video's size (up to 3840 px on the long side); up to 20 frames per call. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL per frame, each kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (7)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video: an https link to a Sakaira file or any public file, up to 500 MB |
| timestamps | number | string | (number | string)[] | Optional | — | The times to save, one or up to 20: seconds (12.5), "mm:ss", "start" or "end"; each gives the frame a player shows then |
| count | integer | Optional | — | How many frames, spread evenly over the video (or from start to end), up to 20; 1, the middle frame, when nothing else is given1–20 |
| every_seconds | number | Optional | — | One frame every this many seconds (at least 0.1)≥ 0.1 |
| start | number | string | Optional | — | Where count and every_seconds begin: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the start of the video by default |
| end | number | string | Optional | — | Where they stop: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the end of the video by default |
| output_format | jpg | jpeg | png | Optional | jpg | jpg (the default) or png |
video_to_gif
Make a short looping GIF from part of a video: start and end, or duration (the first 10 s by default, up to 30 s); width 64–800 px (by default it fits 480×480 and never enlarges) and fps 1–25 (12 by default); loop false plays it once. A long or large GIF gets a lower frame rate, then a smaller size, to stay light, with a note in the reply. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (8)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video: an https link to a Sakaira file or any public file, up to 500 MB |
| start | number | string | Optional | — | Where the GIF starts: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; 0 by default |
| end | number | string | Optional | — | Where it ends: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the first 10 s by default; a GIF is up to 30 s long |
| duration | number | string | Optional | — | How long the GIF is, up to 30 s: seconds (10) or "mm:ss" ("0:10"); end wins when both are given |
| width | integer | Optional | — | GIF width in pixels, 64–800; by default it fits a 480×480 box, and it never enlarges64–800 |
| height | integer | Optional | — | GIF height in pixels, when no width is given64–800 |
| fps | integer | Optional | — | Frames per second, 1–25; 12 by default, never above the video's1–25 |
| loop | boolean | Optional | true | Loop forever (the default); false plays once |
stitch_media
Combine media into one file. add_audio puts music or a voiceover (audio_url) on a video (video_url), mixed with its sound or replacing it (audio_mode), with volumes, a start time and an optional loop; a sound that runs to the video's end fades out over its last second (less on a video under 4 s), by itself. join_videos joins 2–10 videos (video_urls) into one MP4 of one shape (aspect_ratio, fit), with optional crossfades and optional music or a voiceover over it (audio_url, as in add_audio); join_audio joins 2–10 audio files (audio_urls) as MP3 or WAV. operation is read from the links when missing. Up to 10 min of video for add_audio when its picture is kept as it is (most H.264 and HEVC videos; others are re-encoded, up to 45 s of 1080p at 30 fps), 45 s of 1080p for join_videos and 20 min for join_audio. Every file is an https link to a Sakaira file or any public file, up to 500 MB each and 1 GB in all. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (14)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| operation | add_audio | join_videos | join_audio | Optional | — | add_audio, join_videos or join_audio; read from the links when missing |
| video_url | string | Optional | — | add_audio: the video (https link) |
| audio_url | string | Optional | — | add_audio: the music or voiceover; join_videos: optional music or voiceover over the joined clips (https link) |
| video_urls | string[] | Optional | — | join_videos: 2 to 10 links to videos, joined in this order |
| audio_urls | string[] | Optional | — | join_audio: 2 to 10 links to audio files, joined in this order |
| audio_mode | mix | replace | Optional | — | add_audio, and join_videos with an audio_url: mix with the video's own sound (the default when it has sound) or replace it |
| video_volume | number | Optional | 1 | add_audio, and join_videos with an audio_url: the video's own sound, 0–2; 1 keeps it as it is0–2 |
| audio_volume | number | Optional | 1 | add_audio, and join_videos with an audio_url: the added audio, 0–2; 1 keeps it as it is0–2 |
| audio_start_seconds | number | Optional | 0 | add_audio, and join_videos with an audio_url: when the added audio starts, in seconds from the start of the video≥ 0 |
| loop_audio | boolean | Optional | false | add_audio, and join_videos with an audio_url: repeat a short track until the video ends (by default silence follows it) |
| fit | pad | crop | Optional | pad | join_videos: clips of another shape get bars (pad, the default) or are cropped |
| aspect_ratio | first | 9:16 | 16:9 | 1:1 | 4:5 | Optional | first | join_videos: the shape of the joined video; first (the default) follows the first clip |
| crossfade_seconds | number | Optional | 0 | join_videos and join_audio: a crossfade between clips, 0–2 s (0, a plain cut, by default)0–2 |
| output_format | mp3 | wav | Optional | mp3 | join_audio: mp3 (the default) or wav |
extract_audio
Save a video's sound, or convert an audio file, as MP3, M4A or WAV (output_format, mp3 by default; bitrate_kbps 64–320, 192 by default). An MP3 stays as it is and AAC goes into an M4A without re-encoding. Up to 60 min (WAV up to 15 min); audio_track picks a track when there are several. The file is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (4)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video, or an audio file to convert: an https link to a Sakaira file or any public file, up to 500 MB |
| output_format | mp3 | m4a | wav | Optional | mp3 | mp3 (the default), m4a or wav (lossless, up to 15 min) |
| bitrate_kbps | number | Optional | — | MP3 or M4A bitrate, 64–320 kbps (192 by default), rounded to a standard rate64–320 |
| audio_track | integer | Optional | — | Which audio track to use when the file has several, counted from 1≥ 1 |
remove_audio
Mute a video: remove its sound (mode remove, the default) or replace it with a silent track (mode mute), so it plays without audio. Most H.264, HEVC and WebM videos keep their picture as it is, so they lose nothing and can be up to 60 min long, with results up to 250 MB; other videos are re-encoded, up to 45 s of 1080p at 30 fps. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.
Price: 10 credits an edit (≈ $0.11)
Parameters (2)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| video_url | string | Required | — | The video: an https link to a Sakaira file or any public file, up to 500 MB |
| mode | remove | mute | Optional | remove | remove (the default) drops the sound; mute keeps a silent sound track instead |
create_voiceover
Turn text into speech: voiceovers, narration, ads. Models: gemini-3.8-flash-tts (default): natural voices directed in plain English; gemini-3.8-flash-lite-tts: the same voices, cheaper; elevenlabs-v3: expressive voices with emotion tags and word timings; elevenlabs-multilingual-v2: steady narration with speed control; minimax-speech-2.8-hd: emotional voices for long texts; minimax-speech-2.8-turbo: MiniMax voices at a lower price; xai-tts: cheap voices with laughs and whispers; inworld-tts-1.5: low-cost voices, 73 in English; kokoro: fast English drafts; chatterbox-hd: dramatic voices with adjustable intensity; dia: two-speaker dialogue; orpheus: open-source English narration. Pick a voice with voice (describe_model lists each model's voices); style gives the Gemini voices directions in plain English; speed where the model has it. Priced per character of text. No voice cloning. Returns a fixed audio URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: from 2 credits per 1,000 characters (≈ $0.02)
Parameters (7)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| text | string | Required | — | The words to speak, verbatim. Each model has its own length cap (describe_model).Up to 15,000 characters |
| voice | string | Optional | — | Voice name from the model's list (describe_model); the model's default when omittedUp to 100 characters |
| style | string | Optional | — | How to say it, in plain English, e.g. 'warm and slow, like a bedtime story' (Gemini models)Up to 1,000 characters |
| speed | number | Optional | — | Speaking speed, 1 is normal (ElevenLabs Multilingual v2 0.7–1.2, MiniMax and Kokoro 0.5–2)0.5–2 |
| model | gemini-3.8-flash-tts | gemini-3.8-flash-lite-tts | elevenlabs-v3 | elevenlabs-multilingual-v2 | minimax-speech-2.8-hd | minimax-speech-2.8-turbo | xai-tts | inworld-tts-1.5 | kokoro | chatterbox-hd | dia | orpheus | Optional | gemini-3.8-flash-tts | gemini-3.8-flash-tts (default): natural voices directed in plain English; gemini-3.8-flash-lite-tts: the same voices, cheaper; elevenlabs-v3: expressive voices with emotion tags and word timings; elevenlabs-multilingual-v2: steady narration with speed control; minimax-speech-2.8-hd: emotional voices for long texts; minimax-speech-2.8-turbo: MiniMax voices at a lower price; xai-tts: cheap voices with laughs and whispers; inworld-tts-1.5: low-cost voices, 73 in English; kokoro: fast English drafts; chatterbox-hd: dramatic voices with adjustable intensity; dia: two-speaker dialogue; orpheus: open-source English narration. Call list_models for what each model costs. describe_model lists each model's voices. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
create_music
Generate a music track from a prompt (genre, mood, instruments, tempo), with lyrics or as an instrumental. Models: lyria-3.5 (default): songs or instrumental tracks up to about 3 minutes; elevenlabs-music-2.5: tracks with an exact length for ads and videos; minimax-music-2.6: songs with lyrics or instrumental tracks; stable-audio-3: instrumental beds and ambience with an exact length. duration_seconds is exact on elevenlabs-music-2.5 and stable-audio-3 (30 s by default there) and a hint on lyria-3.5. Returns a fixed MP3 URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: from 8 credits a track (≈ $0.08)
Parameters (7)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| prompt | string | Required | — | The music to make: genre, mood, instruments, tempo, vocals, structureUp to 5,000 characters |
| lyrics | string | Optional | — | Lyrics to sing, one line per line; [Verse] and [Chorus] tags helpUp to 3,500 characters |
| instrumental | boolean | Optional | false | No vocals |
| duration_seconds | integer | Optional | — | Length in seconds: exact on elevenlabs-music-2.5 (3–600) and stable-audio-3 (1–380), 30 by default there; a hint on lyria-3.5; minimax-music-2.6 picks its own length1–600 |
| model | lyria-3.5 | elevenlabs-music-2.5 | minimax-music-2.6 | stable-audio-3 | Optional | lyria-3.5 | lyria-3.5 (default): songs or instrumental tracks up to about 3 minutes; elevenlabs-music-2.5: tracks with an exact length for ads and videos; minimax-music-2.6: songs with lyrics or instrumental tracks; stable-audio-3: instrumental beds and ambience with an exact length. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
transcribe
Transcribe an audio file (https URL) into text with word timings and speaker labels. Models: scribe-v2 (default): transcripts with word timings and speakers. Returns the text plus an SRT subtitle file and a JSON file with every word's timing. Priced per started minute of the file, whose length is read before any charge; keyterms (names, jargon) add 30%. Call list_models for prices and describe_model for a model's options.
Price: 1.6 credits a minute (≈ $0.02)
Parameters (8)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| audio_url | string | Required | — | The audio file to transcribe (https) |
| language | string | Optional | — | ISO 639 language code (en, es, …); detected when omitted2–8 characters |
| speakers | boolean | Optional | true | Label who is speaking |
| audio_events | boolean | Optional | true | Tag sounds like (laughter) or (applause) |
| keyterms | string[] | Optional | — | Names or jargon to spell right, up to 100; adds 30% to the price |
| model | scribe-v2 | Optional | scribe-v2 | scribe-v2 (default): transcripts with word timings and speakers. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
enhance_audio
Clean a voice recording from an audio file (https URL): elevenlabs-audio-isolation removes background noise, music and reverb; deepfilternet-3 removes noise, more cheaply. Models: elevenlabs-audio-isolation (default): removing noise and music from a voice; deepfilternet-3: cheap noise removal. Priced per minute of the file, whose length is read before any charge. Returns a fixed audio URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.
Price: from 12 credits a minute (≈ $0.13)
Parameters (5)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| audio_url | string | Required | — | The voice recording to clean: an audio file (https) |
| output_format | mp3 | wav | flac | m4a | Optional | mp3 | deepfilternet-3 only; Audio Isolation returns its own format |
| model | elevenlabs-audio-isolation | deepfilternet-3 | Optional | elevenlabs-audio-isolation | elevenlabs-audio-isolation (default): removing noise and music from a voice; deepfilternet-3: cheap noise removal. Call list_models for what each model costs. |
| extras | object | Optional | — | Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here. |
| confirm | boolean | Optional | false | Set true to accept a quote above 500 credits |
save_brand_kit
Create or update the account's brand kit (one per account). Call it when the user wants to save or change their brand. Send only what changes: a field left out or null keeps its saved value. The fields: name (needed the first time), up to 6 colors as #RRGGBB, up to 3 fonts by name (heading, body or accent), tone (up to 500 characters), notes (up to 1,000) and voice (a create_voiceover model and one of its voices). colors and fonts replace the whole list, and [] clears one; "" clears tone or notes; clear_voice: true removes the voice. With a paid plan the kit also takes images by https URL (PNG, JPEG or WebP, up to 20 MB each): one logo, which replaces the current one, and up to 10 reference images; remove_image_ids removes saved ones. Returns the kit and edit_url, the Brand kit page where the user can drop files, plus, with a paid plan, upload: a ready command to upload a file from this computer. Free.
Price: Free
Parameters (9)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | Optional | — | The brand's name, needed when the kit is created. Left out or null keeps the saved name; it cannot be clearedUp to 60 characters |
| colors | object[] | Optional | — | Up to 6 brand colors. Replaces the saved list; [] clears it, null keeps it |
| fonts | object[] | Optional | — | Up to 3 fonts. Replaces the saved list; [] clears it, null keeps it |
| tone | string | Optional | — | How the brand talks, e.g. friendly, short sentences, no jargon. Left out or null keeps the saved tone; "" clears itUp to 500 characters |
| notes | string | Optional | — | Style notes: what to do and what to avoid. Left out or null keeps the saved notes; "" clears themUp to 1,000 characters |
| voice | object | Optional | — | The voice for the brand's voiceovers. Left out or null keeps the saved voice; clear_voice removes it |
| clear_voice | boolean | Optional | — | true removes the saved voice (send it without voice) |
| add_images | object[] | Optional | — | Images to add by URL, with a paid plan: one logo and up to 10 reference images per kit |
| remove_image_ids | string[] | Optional | — | Ids of saved images to remove, as get_brand_kit lists them |
get_brand_kit
Return the account's brand kit: name, colors, fonts, tone, notes, voice, and its logo and reference images with their ids and URLs. Call it before making anything for the user's brand (an image, a video, a voiceover, a post) and apply it: put its colors, fonts and tone into the prompt; pass the logo or reference image URLs as reference images only when the piece should show them; never ask a model to redraw the logo from memory; use the kit's voice for voiceovers unless the user picks another. The kit is null when there is none yet (create one with save_brand_kit). Also returns edit_url, the Brand kit page in the user's Library where they can drop files, how_to_use and, with a paid plan, upload: a ready command to upload a file from this computer. Free.
Price: Free
delete_brand_kit
Delete the account's brand kit for good, with its logo and reference images: their URLs stop working. Call it only when the user asks to delete their brand kit; to change it, call save_brand_kit. Files in the user's library are not touched. Free.
Price: Free
delete_asset
Delete a file for good: it leaves your library and its URL stops working. Pass asset_id or the file's url. Free; the credits it cost are not refunded.
Price: Free
Parameters (2)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| asset_id | string | Optional | — | The file's asset_id, as create_image or get_job returned it |
| url | string | Optional | — | Or the file's URL, exactly as Sakaira returned it. Pass asset_id or url, not both |
list_models
List the available models with vendor, category, price in credits and which tools use them. Filter by category (image, video, voice, music, audio, utility) or free text. Free.
Price: Free
Parameters (2)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| category | image | video | voice | music | audio | utility | Optional | — | — |
| query | string | Optional | — | Free-text filter on name, vendor or idUp to 100 characters |
describe_model
Return a model’s parameters (name, type, default), pricing rule and the tools that use it. Free.
Price: Free
Parameters (1)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| model | string | Required | — | Model id, e.g. nano-banana-2 |
check_balance
Return your plan and credits: the subscription's plan with its renewal or end date, your balance, and each lot of credits with its expiry (a plan's credits at the end of their month, a pack's 90 days after purchase, the free ones 30 days after signup), and without a subscription the date your next file is deleted. Optionally the deterministic cost of a tool call given its input. Free.
Price: Free
Parameters (2)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| tool | string | Optional | — | Optional: estimate the cost of calling this tool… |
| input | object | Optional | — | …with this input |
buy_credits
Credit packs are for subscribers: create a secure Stripe Checkout link for a pack of 700 to 7,000 credits, which expire 90 days after purchase. Without a subscription it returns the plans link instead, where the user subscribes; plans are changed there too. The checkout page shows the price. Free.
Price: Free
Parameters (1)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| pack | pack_10 | pack_25 | pack_50 | pack_100 | Optional | pack_10 | pack_10 (700 credits), pack_25 (1,750), pack_50 (3,500), pack_100 (7,000) |
get_job
Return the status (queued, running, succeeded, failed) and, when done, the fixed URLs (each kept until its expires_at) and cost of a job created by create_video or any other asynchronous tool. Without job_id, list your 10 most recent jobs, newest first, with their status, cost and file URLs: use it to recover a result whose reply was lost or timed out, instead of generating again. Free.
Price: Free
Parameters (1)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| job_id | string | Optional | — | Omit job_id to list your 10 most recent jobs, e.g. after a lost reply |
spend_report
Summarize credits spent today, in the last 7 or 30 days, or all time, broken down by tool. Free.
Price: Free
Parameters (1)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| period | today | 7d | 30d | all | Optional | 30d | — |
send_feedback
Send feedback to the Sakaira team from inside the assistant: kind (bug, missing, confusing, praise) and a message. Free.
Price: Free
Parameters (2)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| kind | bug | missing | confusing | praise | Required | — | — |
| message | string | Required | — | 3–4,000 characters |
Credits
- Every result carries cost.credits and balance.credits; balance.low turns true below 50 credits.
- check_balance with tool and input returns the exact cost of that call before you make it.
- A job above 500 credits returns ok: false with needs_confirmation: true and an estimate (its credits and a cost breakdown); call again with confirm: true to run it.
- A failed job's credits usually come back automatically; error.refunded_credits gives the exact number, which can be less than the job's cost, arrive later instead of in that reply, or be zero if the original payment was itself refunded or disputed.
- Free tools: save_brand_kit, get_brand_kit, delete_brand_kit, delete_asset, list_models, describe_model, check_balance, buy_credits, get_job, spend_report, send_feedback.
Errors
A failure is { ok: false, error: { code, message, retryable, refunded_credits? }, balance? }.
| Code | Meaning | Retry |
|---|---|---|
invalid_input | Usually the input failed validation before any charge, and the message names the field: fix it, then call again. The model can also reject the input after you were charged; that message may not name a field, retryable is false, and error.refunded_credits says what came back. | No |
insufficient_credits | Not enough credits for the job. The message links to the plans or a credit pack; call again once the account has credits. | No |
daily_free_cap | An account that never paid reached its daily spending cap. It resets daily, and a subscription lifts it. | No |
too_many_active_jobs | The account already has 3 jobs running. Wait for one to finish (get_job), then call again. | Yes |
provider_failed | The model's provider failed, timed out, or its result could not be saved. What comes back varies: error.refunded_credits gives the exact number, which can be less than the job's cost, arrive later instead of in this reply, or be zero if the original payment was itself refunded or disputed. Call again. | Yes |
tool_disabled | The tool, or the model you chose, is switched off for now: pick another model (list_models) or try again later. buy_credits returns this too when it can't sell a pack. | No |
maintenance | Planned downtime. Call again in a few minutes. | Yes |
rate_limited | Too many calls in a short time. Back off, then call again. | Yes |
not_found | The job, file or model id doesn't exist, or the job or file belongs to another account. The same code covers a brand-kit image id that isn't in your kit, and a kit that was deleted while it was being saved. | No |
unauthorized | A missing, invalid or expired token never reaches this code: the server rejects those before any tool runs, as an HTTP 401 challenge. In a tool's reply, it means the account was deleted; its token still verifies for up to an hour afterwards. | No |
internal | An unexpected server error, logged as a bug. Call again — unless the message names a job: call get_job first, since that job may have already finished and been charged, and calling again could charge it twice. | Yes |
Each failure's own retryable field is what decides whether to call again — the table shows the usual value for that code.
For machines
- /llms.txt — a short index of the site
- /mcp/llms.txt — a short index of this section and the connect guides
- /llms-full.txt — every tool and model, with prices
- /mcp.md — this page as Markdown
- /pricing.md — plans, packs and what things cost
- /auth.md — how an agent signs in, step by step
- /.well-known/api-catalog — the API catalog (RFC 9727): this server and its docs
- /.well-known/ard.json — the ARD catalog: this server and the Sakaira skill
- https://mcp.sakaira.com/mcp/server-card — the MCP Server Card: name, icons and endpoint, with no sign-in
Listed on
Updated October 2026 · Changelog