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. 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 a Shiny Gen tab, either yours or the AI's own.

There are two ways in, and only one needs your app open:

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 from your open app

  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 for this way: the assistant operates your live session, so the app must stay open while it works. Hosting stays open as long as the app is. To let your AI work with your app closed, use an agent session link instead.

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:

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.

Let your AI run Shiny Gen itself (nothing open on your side)

Everything above assumes the person is at their own Shiny Gen tab when their AI connects. With an agent session link they do not have to be: the AI runs Shiny Gen in its own browser, and the person's app can be closed the whole time. It also suits agents that 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.

  1. In Shiny Gen they make an agent session link. From the + screen (Link, under Bring your own agent) 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 (Connect external model with MCP, then Create an agent session link), it is worth that one game. They choose how long it lasts: one hour or twenty four hours.
  2. They press Copy link and send it. The copy includes a short note that tells the AI how to open it. That is all they do: they can close Shiny Gen. The link 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

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

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:

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

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

Last updated: October 10, 2026