get_guideFree.This guide. The same text is also served as the steamkit://guide resource; use this tool when your client does not support resources.
get_guide({})Everything an AI assistant can do through the SteamKit MCP server.
Your assistant does not need this page. It can read the same reference itself with the get_guide tool, which always reflects the current models and prices.
An image takes roughly 30 to 90 seconds, which is longer than most MCP clients will wait on a single tool call.
So a generate_* tool returns a job id immediately, and get_generation collects the result. get_generation waits internally for up to 25 seconds, so one follow-up call is usually enough.
Never tell the user an image is ready before get_generation has returned URLs. The job id alone is not a result.
Signed URLs, valid for 7 days, plus a resource link per image. Download anything worth keeping before they expire.
Inline previews are opt-in via includeImages, and are downscaled thumbnails. A full-size image would consume a large share of the context window, so it is never sent by default.
Prices are per image. The server calculates them; nothing a client sends can change a price.
Three things multiply the cost: variations (count), animation facings (one full sheet each), and capsule parts (one image each).
A BATCH does NOT multiply the cost. generate_icon_batch and generate_character_batch draw every subject in one image and split it afterwards, so 16 assets cost exactly what 1 costs.
Credits are charged when the job is accepted and refunded automatically for any image that fails. A job you cannot afford is refused outright, so a balance can never go negative.
Call get_credits before anything large if you are unsure of the balance.
They sound alike and bill completely differently, so the choice matters.
VARIATIONS (the count argument) render the SAME subject several times and bill for each one. Use them when the user wants options to choose between.
A BATCH renders DIFFERENT subjects in one image and bills once. Use it whenever the user asks for a SET: an inventory, a UI kit, a cast of characters, a tileset. Calling generate_icon in a loop for those wastes the user's credits, and the results will not match each other, because each call draws in isolation.
Subjects drawn together share a palette, line weight, scale and lighting. That matching is usually the real reason a set is wanted, not just the price.
Only perfect squares are possible: 4, 9 or 16. The cells have to be square, which means the grid has to be.
A palette is a named set of colours the artwork is constrained to. Pass its id as paletteId to any generate tool — icons, characters, batches and Steam capsules all take one, because a game's colours do not change with the asset kind.
Get ids from list_palettes. Never invent one: an unknown id is ignored rather than failing, so a made-up value silently produces art with no palette at all.
The palette is given to the MODEL as part of the prompt, not applied afterwards. It chooses which colour goes where and builds its own shading within them, which is why the result reads as palette-constrained rather than posterised.
API access is included with the Pro and Studio plans.
A key can carry its own lifetime credit limit. When it is used up that key stops working, while the rest of the account balance is untouched.
Revoking a key takes effect immediately, on the very next request.
Reference images must be uploaded on the website first. An assistant can use them by path but cannot upload new ones.
A path must belong to the same account; another user's path is rejected.
get_guideFree.This guide. The same text is also served as the steamkit://guide resource; use this tool when your client does not support resources.
get_guide({})list_palettesFree.Colour palettes you can use, most upvoted or newest first.
list_palettes({ scope: "top" })generate_iconPer image, per model and quality. Multiplied by count.Game icons and 2D sprites, from a 16px sprite to 1024px artwork.
generate_icon({ prompt: "a glowing health potion", styleId: "pixel-art", size: 64 })generate_characterPer image, same as an icon. Multiplied by count.Character sprites at a chosen camera angle.
generate_character({ prompt: "a knight in silver armour", characterView: "platformer" })generate_icon_batchTHE SAME AS ONE ICON, however many cells. Only one image is rendered; the cells are cut from it afterwards, so 16 icons cost what 1 icon costs.MANY DIFFERENT icons in one image, split automatically into individual assets.
generate_icon_batch({ batchCount: 4, batchItems: ["a red health potion", "an iron key", "a wooden shield", "a coin purse"], styleId: "pixel-art", size: 64 })generate_character_batchThe same as one character, however many cells.MANY DIFFERENT characters in one image at a shared camera angle.
generate_character_batch({ characterView: "platformer", batchCount: 4, batchItems: ["a knight", "an elven archer", "a hooded rogue", "a robed mage"] })generate_animationPriced per FRAME COUNT, not per quality. Multiplied by facings.An animation spritesheet built from one of your existing assets.
generate_animation({ sourceAssetId: "<uuid>", animationId: "walk", frameCount: 8 })generate_capsuleONE IMAGE PER PART. Two parts by default.Steam store and library capsule art: key art plus a separate transparent wordmark.
generate_capsule({ prompt: "a storm-lashed castle", capsuleTitle: "Stormfall" })get_generationFree.Collect a generation's images. Waits for the job to finish before answering.
get_generation({ generationId: "<uuid>" })cancel_generationFree. Refunds unstarted images.Cancel a queued or running job. Anything not started is refunded.
get_creditsFree.Balance, plan limits, and this key's own remaining allowance.
get_credits({})list_assetsFree.Your previously generated assets, newest first.
list_modelsFree.Available models, each with its price per image and transparency support.
list_stylesFree.Every art style id.
list_animationsFree.Animations, camera views, frame counts and their prices.
list_capsule_formatsFree.The nine Steam asset sizes.
* required
Credits per image. Multiply by the number of variations.
| Model | Prices | Transparency |
|---|---|---|
sunburstGPT Image 2.5 Sunburst | Low 7 · High 25 | Yes |
flareGPT Image 2.5 Flare | Low 7 · High 25 | Yes |
gpt5-imageGPT-5 Image | Low 9 · High 33 | Yes |
gpt5-image-miniGPT-5 Image Mini | Low 2 · High 7 | Yes |
gemini-flashNano Banana | High 44 | No |
gemini-flash-liteNano Banana Lite | High 25 | No |
seedreamSeedream 4.5 | High 32 | No |
Priced on the quality tier, exactly like a single image, because an animation is one image whatever the grid. The frame count changes the layout and the detail per cell, not the price. One sheet is billed per facing.
Pass one as styleId.
idleGentle breathing loop for a standing character.walkStandard looping walk cycle.runFast run cycle with airborne frames.attackWind-up, strike and recovery.jumpCrouch, launch, airborne, land.hurtRecoil from a hit and recover.deathCollapse to the ground.castChannel and release a spell.spinRotate a full turn. Good for coins, gems and pickups.objects toobobHover and bob gently. Good for pickups and power-ups.objects toopulseGlow and scale rhythmically. Good for magic and UI icons.objects toocustomDescribe the motion yourself.objects tooplatformer — Side view, for 2D side-scrolling games.isometric — Angled 3/4 view from above, for isometric games.top-down — Facing the camera from a raised angle, for top-down games.none — for objects and icons with no front or side, such as a spinning coin.One generation produces artwork that frames to all nine. You choose which parts to render, not which format.
| Format | Size |
|---|---|
| Header capsule | 920x430 |
| Small capsule | 462x174 |
| Main capsule | 1232x706 |
| Vertical capsule | 748x896 |
| Page background | 1438x810 |
| Library capsule | 600x900 |
| Library header | 920x430 |
| Library hero | 3840x1240 |
| Library logo | 1280x720 |