{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "authentication": {
    "bearer": {
      "description": "An MCP API key (bgames_mcp_) from https://blazium.games/settings/mcp sent as Authorization: Bearer \u003ckey\u003e."
    },
    "oauth2": {
      "authorizationServer": "https://mcp.blazium.games",
      "authorizationServerMetadata": "https://mcp.blazium.games/.well-known/oauth-authorization-server",
      "clientIdMetadataDocuments": true,
      "dynamicClientRegistration": true,
      "pkce": "S256",
      "protectedResourceMetadata": "https://mcp.blazium.games/.well-known/oauth-protected-resource/mcp",
      "scopes": [
        "mcp:read",
        "mcp:write",
        "mcp:catalog.write",
        "mcp:build.write",
        "mcp:crash.read",
        "mcp:analytics.read",
        "mcp:keys.manage",
        "mcp:money"
      ]
    },
    "required": true,
    "schemes": [
      "oauth2",
      "bearer"
    ]
  },
  "capabilities": {
    "prompts": {
      "listChanged": false
    },
    "resources": {
      "listChanged": false,
      "subscribe": false
    },
    "tools": {
      "listChanged": false
    }
  },
  "deprecations": [
    {
      "removalAfter": "2026-10-28",
      "replacement": "https://mcp.blazium.games/player",
      "resources": [
        "blazium-games://wallet",
        "blazium-games://library"
      ],
      "tools": [
        "get_wallet",
        "list_wallet_transactions",
        "get_payment_options",
        "create_top_up_link",
        "create_x402_top_up",
        "pay_with_x402",
        "quote_purchase",
        "purchase_game",
        "donate_to_game",
        "get_agent_policy",
        "list_library",
        "get_download_link"
      ]
    }
  ],
  "description": "Manage Blazium Games store pages, analytics, crash reports, bug tickets, reviews, builds, deploy credentials, pricing, dependencies, and redeemable keys.",
  "documentationUrl": "https://blazium-games.github.io/games_docs/docs/mcp",
  "instructions": "Blazium Games developer MCP. Create and update store pages, read analytics and crashes, and issue rotated credentials for CLI/CI deploys. request_mcp_key and request_deploy_key invalidate previous keys of that type. Publishing and uploading need a verified email (request_email_code, then verify_email with the code the human reads from their inbox). A listing becomes public only when validate_listing has no errors: set the taxonomy with update_game_taxonomy, add images and upload a build that passes the virus scan (scan_status). MCP never uploads files: images, builds and symbol files go through the chauffeur CLI with the game's deploy key, and set_media and upload_symbols_info return the exact commands. Editions: list_skus, upsert_sku, delete_sku. Checks: get_build_health, bundle_check (asset licenses inside a build), mod_compat, list_build_symbols. Read player feedback with list_reviews (reply_to_review answers publicly) and list_bug_tickets (update_bug_ticket marks one fixed or closed). declare_dependency, declare_engine_compat and declare_license describe what a listing uses and works with. Keys: create_key_pool, then grant_keys (codes come back once as a one-time csv_url; over 100 needs the owner's approval) or create_gift_link. Buying, wallet, and library tools live on the player server at /player; the copies here are removed after 2026-10-28. Cash-out is website-only. Protocol 2026-07-28.",
  "name": "blazium-games-mcp",
  "prompts": [
    {
      "name": "analytics_summary",
      "description": "Summarize recent visitors for a game"
    },
    {
      "name": "bootstrap_game",
      "description": "Create or update a store page and issue rotated deploy keys so an agent can ship a build"
    },
    {
      "name": "draft_game_page",
      "description": "Draft name, tagline, and description from a short pitch"
    },
    {
      "name": "improve_game_copy",
      "description": "Rewrite an existing game description"
    }
  ],
  "protocolVersion": "2026-07-28",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://mcp.blazium.games/mcp"
    }
  ],
  "resourceTemplates": [
    {
      "uriTemplate": "blazium-games://games/{uid}",
      "name": "game",
      "description": "One game page",
      "mimeType": "application/json"
    },
    {
      "uriTemplate": "blazium-games://games/{uid}/analytics",
      "name": "game-analytics",
      "description": "Visitor analytics for a game",
      "mimeType": "application/json"
    },
    {
      "uriTemplate": "blazium-games://games/{uid}/builds",
      "name": "game-builds",
      "description": "Uploaded builds and crash reporter build_ids",
      "mimeType": "application/json"
    },
    {
      "uriTemplate": "blazium-games://games/{uid}/crashes",
      "name": "game-crashes",
      "description": "Crash reports for a game",
      "mimeType": "application/json"
    },
    {
      "uriTemplate": "blazium-games://games/{uid}/deploy",
      "name": "game-deploy",
      "description": "Non-secret deploy endpoints and key prefixes",
      "mimeType": "application/json"
    }
  ],
  "resources": [
    {
      "uri": "blazium-games://games",
      "name": "games",
      "description": "Games list",
      "mimeType": "application/json"
    },
    {
      "uri": "blazium-games://library",
      "name": "library",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Owned games and licenses",
      "mimeType": "application/json"
    },
    {
      "uri": "blazium-games://me",
      "name": "me",
      "description": "Authenticated user",
      "mimeType": "application/json"
    },
    {
      "uri": "blazium-games://wallet",
      "name": "wallet",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Stored balance and payment rules",
      "mimeType": "application/json"
    }
  ],
  "serverInfo": {
    "name": "blazium-games-mcp",
    "title": "Blazium Games",
    "version": "1.11.0"
  },
  "title": "Blazium Games",
  "tools": [
    {
      "name": "bundle_check",
      "description": "Informational: compares the files inside a build's zip against asset packs on the store and reports, per matching pack, whether you own it, hold a license, owe attribution (cc-by) or have no license."
    },
    {
      "name": "confirm_approval",
      "description": "Approve a waiting action with the 6-digit code the human received by email. Only use a code the human gave you."
    },
    {
      "name": "create_game",
      "description": "Create a game page (name, tagline, description, visibility, type)"
    },
    {
      "name": "create_gift_link",
      "description": "Create a single-use gift link for one person from a pool. The link is shown once."
    },
    {
      "name": "create_key_pool",
      "description": "Create a named pool for redeemable keys on a game (for press, bundles or giveaways). Keys grant a license when redeemed."
    },
    {
      "name": "create_top_up_link",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Create a card Checkout link that adds balance. Give the URL to the human; the agent cannot pay by card."
    },
    {
      "name": "create_x402_top_up",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Start a USDC balance top-up. Returns x402 v2 payment requirements to sign with the agent's own wallet, then call pay_with_x402."
    },
    {
      "name": "declare_dependency",
      "description": "Link this listing to another public listing: kind uses (it uses that asset pack or plugin), supports (this mod or plugin works with that game or tool) or made_with (made with that tool). remove drops the link. The store page shows these as Uses / Used by."
    },
    {
      "name": "declare_engine_compat",
      "description": "Replace the engine compatibility list (up to 10): engine slug, min_version and max_version (either may be empty; a max of 4.3 covers 4.3.x), renderer and platform. Players filter search_catalog by these."
    },
    {
      "name": "declare_license",
      "description": "Set the listing's license kind: cc0, cc-by, cc-by-sa, paid, source-available or proprietary. An empty value clears it."
    },
    {
      "name": "delete_build_symbols",
      "description": "Delete one symbol file (symbol_uid) or every symbol file of a build."
    },
    {
      "name": "delete_sku",
      "description": "Retire an edition. Existing owners keep it; it can no longer be bought."
    },
    {
      "name": "donate_to_game",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Donate to a free game from the stored balance. Requires confirm_total_cents from quote_purchase and a unique idempotency_key. Past this agent's spending limit it returns approval_required; retry with the same idempotency_key once the human approves."
    },
    {
      "name": "get_account",
      "description": "Account status: email verification, wallet balances, and what the account may do (publish, upload, download, buy)."
    },
    {
      "name": "get_agent_policy",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. This agent's spending limit: limit_mode (unset = ask the human every time, unlimited, monthly, yearly, one_time), limit_cents, and spent_in_period_cents. Only the human can change it, on the website."
    },
    {
      "name": "get_approval",
      "description": "Status of an action waiting for the human: pending, approved, denied, expired, or used."
    },
    {
      "name": "get_build_health",
      "description": "Per-build health over the last 30 days: devices, boot_ok and crash-on-boot rates and the band (excellent, healthy, mixed, problematic, or unrated below 20 devices)."
    },
    {
      "name": "get_build_provenance",
      "description": "Who uploaded a build file and how: the owner, the deploy key reference (never the secret), upload time, checksum, virus-scan history, and whether players can see it."
    },
    {
      "name": "get_crash",
      "description": "One crash report including stack excerpt"
    },
    {
      "name": "get_deploy_info",
      "description": "Upload/crash/page URLs, build_ids for X-Build-Id, and existing deploy key prefixes for a game. No secrets."
    },
    {
      "name": "get_download_link",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. A 5-minute signed download URL for a build file. Requires a verified email and, for paid games, a license."
    },
    {
      "name": "get_game",
      "description": "Get one game by uid or vanity name"
    },
    {
      "name": "get_game_analytics",
      "description": "Visitor analytics for a game"
    },
    {
      "name": "get_game_build",
      "description": "One build by build_id (the UID used as X-Build-Id). Includes crash reporter headers X-App-Id and X-Build-Id."
    },
    {
      "name": "get_payment_options",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Ways to add balance: a card link for the human, or x402 USDC networks the agent can pay from its own wallet, with fees."
    },
    {
      "name": "get_profile",
      "description": "Get the authenticated user profile"
    },
    {
      "name": "get_setup",
      "description": "Account, games, public URLs, and key prefixes for programmatic setup. No secrets."
    },
    {
      "name": "get_wallet",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Stored balance (available, pending, reserved) in cents plus the refund, fee, and cash-out rules."
    },
    {
      "name": "grant_keys",
      "description": "Create n keys (1-5000) in a pool. The codes come back once, as a csv_url that can be downloaded one time within an hour; they are stored hashed and can't be shown again. Over 100 keys needs the owner's emailed approval (approval_required); retry with the same idempotency_key after they approve."
    },
    {
      "name": "list_bug_tickets",
      "description": "Bug tickets players filed for a game you manage, newest first, with counts by status. Tickets with attachments carry a crash_id for get_crash and request_crash_download."
    },
    {
      "name": "list_build_symbols",
      "description": "Breakpad symbol files uploaded for a build (module, debug id, os, arch, size). Crash stack traces use them."
    },
    {
      "name": "list_channels",
      "description": "Release channels of a game (stable, beta, dev, ...): which build each points at, expiry, beta subscriber counts, and the recent promote/rollback/upload history. A clean upload moves its channel forward automatically."
    },
    {
      "name": "list_crash_groups",
      "description": "Crash reports grouped by cause (top stack frames after a stackwalk, otherwise the crash message and platform), busiest first, with counts per build and a sample crash id for get_crash."
    },
    {
      "name": "list_dependents",
      "description": "What a public listing uses and which public listings declared they use, support or were made with it, plus its license kind and engine compatibility."
    },
    {
      "name": "list_game_builds",
      "description": "List uploaded builds for a game. Each build_id is the X-Build-Id crash reporters and CI should send."
    },
    {
      "name": "list_game_crashes",
      "description": "Recent crash reports for a game"
    },
    {
      "name": "list_game_sales",
      "description": "Sales, donations, refunds, and seller earnings for a game you manage."
    },
    {
      "name": "list_games",
      "description": "List games the user owns or admins"
    },
    {
      "name": "list_key_pools",
      "description": "Key pools on a game with their size, redeemed and unredeemed counts, and gift links."
    },
    {
      "name": "list_library",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Games the account owns, with refund windows and play time."
    },
    {
      "name": "list_mcp_keys",
      "description": "List MCP API key prefixes (secrets are never returned)"
    },
    {
      "name": "list_reviews",
      "description": "Player reviews of a game you manage, newest first, with the summary (count, enjoyed, quality average and counts, would_play_with_friends). unreplied lists only reviews without a developer reply."
    },
    {
      "name": "list_skus",
      "description": "Editions (SKUs) of a game you manage: standard, deluxe, beta_access and bundle, with price, sort order and whether each is active. When a game has active editions its price is the cheapest one."
    },
    {
      "name": "list_wallet_transactions",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Wallet ledger entries, newest first. Page with before=\u003clast id\u003e."
    },
    {
      "name": "mod_compat",
      "description": "For a mod: compares its declared engine compatibility against the engine version of each supported game's current builds, per channel and platform. Each result is compatible, incompatible or unknown."
    },
    {
      "name": "pay_with_x402",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Submit the signed x402 payment payload for a top-up. The balance is credited once the payment settles on chain."
    },
    {
      "name": "promote_build",
      "description": "Point a channel at a build that passed the virus scan, e.g. promote a beta build to stable. Optional expires_in_hours hides the channel from players after that. Promoting to stable: Over MCP this waits for the account owner: it returns approval_required with an approval uid and confirm_url and emails them; retry once get_approval says approved."
    },
    {
      "name": "purchase_game",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Buy a game license from the stored balance. Requires confirm_total_cents from quote_purchase and a unique idempotency_key. Within this agent's spending limit it completes at once; otherwise it returns approval_required with an approval uid and confirm_url, and the human gets an email with a link and a code. Once approved (get_approval, or confirm_approval with the code), retry with the same idempotency_key."
    },
    {
      "name": "quote_purchase",
      "description": "Deprecated here: use the player server at mcp.blazium.games/player. Removed from this server after 2026-10-28. Price, tax, and total in cents for buying a game or donating. Show the total to the human before purchase_game or donate_to_game."
    },
    {
      "name": "reply_to_review",
      "description": "Publicly reply to a review on a game you manage (up to 2000 characters). Empty text removes the reply."
    },
    {
      "name": "request_crash_download",
      "description": "Request a 1-hour private download URL for a crash dump, log, or stackwalk"
    },
    {
      "name": "request_deploy_key",
      "description": "Issue a new upload access_token + secret_key for a game and immediately invalidate every previous deploy key for that game. Returns secrets once for CLI/CI. Over MCP this waits for the account owner: it returns approval_required with an approval uid and confirm_url and emails them; retry once get_approval says approved."
    },
    {
      "name": "request_email_code",
      "description": "Email a verification code to the account owner. Ask the human to read it from their inbox, then call verify_email."
    },
    {
      "name": "request_mcp_key",
      "description": "Issue a new MCP API key and immediately invalidate every previous MCP API key for this account. Returns the secret once. Over MCP this waits for the account owner: it returns approval_required with an approval uid and confirm_url and emails them; retry once get_approval says approved."
    },
    {
      "name": "rollback_channel",
      "description": "Move a channel back to the build it pointed at before the current one. Players stop seeing the newer build right away; nothing is deleted."
    },
    {
      "name": "scan_status",
      "description": "Virus-scan state and history for every build file of a game, plus files removed in the last 30 days because their scan failed."
    },
    {
      "name": "set_game_price",
      "description": "Set a game's price in cents (0 for free, otherwise 99 to 50000) and whether a free game accepts donations. Owners and game admins only."
    },
    {
      "name": "set_media",
      "description": "Store page images are uploaded with the chauffeur CLI and the game's deploy key, never through MCP. Returns the exact chauffeur media commands for the cover, thumbnail or gallery (add, delete, move, order) and the image limits."
    },
    {
      "name": "set_similar_games",
      "description": "Replace the list of similar public titles (up to 10 uids or vanity names). Players who like those games are shown this one."
    },
    {
      "name": "update_bug_ticket",
      "description": "Set a bug ticket's status on a game you manage: open, fixed, or closed (reopen with open). list_bug_tickets filters by it."
    },
    {
      "name": "update_game",
      "description": "Update a game the user can edit"
    },
    {
      "name": "update_game_taxonomy",
      "description": "Set a game's matchable taxonomy: genres, tags (3+ free slugs), tone, inputs, content_warnings, engines, session_bucket (15m, 1h, 3h, endless), players_min/players_max, net (offline, local, online, local_online). Only fields you pass change. validate_listing lists the allowed values."
    },
    {
      "name": "upload_symbols_info",
      "description": "Symbol files are uploaded with the chauffeur CLI and the game's deploy key, never through MCP. Returns the exact chauffeur symbols command for a build."
    },
    {
      "name": "upsert_sku",
      "description": "Create an edition, or replace one when sku_uid is set. kind is standard, deluxe, beta_access (also grants the beta channel) or bundle (also grants up to 10 of your other listings). Buyers of a cheaper edition pay the difference to upgrade, at least 50 cents."
    },
    {
      "name": "validate_listing",
      "description": "Check whether a listing may be public: errors block publishing, warnings do not. Also returns the current taxonomy and the allowed values."
    },
    {
      "name": "verify_email",
      "description": "Verify the account email with the code the human received. Verification is required to publish, upload, download, and buy."
    }
  ],
  "transport": {
    "endpoint": "https://mcp.blazium.games/mcp",
    "type": "streamable-http"
  },
  "version": "1.0",
  "versioning": "Tool contracts change additively within a major version. A tool or field is removed only after at least 30 days listed under deprecations, with its replacement named.",
  "websiteUrl": "https://blazium.games"
}
