The developer docs are written in English and Spanish. You are reading the English version.

Publish with AI (MCP)

The Gamealia MCP server lets your AI coding assistant take a game from a folder (or from nothing) to published: it analyzes the project, integrates the SDK, builds it, tests it in a real browser, writes the listing and the cover, uploads the build and submits it for review after you confirm. You only approve the sign-in in your browser and say yes before the submit.

Install

You need Node.js 22 or newer. For the local autotest, preview and cover tools you also need playwright-core and a headless Chromium (see Local browser).

gamealia agents install registers the server and installs the skills or rules in every coding agent it detects, backing up every file it changes:

gamealia agents install            # the agents found on this machine, user-wide
gamealia agents install --all      # every supported agent
gamealia agents install --cursor --vscode --project   # only these, in this folder
gamealia agents install --dry-run  # show what would change
gamealia agents uninstall          # remove what install added
gamealia agents list               # supported and detected agents

It downloads the server to ~/.config/gamealia/gamealia-mcp.mjs (with its assets/ folder) and checks every file against the sha256 pinned in the CLI. See the CLI for every flag. From inside an agent that already has the MCP, the tool gamealia_install_agent_kit does the same (a dry run unless write: true).

Option B: by hand

Download the server and the assets it serves for the local autotest and preview:

mkdir -p ~/.config/gamealia/assets/sdk && cd ~/.config/gamealia
for f in gamealia-mcp.mjs assets/harness.html assets/preview.html assets/sdk/v1.js assets/sdk/crazygames.js assets/sdk/poki.js; do
  curl -fsSL "https://gamealia.app/downloads/$f" -o "$f" || break
done

Then register it (node ~/.config/gamealia/gamealia-mcp.mjs, stdio) in your agent:

AgentHow
Claude Codeclaude mcp add gamealia -- node ~/.config/gamealia/gamealia-mcp.mjs
Codex CLIcodex mcp add gamealia -- node ~/.config/gamealia/gamealia-mcp.mjs
Cursor~/.cursor/mcp.json: {"mcpServers": {"gamealia": {"command": "node", "args": ["/home/you/.config/gamealia/gamealia-mcp.mjs"]}}}
VS Code (Copilot).vscode/mcp.json: {"servers": {"gamealia": {"type": "stdio", "command": "node", "args": ["..."]}}}
Claude Desktopclaude_desktop_config.json, mcpServers.gamealia as for Cursor
Gemini CLI~/.gemini/settings.json, mcpServers.gamealia
Windsurf, Cline, Zed, opencodeTheir MCP settings file; gamealia agents install knows each one

Use the absolute path to the file: most agents do not expand ~ in JSON.

The agent kit

Besides registering the server, each agent gets instructions that teach it the workflow and the policy: the skills gamealia-publish, gamealia-sdk and gamealia-translate-listing (Claude Code, Claude Desktop, Codex, opencode), or a rules or instructions file (Cursor .cursor/rules/gamealia.mdc, VS Code .github/copilot-instructions.md, Windsurf, Cline, Zed, Gemini GEMINI.md, and an AGENTS.md block for agents that read it). The kits are also downloadable per agent as /downloads/agents/gamealia-<agent>.zip, for example gamealia-claude-code.zip or gamealia-cursor.zip, each with a README of the manual steps.

The skills tell the assistant to talk to you in your language. The tool results are localized too: set GAMEALIA_LOCALE (for example es) or the server uses your OS locale, with English as the fallback.

Then ask

Restart the agent and ask: "publish my game to Gamealia". The prompt publish-game scripts the whole flow; migrate-from-crazygames, migrate-from-poki and fix-autotest-failures cover the other common jobs.

The tools

StepToolWhat it does
Sign ingamealia_login, gamealia_whoami, gamealia_logoutDevice-code sign-in: you open the URL and approve the code; then gamealia_login {wait: true}. The key is stored in ~/.config/gamealia/credentials.json (mode 600)
Accountgamealia_accounts {action, account}list: your developer accounts, your role in each, the active one and pending invites. switch with an account id or name: uses its stored key, or starts a sign-in bound to that account (then gamealia_login {wait: true})
Inspectgamealia_analyze_project {dir}Engine, build command, output folder, entry html, existing CrazyGames/Poki SDKs, localStorage keys, policy findings with file and line, and the permissions to declare
Scaffoldgamealia_create_project {dir, template, title}A new game already integrated: vanilla, phaser, pixi or multiplayer
Integrategamealia_integrate_sdk {dir, write}A deterministic patch: a dry-run diff first, then write: true. Returns TODOs (file and line) for gameplay and ad calls
Lintgamealia_check_integration {dir}Static checks: SDK loaded, init and loadingStop present, forbidden hosts, purchase UI, own login, sizes
Buildgamealia_build {dir}Runs the project's build command
Testgamealia_run_autotest {dir}The full autotest, desktop and mobile, with screenshots returned as images
Playgamealia_playtest, gamealia_playtest_act, gamealia_playtest_stopThe assistant plays the game itself from screenshots (click, key, drag, wait) and gets a verdict
Previewgamealia_preview {dir}A URL with the game inside a local copy of the portal page (mock ads), for you to try
Listinggamealia_create_game, gamealia_update_listingSlug, texts in es and en (and every other locale via texts), tags, orientation, multiplayer, ads on or off, backendHosts, isolation, permissions, cover and thumbnail files
Covergamealia_generate_cover {screenshot, title}A 1200x630 cover and a 512x512 thumbnail from an autotest screenshot
Shipgamealia_upload_version {dir, game}Zips, uploads, waits for the server autotest and returns its report
Submitgamealia_submit_for_review {game, notes}Only after you confirm
Trackgamealia_get_status {game}State, the server report and the reviewer's reasons with fixes; texts: true adds the listing texts per locale
Moregamealia_list_games, gamealia_list_versions, gamealia_get_stats, gamealia_get_earningsYour games, versions, plays and earnings
Docsgamealia_docs_search {query}Searches these docs; every page is also the MCP resource gamealia://docs/<lang>-<page>, for example gamealia://docs/en-sdk-reference

Every result ends with next suggestions, so the assistant knows what to do after each step.

API keys are bound to one developer account and your role in it (see Accounts and teams). When you belong to several accounts, the results name the active one and the assistant confirms with you which account a game belongs to before creating or publishing it. If your role does not allow an action, the error says which roles can do it, and the assistant asks you to involve an owner or admin instead of retrying.

Local browser

The autotest, preview, playtest and cover tools drive a headless Chromium through playwright-core, which is not bundled:

npm install -g [email protected]
npx [email protected] install chromium-headless-shell

Or set GAMEALIA_CHROMIUM to an existing headless Chromium binary.

Environment

VariableUse
GAMEALIA_API_KEYAn API key from the developer portal (overrides the stored sign-in; bound to its account, so switching accounts is disabled)
GAMEALIA_API_URLAPI base URL (default https://gamealia.app/api/v1)
GAMEALIA_LOCALELanguage of the tool messages and docs (default: the OS locale)
GAMEALIA_CHROMIUMHeadless Chromium binary

Safety

The assistant never sees your Google password: you approve the sign-in in your own browser. It must ask you before submitting a version, and the reviewer still checks every version by hand.