Shiny Gen

AI game maker: build, run, screenshot and play-test Godot and retro console games in a live project

Hosted MCP Server

npx add-mcp 'https://mcp.shinygen.ai/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Connect Claude or ChatGPT to Shiny Gen

Shiny Gen ships a hosted MCP server at https://mcp.shinygen.ai/mcp. Connect an AI assistant (Claude, ChatGPT, or any MCP client) and it can build, edit, and play-test your Shiny Gen project, live in your browser. There is nothing to install: unlike MCP integrations that bridge to a desktop engine running on your machine, Shiny Gen's server is remote and operates the project in your open browser tab.

MCP (Model Context Protocol) is an open standard that lets AI assistants use external tools. Shiny Gen exposes its editors and generation models as MCP tools.

Connect

  1. Start hosting in Shiny Gen: open your game at shinygen.ai, open the Agent tab, tap the model name to open the AI model picker, choose Connect external model with MCP, and press Host External Agent. The app shows “Waiting for your AI to connect”. Your assistant cannot connect until you do this, once per session, and the steps for each client appear right there in the app.
  2. Claude (web or desktop): add a custom connector in Settings and paste the server URL: https://mcp.shinygen.ai/mcp
  3. Claude Code:
    claude mcp add --transport http shinygen https://mcp.shinygen.ai/mcp
    
  4. ChatGPT or any other MCP client: add the same URL wherever your client configures connectors or MCP servers.
  5. Approve access: your browser opens a Shiny Gen consent page. Sign in and approve. Authorization uses OAuth, and you can disconnect at any time.
  6. Keep Shiny Gen open: the assistant operates your live session, so the app must stay open while it works. Hosting stays open as long as the app is.

Build your own MCP client

You do not need Claude or ChatGPT. Any program that speaks MCP can connect, including an AI agent that writes its own client in code. Everything is standard, so a stock MCP SDK handles it:

  • Transport: Streamable HTTP at https://mcp.shinygen.ai/mcp.
  • Sign-in: OAuth 2.1 with PKCE (S256). A request without a token gets a 401 whose WWW-Authenticate header points at the discovery document, https://mcp.shinygen.ai/.well-known/oauth-protected-resource.
  • Registration: clients register themselves at https://mcp.shinygen.ai/oauth/register. Public clients only: there is no client secret.
  • Return address: the redirect URI must be https, or loopback http (127.0.0.1, localhost or [::1]) for a client that catches the redirect on a local port. The authorization code is good for two minutes.
  • Approval: the consent page has its own sign-in form, so the browser that approves does not need to run the app.
  • Hosting is per account, not per machine: the tab that pressed Host External Agent can be on a different computer from the client. Sign in to the same account in both places.

Sharing: get_share_link returns a link to the game, and that link opens it for its owner when they are signed in. It takes no options and cannot change who else may open the game, by design. To let other people in, open the game in Shiny Gen, press Share and choose Play Only or Play and Duplicate.

If your agent has its own computer

Everything above assumes the person is at their own Shiny Gen tab when their AI connects. Some agents are not built that way: they have their own machine and their own browser, no connector UI to paste a URL into, and no way to complete a sign-in as somebody else. For those, the person can hand over a session instead.

  1. In Shiny Gen they make an agent session link. From the + screen it is worth one new game, or a remix of a game they are allowed to remix. From the model picker, while a game is open, it is worth that one game. They choose how long it lasts: one hour or twenty four hours.
  2. They send the link. It looks like https://shinygen.ai/agent_session#.... The part after the # is a one-time code. Browsers never send that part to a server, so it stays between the person and the agent.
  3. The agent opens the whole link in a browser. If it can run code, it can do this: a headless Chromium its own code starts (Playwright or Puppeteer) is a real browser here, and the page has copy-paste scripts for it. Fetching the link as text gives instructions and nothing else, on purpose. The page uses the code once, within an hour of it being made, goes straight to a Shiny Gen editor running in that browser, and leaves an MCP token in that browser's storage.
  4. The agent connects its MCP client to https://mcp.shinygen.ai/mcp with Authorization: Bearer <token>. There is no registration step, no consent page, and nothing to press in the app: making the link was the permission.

Such a session works on the game it was given and games it creates for the person (create_game moves the session to the new game, open_game switches back). It can read the person's other games and the public catalog with browse_games, list_game_files and read_game_file, never changing them and never reaching another person's private game. It cannot reach settings, purchases or the account, and the server refuses all of that whether or not the app offers it. Gems work exactly as they always do: the same daily limit, the same allowance, the same switch to turn agent spending off. A new-game link only ever makes a new game: it cannot take over one the account already has, and if the name is taken the game is simply given a unique one. A remix link opens a copy, and the original is never changed. The agent should call get_context first: it says which game the session is for, which tools are unavailable and why, and how many gems are left today.

The person stays in charge. The sessions they have handed out are listed under Agent access and spending with a Revoke button, which is the one way they end a session by hand. Opening the game themselves does not end it: they can play and look while the agent works. While an agent session is working on a game, that game opens read-only for the person, so the two cannot overwrite each other. An account has one agent session at a time, so using a newer link ends the older session, and up to 10 unused links can be waiting at once.

If the agent already redeemed the link

The link works once. The token does not: it is the session, and it is valid until the session expires or the person ends it. An agent whose browser was closed, reset or destroyed between turns does not need a new invite.

  1. Open https://shinygen.ai/agent_session/resume and paste the MCP token. That address carries no code and no token: the page sends the token as an Authorization header. It is also what every no_live_tab reply hands back as resume_url, next to the game id, the game name and the moment the token expires.
  2. Or do it directly: POST https://api.shinygen.ai/agent_session/resume with Authorization: Bearer <token>. The reply is the same object the redeem returned.
  3. Only two answers mean a new invite is needed: session_revoked and token_expired.

An agent should also call save_game as the last tool of every turn. Every write saves on its own, but save_game returns only once the cloud has the game, and its cloud_md5 is the fingerprint of the copy the person downloads. That matters most for agents whose sandbox ends with the turn.

If the connection fails

  • The assistant says Shiny Gen is not hosting an external agent: press Host External Agent in the app (the first step above), then connect again. If Shiny Gen was closed or lost its connection, hosting stopped with it: press the button again.
  • No sign-in window appeared, and the client says the connection failed: your browser is almost certainly blocking the pop-up. Clients open the Shiny Gen sign-in page in a new window, and a blocked pop-up usually surfaces as a generic connection error. Allow pop-ups for your AI client's site and connect again.
  • Check the URL includes the path: the server address is https://mcp.shinygen.ai/mcp. The host on its own is not the endpoint.
  • The assistant says agent access is switched off: “Allow AI agents to connect” is off for your account. The consent page offers to turn it back on, or turn it on in the app under Agent access & spending.

Permissions

ScopeWhat it allows
projects.readSee your project: what is on screen, the focused document, and its current state.
projects.writeWrite and edit game code and asset documents. Code edits are free.
assets.generateRun AI generation (images, and 3D models, 2D art, audio scores and behaviour written as code); this spends your gems, and a daily gem cap limits how much a connected assistant can spend in one day.

What a connected assistant can do

  • Read what is on screen and which document is focused.
  • Write or patch the game's GDScript; the game compiles, runs, and reports errors back with line numbers.
  • Start a new game for you, list the games in your account, and open any one of them — so you can say “go back to the platformer” and it will.
  • Take screenshots to see what you see, including frame bursts to check motion.
  • Press keys and actions on the running game to play-test what it built, including whole input timelines when a game needs two controls at once.
  • Generate images with Shiny Gen's generation models, turn a picture into a textured 3D model or an animated sprite sheet, browse and restore earlier versions of an asset, and remove an image's background.
  • Build and edit 3D models, 2D art, audio scores and per-entity behaviour as code, and render views of a model to check it. Every one of those formats can be written by the assistant itself for free, or generated from a description for gems, and either way what you get is a document you and it can keep editing. The same two ways apply to changing something that already exists: the assistant edits the document itself for free, or has a model write the revision for gems, and what comes back is still a document of that kind — music stays a score, a drawing stays a drawing you can edit, not a flat picture of one.
  • Get a share link for the game it has been working on.

What it costs, and the limits

Connecting is free, and writing code is always free — only AI generation spends gems. Two separate limits apply to an assistant working in your project:

  • A daily gem cap. Caps how many gems a connected assistant can spend in a single day, so an assistant left running cannot drain your balance. Every paid result reports your gems before, spent, and remaining.
  • A weekly action allowance on the free tier. Your first connection starts a 30-day full-connector trial. After that, free accounts get an allowance of assistant actions that change something (writing code, generating, running the game) per week, currently 300, reset every Monday (UTC). Reading is never limited, and anyone who has made a purchase is not subject to this allowance at all. The connector reports your current status and when the allowance resets.

The AI agent built into the app

You do not need an outside assistant at all: Shiny Gen has its own AI agent built into the app, with the same abilities described on this page — it reads your project, writes game code, generates assets, and play-tests what it builds. Connect Claude or ChatGPT when you would rather drive from a tool you already use; otherwise the in-app agent is right there.

Both work the same way where it counts: generation spends gems, and the daily gem cap and the free-tier weekly allowance apply to both. The difference is who runs the model. An outside assistant runs on your own AI plan, so its code editing costs no gems. The built-in agent's model runs on Shiny Gen, so each of its chat steps spends gems; the model picker shows what each model costs.

The docs travel with the connector

Once connected, the assistant automatically receives Shiny Gen's language references and the exact API surface for game code, served through the connector itself. You do not need to teach your assistant anything or paste documentation; it looks up the contract as it works.

Safety

  • Permissions are scoped and revocable; disconnect at any time.
  • Everything the assistant does happens in your open tab; you watch edits live and can pause or stop it from the app.
  • Writing code is free; only AI generation spends gems, with a daily gem cap for connected assistants. Every generation reports your remaining balance.

Questions? See the MCP section of the FAQ or contact support.

Last updated: October 8, 2026