Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CRAFTSTORY_API_KEYYesYour CraftStory API key. Keys look like sk-cs-... and are found under Account -> API Access.
CRAFTSTORY_API_BASENoOptional CraftStory API base URL. Defaults to https://api.craftstory.com/api/v1. Must be https unless CRAFTSTORY_ALLOW_HTTP=1.https://api.craftstory.com/api/v1
CRAFTSTORY_ALLOW_HTTPNoSet to 1 to allow a non-https CRAFTSTORY_API_BASE.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_modelsA

Catalogue of the video models behind this server with their status, modes, limits and credit prices. Two models today: craftstory-2 (a talking video of any length from one photo plus an audio clip; 8-15 min) and minimax-h3 (a clip of up to 15 s from one photo, either description-driven with generated sound or audio-driven with lip-sync; 1-3 min). Call this first when unsure which model fits, or to check that a model is not paused.

list_voicesA

Library voices (id, name, language, gender) usable as voice_id in create_audio_clip. With include_cloned=true also returns the account's own cloned voices, usable as voice_user_id. Voices are cloned in the CraftStory app, not via the API.

list_avatarsA

Custom avatars trained in the CraftStory app that craftstory-2 can generate with (pass an id as avatar_id). Each avatar may carry a default voice {id, voice_kind}: voice_kind 'user' means send it as voice_user_id, 'library' as voice_id in create_audio_clip. Pass avatar_id to list that avatar's scenes; a scene id can replace the photo (scene_id) in create_craftstory2_video.

create_audio_clipA

The soundtrack every video model takes as input. Either text (up to 2000 characters) plus exactly one voice (voice_id from list_voices, or voice_user_id for a cloned voice), or file_path to upload a local WAV/MP3/M4A recording. Returns the clip id; it is ready when wait_for_job(model='audio-clip') reports done (usually seconds). Longer scripts: create several clips and pass all ids to create_craftstory2_video in order.

preview_costA

Credits a craftstory-2 job would cost for the given audio clips and settings, without creating anything. Rate per second of audio: 480p 2.2 (2 with lipsync_mode=empty), 720p 3.3 (3 with empty); rounded up per job. MiniMax H3 is a flat 3.3 credits per billed second.

create_craftstory2_videoA

Start a craftstory-2 generation: a photo of a person (image_url or image_path, or a custom avatar scene via scene_id) speaks the given audio clips with lip-sync, gestures and natural motion; any length. resolution is WIDTH_HEIGHT (480_832 / 720_1280 portrait, 832_480 / 1280_720 landscape); 1080p is available afterwards via upscale_video. Credits are charged on create (see preview_cost) and refunded if the job fails. Returns the job id and initial status; generation takes 8-15 minutes, so call wait_for_job(model='craftstory-2') repeatedly until it reports done, then get_job_result for the video URL.

create_minimax_h3_videoA

Start a minimax-h3 generation from one photo. mode='basic': user_prompt (scene description) + requested_duration_s (5-15); the model animates the photo and generates the soundtrack itself. mode='reference': the reference model. With audio_clip_id the clip is lip-synced to it (first 15 s billed) and user_prompt is optional. Without audio_clip_id, pass requested_duration_s and a user_prompt with the spoken line in quotes: the model voices it and generates the soundtrack. Either way up to 8 extra image / 3 video / 2 audio reference_files with reference_captions keep a second person, a product or a background consistent. Output is 768 px on the short side, orientation follows the photo. Cost 3.3 credits per billed second, charged on create. Returns the job id; call wait_for_job(model='minimax-h3') until done (1-3 min).

get_job_statusA

Status of a video job or audio clip: status, status_percentage, status_failed, credits_refunded. Terminal states: done; failed*, rejected_* and not_pass_moderation (audio) are failures. Prefer wait_for_job, which polls for you.

get_job_resultA

Full record of a job. For craftstory-2 the video is in video, for minimax-h3 in video_url, for audio clips in file; all are signed URLs valid for 7 days (call again for a fresh link). Also returns the parameters used and the credits charged.

wait_for_jobA

Polls a job's status every few seconds for up to timeout_s (default 45, max 55 - most MCP clients cut a tool call at 60 s) and returns as soon as it is terminal. If it returns state='running', call it again - craftstory-2 jobs take 8-15 minutes, minimax-h3 1-3 minutes, audio clips seconds. Reports progress notifications when the client supports them.

upscale_videoA

Creates a NEW job with the upscaled result; the original stays. craftstory-2: only 720p sources, resolution 1080_1920 (from 720_1280) or 1920_1080 (from 1280_720). minimax-h3: always 2x, no resolution needed. Costs 0.2 credits per second. Poll the returned id with wait_for_job.

Prompts

Interactive templates invoked by user choice

NameDescription
talking_video_from_photoStep-by-step recipe: script -> voice -> audio clip -> CraftStory 2.0 video -> download.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but get_job_status and wait_for_job overlap in polling job status. The descriptions mitigate this by recommending wait_for_job for terminal states, and get_job_result is clearly separate as a full record retrieval.

Naming Consistency5/5

All tool names use snake_case with a verb_noun pattern, including model-specific create tools like create_minimax_h3_video and create_craftstory2_video. The convention is applied consistently across the entire set.

Tool Count5/5

Eleven tools are well-scoped for a video generation service, covering model discovery, asset listing, audio creation, video creation, job management, cost preview, and upscaling. Each tool has a clear role and none feels redundant or out of place.

Completeness4/5

The surface covers the core generation lifecycle: create audio clips, create videos from two models, poll jobs, retrieve results, preview costs, list models/voices/avatars, and upscale. Minor gaps exist, such as no job cancellation or history listing, but agents can work around these for most workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues