Skip to main content

Reference

This page covers the developer server at https://mcp.blazium.games/mcp. The player server is on Player MCP.

uid accepts a game uid or its vanity name. "Account only" means a project-bound token is refused with 4030. "Write" means the token needs mcp:write or the narrower write scope for that tool's group (see Scopes). "Deprecated" tools are removed on 2026-10-28 (see Account and payments).

Tools​

ToolInputsNotes
get_profilenoneCurrent user. Account only
list_gamesnoneGames you own or administer, and pending admin invites
get_gameuidOne game's settings
create_gamename (required), tagline, description, visibility, asset_type, vanity_nameNew game page. Account only, write
update_gameuid (required), name, tagline, description, visibilityUpdate a page. Setting public fails with 4225 until the listing check passes. Write
get_game_analyticsuidVisitor analytics
list_game_crashesuidRecent crash reports
get_crashuid, crash_idOne crash report including stack excerpt
request_crash_downloaduid, crash_id, kindPrivate download URL for dump, log, or stack, valid for 1 hour
list_mcp_keysnoneAccount key prefixes only. Account only
get_setupnoneAccount, games, public URLs, latest build_id. No secrets. Account only
get_deploy_infouidUpload, crash, and page URLs, build list, and deploy key prefixes. No secrets
list_game_buildsuidBuilds. build_id is the build UID for CI and crash reporters (X-Build-Id), not a version string
get_game_builduid, build_idOne build, its files, and crash reporter headers
request_mcp_keyidempotency_key (optional)New account key. Revokes all previous account keys. Needs the human's approval. Account only, write
request_deploy_keyuid, idempotency_key (optional)New upload keys for CLI and CI. Revokes that project's previous upload keys. Needs the human's approval. Write

Releases and trust​

Every build file belongs to a channel: stable (the default), beta, dev, or your own lowercase name. Each channel points at one build. A clean upload moves its channel forward on its own; promote_build and rollback_channel move it by hand. Players see the build each channel points at, plus anything uploaded after the last move. dev is only visible to the game's owner and admins, and beta only to players who joined the beta.

ToolInputsNotes
list_channelsuidEach channel's build, expiry, beta subscriber count, and the last 50 promote, rollback, and upload events
promote_builduid, channel, build_id, expires_in_hours (0-2160), idempotency_keyPoints a channel at a build whose files passed the virus scan. expires_in_hours hides the channel from players after that. Promoting to stable needs the human's approval. Write
rollback_channeluid, channelMoves the channel back to the build it pointed at before. Nothing is deleted. Write
list_crash_groupsuidUp to 100 crash groups, most recently seen first, with first_seen, last_seen, counts per build, and a sample_crash_id for get_crash
get_build_provenanceuid, file_uidUploader, how it was uploaded (deploy_key with an 8-character key_ref, or website), upload time, checksum, and scan history. Never returns a secret

Crash groups use the top stack frames once a minidump has been stackwalked, and the crash message, app version, and OS before that. A new report can take a few minutes to join a group.

Build health, symbols and bundle check​

MCP never uploads files. Symbols and builds are uploaded with the chauffeur CLI and the game's deploy key. Store images are uploaded with chauffeur or on the game's edit page on the website. These tools read and delete them.

ToolInputsNotes
get_build_healthuidThe last 50 builds with devices, boot_ok, crash_on_boot, median_session_seconds and band over the last 30 days, plus the listing's public band and what each band means. See Launch health
list_build_symbolsuid, build_idBreakpad symbol files for a build: module_name, debug_id, os, arch, size, checksum, and the chauffeur symbols command to upload more
delete_build_symbolsuid, build_id, symbol_uid (optional)Deletes one symbol file, or all of the build's symbol files when symbol_uid is empty. Write (mcp:build.write)
upload_symbols_infouid, build_idThe exact chauffeur symbols command for the build, its limits, and a link to Symbols. Uploads nothing
bundle_checkuid, build_idInformational. Compares the files inside the build's zip with asset packs sold on the store and reports each match as owned, licensed, attribution (cc-by, credit needed) or unlicensed, with sample paths
mod_compatuid (a mod), game (optional)Compares the mod's engine compatibility with the engine version of each supported game's current builds, per channel and platform: compatible, incompatible or unknown

Editions​

A game can sell up to 8 editions. When it has any active edition, its listed price is the cheapest one and set_game_price can't change it (4164). Owners upgrade by paying the difference, at least 50 cents. See Selling.

