Live probe refreshed Nov 3, 2026 · Endpoint host developer.playgama.com
Domain knowledge for Playgama MCP - Publish & Manage HTML5 Games — workflow patterns, data models, and gotchas for your AI agent.
Playgama is a portal for HTML5 games. This server works inside one organization's developer cabinet and reaches only that organization's games.
What it covers:
Build archives are limited to 300 MB.
What stays a human action in the cabinet: submitting a game to moderation, deleting anything, rolling a game back to its last submitted version, reading payouts, and uploading screenshots and videos.
After a game is live it takes its first players from the Playgama network. Once it clears the session threshold, rewarded, interstitial and banner advertising can be switched on through Playgama Ad, which is available by request. Playtime, retention and revenue reports live in the developer dashboard, and payouts start at 100 USD.
Connect Playgama MCP - Publish & Manage HTML5 Games to any MCP client in minutes
https://developer.playgama.com/api/mcpThis server may ask you to sign in when your AI client connects.
Operate Playgama MCP - Publish & Manage HTML5 Games? You can take over the listing's metadata.
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
Chat with AI and run tools instantly.
Publish in seconds, get the audience, start monetization, get all analytics - without leaving your agent. Publish and manage HTML5 games on Playgama from a coding agent: create the game and fill in its form, upload builds and covers, edit the in-app catalog and leaderboards, get a QA Tool link, and publish a sandbox - a public link anyone can play. The agent can also bring the first players to that sandbox through Playgama DSP, with the first run per game free (beta). 22 tools, 11 of them read-only; submitting to moderation, deleting and payouts stay manual. Once the game clears the session threshold you can switch on rewarded, interstitial and banner ads through Playgama Ad (access by request), and read playtime, retention and revenue in your developer dashboard; payouts start at 100 USD. Authentication is OAuth 2.1 - there is no token to paste.
https://developer.playgama.com/api/mcpThis server may ask you to sign in when your AI client connects.
Chat with AI and run tools instantly.
Browse all toolsGet
List
Start
Confirm
Create
Update
Other capabilities
List applications
list_applicationsEvery named game of your organization, newest first — id, title, status and when each was last updated. The order is fixed and does not change when you edit a game, so paging through it visits every game exactly once. Deleted games are not part of this surface and never appear here, and neither is a game whose title was never filled in — the cabinet does not list those either. It takes no filters, only paging: match on the title or the status of the rows you get back. `status` is the raw lifecyc
Description may be truncated on the public preview.
Open in Studio[
{
"name": "list_applications",
"title": "List applications",
"annotations": {
"readOnlyHint": true
},
"description": "Every named game of your organization, newest first — id, title, status and when each was last updated. The order is fixed and does not change when you edit a game, so paging through it visits every game exactly once. Deleted games are not part of this surface and never appear here, and neither is a game whose title was never filled in — the cabinet does not list those either. It takes no filters, only paging: match on the title or the status of the rows you get back. `status` is the raw lifecyc"
},
{
"name": "create_application",
"title": "Create a game",
"annotations": {
"readOnlyHint": false
},
"description": "Create a new game in your organization as a draft, the way the cabinet’s \"New Game\" page does. `title` must be in English — Latin letters, digits, spaces and punctuation, up to 120 characters — because players and moderators see it as-is. `engine` is the engine the game was built with, one of the listed ids. Answers the new game’s `id`: use it with update_application_form to fill in the form, start_archive_upload for the build and start_cover_upload for the covers. Titles are not unique, so if a"
},
{
"name": "get_application",
"title": "Read an application",
"annotations": {
"readOnlyHint": true
},
"description": "The full saved form of one game, together with the metadata of its archives and media. File contents and download links are not part of this surface."
},
{
"name": "update_application_form",
"title": "Save application form fields",
"annotations": {
"readOnlyHint": false
},
"description": "Save form fields of a game. This is a partial save: a field you leave out keeps its stored value, so send only what you mean to change. Enum arrays are replaced whole. Saving does not submit anything to moderation."
},
{
"name": "get_submission_state",
"title": "Read the submission state",
"annotations": {
"readOnlyHint": true
},
"description": "Whether the game can be submitted to moderation right now and, when it cannot, why: missing certification, a cooldown after a failed moderation, or nothing changed since the last submit. Submitting itself is not available through MCP — a human does it in the cabinet."
},
{
"name": "list_moderation_comments",
"title": "Read the moderation correspondence",
"annotations": {
"readOnlyHint": true
},
"description": "The moderation correspondence on a game, newest first, grouped by moderation task. Read-only: replying to moderation is not part of this surface."
},
{
"name": "list_leaderboards",
"title": "List leaderboards",
"annotations": {
"readOnlyHint": true
},
"description": "Every leaderboard configured for a game, as bridge-saas stores it. `id` is the tag the game passes to the Playgama Bridge SDK and the one update_leaderboard takes; each row also carries `name`, `type`, `scoreOrder`, `decimals` and `isActive`, plus score-protection settings this surface reads but cannot change. An empty list means the game has none yet — create_leaderboard adds one."
},
{
"name": "create_leaderboard",
"title": "Create a leaderboard",
"annotations": {
"readOnlyHint": false
},
"description": "Add a leaderboard to a game. `id` is the tag the game passes to the Playgama Bridge SDK to address it: unique within the game, and not changeable afterwards — update_leaderboard can change the name, type and score order, never the tag. Check list_leaderboards first to see which tags are taken. Deleting a leaderboard is not available through MCP."
},
{
"name": "update_leaderboard",
"title": "Update a leaderboard",
"annotations": {
"readOnlyHint": false
},
"description": "Change the name, type or score order of an existing leaderboard. At least one of them is required. Deleting a leaderboard is not available through MCP — a human does it in the cabinet."
},
{
"name": "list_in_app_products",
"title": "List in-app products",
"annotations": {
"readOnlyHint": true
},
"description": "The in-app product catalog of a game as currently saved, plus the `checksum` naming that exact state. Pass the checksum back to replace_in_app_products so a replace cannot overwrite a change you never saw."
},
{
"name": "replace_in_app_products",
"title": "Replace the in-app catalog",
"annotations": {
"readOnlyHint": false
},
"description": "Replace the whole in-app catalog with the list you pass — this is the target state, not a patch: a product you leave out is deleted, and an empty list clears the catalog. Call list_in_app_products first, send the full list back with your change applied, and pass its `checksum` as `expectedChecksum`: if someone edited the catalog in the meantime the call is refused instead of deleting their work. The \"has in-game purchases\" flag of the form travels with it: leave `hasInGamePurchases` out and it f"
},
{
"name": "start_archive_upload",
"title": "Start an archive upload",
"annotations": {
"readOnlyHint": false
},
"description": "Step 1 of 3 of uploading a game build (a zip). Creates an archive record for the game and answers `uploadUrl` and `headers`: PUT the zip file to it yourself with exactly those headers, e.g. `curl -T game.zip -H \"Content-Type: application/zip\" \"<uploadUrl>\"`. The URL is valid for an hour and is signed for exactly `contentSize` bytes and that content type, so anything else is refused by the storage. Nothing is in the game’s form until you call confirm_archive_upload (step 3) after the PUT has fini"
},
{
"name": "get_archive_status",
"title": "Read an archive’s status",
"annotations": {
"readOnlyHint": true
},
"description": "The state of one archive of a game. `processing` is PENDING while the upload is unconfirmed or being unpacked, DONE once the game is published to storage, FAILED with `errorMessage` when the zip could not be used. `inForm` says whether the archive is in the game’s form. `analysis` is the Bridge SDK analysis once it ran, null before that."
},
{
"name": "get_archive_qa_tool_link",
"title": "Get the QA Tool link for an archive",
"annotations": {
"readOnlyHint": true
},
"description": "The link that opens an uploaded archive in the Playgama QA Tool — the cabinet’s testing page, where a human plays the build inside the Bridge SDK harness and submits it to moderation. Hand it to the developer. The page has something to show only once `processing` is DONE (see get_archive_status). Always ask this tool for the link rather than building it — the cabinet’s address depends on the deployment."
},
{
"name": "confirm_archive_upload",
"title": "Confirm an archive upload",
"annotations": {
"readOnlyHint": false
},
"description": "Step 3 of 3: tell the cabinet the PUT has finished. The archive is added to the game’s form and queued for unpacking and Bridge SDK analysis; the archives already in the form stay there (removing one is a human action in the cabinet). Refused while nothing is stored at the upload URL. Safe to repeat: once processing has run, a repeat only answers the current state. Answers the same view as get_archive_status — unpacking takes a minute or more, so poll get_archive_status until `processing` is DON"
},
{
"name": "start_cover_upload",
"title": "Start a cover upload",
"annotations": {
"readOnlyHint": false
},
"description": "Step 1 of 3 of uploading one cover image of a game. The form has three cover slots — square 800×800, portrait 1080×1920, landscape 1920×1080 — and each takes a PNG or JPEG of exactly that size; resize before uploading. Answers `uploadUrl` and `headers`: PUT the file to it yourself with exactly those headers, e.g. `curl -T cover.png -H \"Content-Type: image/png\" \"<uploadUrl>\"`. The URL is valid for an hour and is signed for exactly `contentSize` bytes and that content type, so anything else is ref"
},
{
"name": "confirm_cover_upload",
"title": "Confirm a cover upload",
"annotations": {
"readOnlyHint": false
},
"description": "Step 3 of 3: tell the cabinet the PUT has finished. The file is checked — it must be the format the upload was started as, exactly the size of its slot, and a complete, decodable image — then registered for public use, and then put into the game’s form in place of the cover that was there; `replaced` names what it took out. Refused while nothing is stored at the upload URL (409), when the file does not fit (422, with the reason — upload a corrected file with a new start_cover_upload), and when t"
},
{
"name": "get_local_game_qa_tool_link",
"title": "Get a QA Tool link for a locally served game",
"annotations": {
"readOnlyHint": true
},
"description": "A link that opens the Playgama QA Tool on a game you are serving yourself — typically a dev server on localhost, e.g. `http://localhost:5503/`. Open it in a browser to play the game inside the Bridge SDK harness before uploading anything. `sessionId` keys the QA Tool’s localStorage: leave it out for a fresh environment every time (a timestamp is used), or pass your own key to keep saved state between runs. Always ask this tool for the link rather than building it — the cabinet’s address depends "
},
{
"name": "get_sandbox_state",
"title": "Read the sandbox state",
"annotations": {
"readOnlyHint": true
},
"description": "Whether this game has a sandbox — a public page where anyone with the link can play the build, with no moderation — and what is on it right now: the link, the status, and the revision that is live (its archive, the title it was published under, when). `site` is null when the game has never been published to the sandbox. Pass `archiveId` and the answer also carries `publish`: `allowed` and, when it is false, `reason` — the very refusal publish_sandbox would give; `changeStatus` says whether publi"
},
{
"name": "publish_sandbox",
"title": "Publish the game to its sandbox",
"annotations": {
"readOnlyHint": false
},
"description": "Publishes this archive to the game’s sandbox page. **The game becomes playable by anyone who has the link, immediately and without moderation** — nothing about this call is a draft. Ask the developer before calling it. The archive must be in the game’s form and finished unpacking; the game must have a title. Answers `outcome`: PUBLISHED means a new revision is live, UNCHANGED means the same archive and the same form were already published — nothing was written and the link is the same one. So a "
},
{
"name": "get_sandbox_traffic",
"title": "Read the sandbox traffic state",
"annotations": {
"readOnlyHint": true
},
"description": "Whether traffic can be brought to this game’s sandbox right now, what the package is, and the runs so far. `verdict.allowed` is what start_sandbox_traffic would answer; when it is false, `verdict.reason` says why: DSP_DISABLED (not available on this deployment), NO_SITE (publish to the sandbox first), BLOCKED, NO_COVERS (upload covers and publish again — the creatives are cut from them), ANALYSIS_PENDING (the build is still being analyzed, ask again shortly), NO_BRIDGE (the build has no Playgama"
},
{
"name": "start_sandbox_traffic",
"title": "Bring traffic to the sandbox",
"annotations": {
"readOnlyHint": false
},
"description": "Starts an advertising campaign in the Playgama DSP that sends players to this game’s sandbox page. **The first run per game is free; it spends a fixed budget over a fixed window and cannot be undone.** Ask the developer before calling it. The banners are cut from the game’s covers, so upload covers (start_cover_upload / confirm_cover_upload) and publish (publish_sandbox) first — a revision without covers is refused with NO_COVERS, and a build without the Playgama Bridge SDK with NO_BRIDGE. Answe"
}
]Publish in seconds, get the audience, start monetization, get all analytics - without leaving your agent. Publish and manage HTML5 games on Playgama from a coding agent: create the game and fill in its form, upload builds and covers, edit the in-app catalog and leaderboards, get a QA Tool link, and publish a sandbox - a public link anyone can play. The agent can also bring the first players to that sandbox through Playgama DSP, with the first run per game free (beta). 22 tools, 11 of them read-only; submitting to moderation, deleting and payouts stay manual. Once the game clears the session threshold you can switch on rewarded, interstitial and banner ads through Playgama Ad (access by request), and read playtime, retention and revenue in your developer dashboard; payouts start at 100 USD. Authentication is OAuth 2.1 - there is no token to paste. It provides MCP tools that your client discovers when it connects (this page may not list every tool name) that AI agents can use through the Model Context Protocol (MCP).
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/playgama-developer-cabinet. Authentication is handled automatically.
Playgama MCP - Publish & Manage HTML5 Games is a remote MCP server. The live tool list is supplied by the server when your MCP client connects, so the count is not fixed on this public page. After you connect in MCPBundles Studio or your client, you will see the tools your session can call. A SKILL.md is still included to guide your agent on capabilities and workflows.
Playgama MCP - Publish & Manage HTML5 Games uses open data APIs — no authentication required.
© 2026 ThinkChain Inc. All rights reserved.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.
Other MCP servers in this category from the directory index