MCP tool reference
The server at https://keytween.com/mcp exposes tools, resources and prompts. Setup is in Connect your agent. Every tool publishes a JSON Schema for its input and output, so the authoritative, always-current parameter list is what your client shows from tools/list; this page is the map.
Tools #
| Tool | What it does |
|---|---|
get_guide |
Prompting guides, workflows, sizes, pricing, job handling and API reference as markdown. |
get_account |
Credit balance, its dollar value, limits and what the account may do. |
get_pricing |
What every kind of generation costs, in credits and dollars, plus credit packs. |
estimate_cost |
Exact credit and dollar cost of a planned set of generations, checked against the balance. |
get_service_status |
Whether rendering is online, how busy the queue is and typical render times. |
list_credit_history |
Recent charges, refunds and purchases. |
generate_image |
Text to image up to 4 megapixels, optionally guided by @reference images. |
edit_image |
Change an existing image with a text instruction, optionally pulling in @reference images. |
generate_video |
Text to video, image to video, or first and last frame to video, with sound. |
generate_sprite |
Game-ready sprite, icon or tile from text: 8-512 px PNG with transparency, outline and exact palette. |
edit_sprite |
Change a sprite (or turn any image into one) with an instruction: recolours, tiers, other facings, poses, walk frames, bigger versions. |
animate_sprite |
Describe an action and get 2-8 animation frames of an existing sprite, with a packed sheet. |
generate_walk_sheet |
A 16-frame 32x32 RPG walk sheet in four directions, from a description or an existing character. |
create_style_kit |
Save a game's look (style sprites, style sentence, outline, palette) once and apply it to every sprite and animation. |
list_style_kits |
The style kits saved on this account. |
update_style_kit |
Change a style kit's name, style sprites, sentence, outline or palette. |
delete_style_kit |
Delete a saved style kit; the sprites themselves are kept. |
export_sprite |
Free: another size, palette, padding, outline, anchor, tile setting or a mirrored copy of a sprite, or a cutout of any flat-background image. |
learn_sprite_palette |
Free: learn one #rrggbb palette from a set of sprites, to pass as palette so the whole set uses the same colours. |
pack_sprite_sheet |
Free: pack sprites into one PNG sheet with each sprite's rectangle, for an engine atlas, an animation strip or a side-by-side review. |
get_sprite_links |
Fresh download links and names for up to 100 sprites or sprite sheets at once. |
get_job |
Current status, progress, queue position and outputs of one generation. |
wait_for_job |
Waits for a generation to finish, reporting progress along the way. |
list_jobs |
Recent or currently active generations. |
cancel_job |
Stops a queued or running generation and refunds it. |
create_sequence |
Starts a new sequence, empty or from an existing image. |
list_sequences |
Your sequences, most recently changed first. |
get_sequence |
Steps, selected frames, candidates, takes, references and exports of one sequence. |
rename_sequence |
Changes a sequence's title. |
delete_sequence |
Permanently deletes a sequence and everything in it. |
select_frames |
Chooses which start frame, end frame or take a step uses. |
accept_step |
Locks a step's take and opens the next step from its last frame. |
reopen_step |
Un-accepts a step so it can be changed; deletes every later step. |
export_sequence |
Joins the selected takes of every step into a single MP4. |
get_asset |
Details, a fresh download link and a visual preview of one image or video. |
list_assets |
Everything you have made or uploaded, across the image library and all sequences. |
delete_asset |
Permanently deletes one image, take, reference or export. |
create_upload_url |
Returns a short-lived link and command for uploading a local image to the library, as a start frame or as a reference. |
add_reference |
Copies one of your images into a sequence or the image library as an @label reference. |
update_reference |
Changes a reference's @label or crops it to the part that matters. |
Conventions #
- Names. Parameters and result fields are
snake_case. Ids are UUIDs:sequence_id,step_id,asset_id,job_id. - Results. Each result is returned twice: as
structuredContentmatching the tool's output schema, and as the same JSON in a text block for clients that only read text. Finished images and videos add an image block with a small preview the model can look at. next. Results of generate, wait and sequence tools include anextfield saying what to do next in plain words.- Roles. An asset's
roleisstart_frame,end_frame,take(a video clip),last_frame(the final frame of a take),referenceorexport. - Sizes.
aspect_ratiowithmegapixels, orwidthwithheight. See Sizes and durations. - Waiting.
wait_secondson generate tools andtimeout_secondsonwait_for_job. See Jobs, waiting and limits. - Errors.
isError: truewith{"error": {"code", "message", "hint"}}. - Annotations. Read-only tools are marked
readOnlyHint;delete_sequence,delete_assetandreopen_stepare markeddestructiveHint, so clients can ask for confirmation. - Cost. Only
generate_image,edit_imageandgenerate_videospend credits. Everything else is free.
Choosing a generate tool #
| Goal | Tool and key parameters |
|---|---|
| Image from a description, up to 4 MP | generate_image without sequence_id |
| Opening frame for a video | generate_image with sequence_id |
| Image containing a specific subject or style | generate_image with @label references in the prompt |
| Change any image, keep the result as an image | edit_image (default save_as: "image") |
| Animate an existing image | create_sequence with from_asset_id, then generate_video |
| Game sprite, UI icon or seamless tile at an exact pixel size, with transparency | generate_sprite; change it with edit_sprite; other sizes, outline, padding or a mirrored copy free with export_sprite |
| Animate a sprite from a described action | animate_sprite; a 4-direction RPG walk sheet with generate_walk_sheet |
| A whole game art set | a style kit (create_style_kit, then style_kit_id on every call), the sprite tools, learn_sprite_palette (one shared palette), pack_sprite_sheet (atlas or animation strip) and get_sprite_links (fresh named download links) |
| Define where a shot ends | edit_image with save_as: "end_frame" |
| Video from a description | generate_video with mode: "text_to_video" |
| Animate an image, open ending | generate_video with mode: "image_to_video" |
| Video between two exact images | generate_video with mode: "first_last_frame" |
| Continue with another shot | accept_step, then the same tools on the new step |
| One finished file | export_sequence |
Working with local files #
MCP tool calls carry text, so files move over plain HTTP links instead:
- Download: every finished asset has a
download_urlthat needs no credentials for one hour.curl -sS -o out.png "<download_url>". - Upload:
create_upload_urlreturns a link valid for 15 minutes and the matching command,curl -sS -F "file=@/path/to/image.png" "<upload_url>". The response is the new asset as JSON; itsidis theasset_id.
Resources #
Each guide is an MCP resource with the URI keytween://guides/<topic> and the MIME type text/markdown. The same text is returned by the get_guide tool, for clients that do not surface resources to the model.
overview: What you can build, the core concepts and which path to take.mcp-setup: Add the MCP server to Claude Code, Cursor, VS Code, Codex, Gemini CLI and other agent harnesses.workflows: Which calls to make for images, edits, references, each video mode and multi-shot films.sprites: Exact-size transparent PNG sprites and UI icons for games: generating, editing, sizes and consistent sets.image-prompting: How to write text-to-image prompts: structure, composition, lighting and text in images.edit-prompting: Instruction-style edits, what to keep, and carrying subjects over with @references.video-prompting: Shot, scene, action, camera and audio for text, image and first-and-last-frame video.sizes: Every aspect ratio and resolution, clip lengths and frame rates.pricing: What each generation costs, how to estimate a project and how refunds work.jobs: Statuses, timeouts, queueing, concurrency limits and error codes.mcp-tools: Every MCP tool, resource and prompt the server exposes.rest-api: Authentication, endpoints, request bodies and errors.your-data: Where API and agent creations are stored, how to review them and how to delete them.
Prompts #
Prompts appear as slash commands in clients that support them (in Claude Code: /mcp__keytween__storyboard).
| Prompt | Arguments | What it does |
|---|---|---|
storyboard |
concept, shots, aspect_ratio |
Plans a multi-shot video as chained steps, quotes the cost, waits for your go-ahead, then builds and exports it |
image_prompt |
idea, aspect_ratio |
Turns a rough idea into a production-ready image prompt and quotes it |
video_prompt |
idea, mode |
Turns a rough idea into a production-ready video prompt with sound, and quotes it |
Protocol details #
- Transport: Streamable HTTP,
POST https://keytween.com/mcp. The server is stateless: there are no sessions, andGETandDELETEon the endpoint answer405. - Protocol revisions: 2026-07-28, and the 2025 revisions through the standard
initializehandshake. - Responses are sent as a server-sent event stream so that progress notifications and keep-alive frames can be delivered during long calls.
- Authentication:
Authorization: Bearer <API key>on every request. OAuth is not used. - Progress: tools that wait send
notifications/progress(0 to 100) when the request carries a progress token.