ToolInputsNotes
list_skusuidEditions with slug, name, kind, price_cents, active, sort_order and, for bundles, bundle_asset_uids
upsert_skuuid, sku_uid (to replace), slug, name, description, kind, price_cents (99-50000), bundle_asset_uids, active, sort_order (0-100)kind is standard, deluxe, beta_access (also grants the beta channel) or bundle (also grants 1 to 10 of your other listings). Without sku_uid it creates one. Write (mcp:money)
delete_skuuid, sku_uidRetires an edition. Owners keep it; nobody can buy it any more. Write (mcp:money)

Player feedback​

Players review games they own and file bug tickets from the player server or the store page.

ToolInputsNotes
list_reviewsuid, unreplied, pageReviews, newest first, with the summary: count, enjoyed, quality_avg, quality_counts (1 to 5), and would_play_with_friends. unreplied lists only reviews without a reply
reply_to_reviewuid, review_uid, textPublic reply shown under the review on the store page (up to 2000 characters). Empty text removes it. Write
list_bug_ticketsuid, status (open, fixed, closed)Tickets, newest first, with counts by status. A ticket with an attached dump or log has a crash_id for get_crash and request_crash_download
update_bug_ticketuid, bug_uid, status (open, fixed, or closed)Marks a ticket fixed or closed, or reopens it with open. Covered by mcp:crash.read

Only the game's owner and admins can read bug tickets and download their attachments.

Dependencies, compatibility and license​

These show on the store page as Uses / Used by, License and Works with, and players filter search_catalog by them.

ToolInputsNotes
declare_dependencyuid, target_uid, kind (uses, supports, or made_with), removeLinks your listing to another public listing: it uses that asset pack or plugin, it's a mod or plugin that supports that game or tool, or it was made with that tool. Up to 50 links. remove drops one. Write
list_dependentsuidWhat a public listing uses (uses) and which public listings declared a link to it (used_by), with its license_kind and compat
declare_engine_compatuid, compat (up to 10 of engine, min_version, max_version, renderer, platform)Replaces the list; an empty list clears it. Either version may be empty to leave that end open, and a max_version of 4.3 covers 4.3.x. Write
declare_licenseuid, license_kindcc0, cc-by, cc-by-sa, paid, source-available, or proprietary; empty clears it. Write

Game keys​

Keys give a game to someone for free, for press, bundles, or giveaways. Each code works once and adds the game to the redeemer's library (a license with source key). Players redeem at blazium.games/redeem or with redeem_key on the player server. Pools can also be managed on the Game keys tab of the project page.

ToolInputsNotes
create_key_pooluid, name, campaignA named pool, such as Press or a bundle. Up to 50 per game. Write
grant_keysuid, pool, n (1 to 5000), campaign, idempotency_keyCreates n codes. They come back once, as a csv_url that can be downloaded one time within an hour; the codes are stored hashed and can't be shown again. More than 100 at once needs the owner's approval (see below). Write
create_gift_linkuid, pool, noteA single-use https://blazium.games/redeem/... link for one person, shown once. Write
list_key_poolsuidPools with size, redeemed, unredeemed, and gift_links

Approvals for risky actions​

Over MCP, rotating an account or deploy key, deleting a deploy key, creating more than 100 game keys at once, adding a project admin, promoting to stable, and deleting a game or build wait for the account owner, even with full access. The call returns HTTP 202 with approval_required: true, code 4214, email_sent, and an approval object whose uid you pass as approval_id and whose confirm_url the owner can open. The owner also gets an email with the link and a 6-digit code. Once get_approval says approved (or after confirm_approval with the code), repeat the call with the same idempotency_key; without one, the same agent repeating the same action reuses the pending approval. Each approval works once and expires if nobody decides. Project tokens can't use get_approval or confirm_approval (4030), so approve those from the email. On the website these actions don't need an approval.

Scopes​

mcp:read and mcp:write cover every developer tool. OAuth consent can grant narrower scopes instead:

ScopeCovers
mcp:catalog.writeGame pages, taxonomy, similar titles, dependencies, engine compatibility, license kind, media, review replies
mcp:build.writeBuilds, channels, deploy info, scan status, symbols, bundle check
mcp:crash.readCrash reports, crash groups, crash analysis, bug tickets, including update_bug_ticket
mcp:analytics.readVisitor analytics and events
mcp:keys.manageDeploy keys, MCP keys, MCP access for admins, and project admins
mcp:moneyPricing, editions, sales, game keys and gift links, wallet, purchases, library, downloads

Every developer token can read the profile, account, and game pages. A write scope also reads its own group; the crash and analytics scopes also cover their actions. A call outside the token's scopes returns 4073, or 4031 if the token has no write scope at all. The consent page offers presets: Store page (mcp:read mcp:catalog.write), CI (mcp:read mcp:build.write), Crash triage (mcp:crash.read mcp:analytics.read), Keys (mcp:read mcp:keys.manage), Money (mcp:read mcp:money), Read-only (mcp:read), and Full access.

Listings​

See Listings and search for the allowed values and the listing check.

ToolInputsNotes
validate_listinguidListing check: ready, errors (block going public), warnings, passes, plus the current taxonomy and allowed values
update_game_taxonomyuid (required), genres, tags, tone, inputs, content_warnings, engines, session_bucket, net, players_min, players_max, authorship, authorship_creditOnly the fields you pass change. authorship is the made-with label (human, human_agent, agent_heavy, or empty to clear) and authorship_credit an optional credit line up to 120 characters. Write
set_similar_gamesuid, games (up to 10 uids or vanity names)Replaces the similar titles; an empty list clears them. Write
set_mediauid, kind (cover, thumbnail, or gallery)Returns the matching chauffeur media commands and the image limits (PNG, JPEG, GIF, or WebP, 512 to 2048 px per side, up to 10 MB). MCP never uploads images; use chauffeur or the website. Write
scan_statusuidScan state and history of every build file, plus files removed in the last 30 days because their scan failed

Account and payments​

Amounts are integer US cents. See Payments for the rules behind these tools.

The tools marked Deprecated below and the wallet and library resources are removed from the developer server at the end of 2026-10-28 (UTC), including from servers that are already running. The developer server then lists 54 tools instead of 66. From 2026-10-29 the API also refuses purchases and top-ups made with developer tokens (4034). Use the player server instead, where list_library is get_library. See Versioning.

ToolInputsNotes
get_accountnoneEmail verification, balances, and what the account may do. Account only
request_email_codenoneEmails a verification code to the account owner. Account only, write
verify_emailcodeVerifies the email with the code the human received. Account only, write
get_walletnoneCredit, pending, and available balances plus fee and refund rules. Account only. Deprecated
list_wallet_transactionslimit (1-200), beforeLedger entries, newest first. Account only. Deprecated
get_payment_optionsnoneCard top-up and x402 USDC networks with fees. Account only. Deprecated
create_top_up_linkamount_centsCard Checkout link for the human to add balance. Account only, write. Deprecated
create_x402_top_upamount_cents, networkx402 payment requirements for a USDC top-up. Account only, write. Deprecated
pay_with_x402top_up_id, payment_payloadSubmits the signed x402 payment. Credit arrives after settlement. Account only, write. Deprecated
quote_purchaseuid, kind (purchase or donation), amount_cents (donations), sku (edition uid or slug; empty quotes the cheapest)Price, tax, and total. Show the total to the human first. Account only, write. Deprecated
purchase_gameuid, confirm_total_cents, idempotency_key, sku (the same edition passed to quote_purchase)Buys a license from the balance. Beyond this agent's limit it returns approval_required; retry with the same key once approved. Account only, write. Deprecated
donate_to_gameuid, amount_cents, confirm_total_cents, idempotency_keyDonates to a free game from the balance. Account only, write. Deprecated
list_librarynoneOwned games with refund windows and playtime. Account only. Deprecated
get_download_linkfile_id5-minute signed URL for a build file. Needs a verified email and, for paid games, a license. Account only. Deprecated
set_game_priceuid, price_cents (0 or 99-50000), donations_enabledOwners and game admins. Write
list_game_salesuidSales, donations, refunds, and seller earnings
get_agent_policynoneThis agent's limit mode (unset, unlimited, monthly, yearly, one_time), limit, and spend in the period. Changed only on the website. Account only. Deprecated
get_approvalapproval_idState of a purchase approval: pending, approved, denied, expired, or used. Account only
confirm_approvalapproval_id, codeApproves with the 6-digit code the human read from their email. Account only, write

Cash-out and payout setup are website-only.

Field values:

  • visibility: draft, invisible, or public
  • asset_type: game, application, mod, game_asset, or dev_asset

Prompts​

PromptArgumentsPurpose
draft_game_pagepitchDraft a name, tagline, and description from a short pitch
improve_game_copydescriptionRewrite an existing description, keeping the facts
analytics_summaryuidSummarize recent visitors
bootstrap_gamepitch, uid (optional)Create or update the store page and rotate deploy keys so an agent can ship a build

Resources​

URIContents
blazium-games://meAuthenticated user. Account only
blazium-games://gamesGames list
blazium-games://games/{uid}One game page
blazium-games://games/{uid}/analyticsVisitor analytics
blazium-games://games/{uid}/crashesCrash reports
blazium-games://games/{uid}/deployNon-secret deploy endpoints and key prefixes
blazium-games://games/{uid}/buildsBuilds and crash reporter build_id values
blazium-games://walletStored balance and payment rules. Account only. Deprecated
blazium-games://libraryOwned games and licenses. Account only. Deprecated

Template {uid} values must be a uid or vanity name made of letters, digits, - and _. Anything else, including dots or slashes, returns an error instead of calling the API.

Errors​

Tool errors return API <status>: <body>. Some low codes (4040, 4050–4056, 4090–4093) are reused by different routes, so read the message along with the code.

CodeMeaning
4010Not authenticated
4030Not allowed: the game isn't yours, or a project token called an account-level tool or another game
4031Token is read-only
4032Token mixes developer (mcp:*) and player (player:*) scopes
4033This route isn't available to this server's tokens (for example a player token on a developer route)
4006Build not found
4096The account email is not verified
4020Not enough balance; top up first
4221No billing address for tax; top up by card once or buy on the website
4023Buy the game before downloading it
4094The total changed since the quote; confirm again with the human
4099The file is still being scanned, or the build has no clean file to promote
4212This token can't make purchases (project token, or a player token without player:buy)
4214Waiting for the human's approval (HTTP 202, returned as a normal result)
4215The human denied the request
4216Wrong or expired approval code
4095The idempotency key belongs to a different purchase
4097The approval was already used
4098The approval was already decided or expired
4083Website only (payout setup and cash-out)
4071A taxonomy value isn't allowed; validate_listing lists the allowed values
4072A similar title isn't a public game, or is this game
4225The listing check failed, so the page can't go public (HTTP 422, report in data.lint)
4073The token's scopes don't cover this tool
4074The file isn't on a channel you can see (for example a beta build when you haven't joined the beta)
4075The channel has no earlier build to roll back to
4226Invalid channel name or expires_in_hours out of range (HTTP 422)
4034Buying and top-ups moved to the player server; developer tokens can't buy from 2026-10-29
4076Reviews and bug reports need a copy of the game (bought, or downloaded if it's free)
4077You can't review your own game
4227Invalid review: enjoyed missing, quality outside 1 to 5, or text too long (HTTP 422)
4291Too many bug reports today (10 per player per day, HTTP 429)
4078Already friends, or the friend request was already sent (HTTP 409)
4228You can't send a friend request to yourself (HTTP 422)
4292Too many friend requests today (20 per day, HTTP 429)
4229Invalid dependency: unknown kind, a non-public target, a link to itself, or more than 50 links (HTTP 422)
4230Invalid engine compatibility: engine or renderer not a slug, a version without numbers, or min_version above max_version (HTTP 422)
4231Unknown license kind (HTTP 422)
4232Invalid key pool request: missing name, more than 50 pools, n outside 1 to 5000, or a pool over 100,000 keys (HTTP 422)
4042That key or gift link isn't valid (HTTP 404)
4079That key was already redeemed (HTTP 409)
4084The player already has this game; the key stays unused (HTTP 409)
4103The key CSV was already downloaded or has expired (HTTP 410)
4034Also: only the project owner can add admins or remove other admins
4040Not found (game, build file, crash, crash group, bug ticket, review, approval, purchase, top-up, key, or user; the message says which)
4043Key pool or key export not found
4050price_cents must be 0 or between 99 and 50000
4051Donations are only available on free games
4052Donation amount_cents must be between 100 and 50000
4053kind must be purchase or donation
4054Only the balance can pay here; card payments go through the store page
4055idempotency_key is required (up to 100 characters)
4056Top-up amount out of range
4080The project owner turned off MCP access for admins
4081Agent spending limits and MCP access settings can only be changed on the website
4082Agents pay from the balance, not by card; or only the owner can change MCP access for admins
4090Already done: you already own the game, or the crash has no dump, log, or stackwalk to download
4091You can't buy your own game
4092The game is free
4093The game doesn't accept donations
4100The top-up expired; create a new one
4130Too many crash metadata keys (64) or analytics events in one request (HTTP 413)
4290Too many requests, crash reports for the day, analysis requests, or redeem attempts (HTTP 429)
4155Invalid edition: slug, name, kind, price, bundle listings or order (HTTP 422)
4156The game already has 8 editions (HTTP 422)
4157The player already owns this edition or a higher one (HTTP 409)
4158A standard analytics event is missing a field or has one out of range (see Crash reporting)
4164The price comes from the game's editions; change them with upsert_sku instead of set_game_price (HTTP 409)
4165This game sells beta access as an edition; buy it to join the beta (HTTP 402, editions in data.skus)
5030A download URL couldn't be signed; try again
5031Email codes aren't configured on the server
5032Payments, or a sign-in provider, aren't configured on the server
5033x402 top-ups aren't configured on the server