Connect your AI to your arcade

Arcade Boss is a 3D arcade where AI developers build real games from a chat. Its MCP server lets the AI you already use — Claude Code, Codex, ChatGPT, Meta Muse, Muse Code — build and revise games straight into your arcade, on your own subscription.

The endpoint

MCP endpointhttps://arcadeboss.com/mcp TransportStreamable HTTP, stateless — one POST per call, no sessions. GET and DELETE answer 405. AuthenticationOAuth 2.1 sign-in — add the URL and your AI opens the Arcade Boss sign-in page. A plugin key as a Bearer (Authorization: Bearer pt_mcp_…) still works, for a machine with no browser. See Sign in below. Origin stampAdd ?via=codex, ?via=muse or ?via=muse-code so versions built from that host are credited to it in your arcade. Bare /mcp is Claude Code, or Claude / ChatGPT when you signed in from their connector. Large filesPUT https://arcadeboss.com/mcp/stage?path=index.html with the raw bytes and the staging.bearer that get_arcade, create_project and get_game_source return, then pass files: "staged" to a tool. Inlining a whole game in a tool call costs tokens; staging costs none. Rate limitsVerifying or publishing boots the game in a real browser: 30 boots per arcade per hour, 4 at once server-wide. Read tools are uncapped.

Sign in

  1. Add Arcade Boss to your AI by its address (recipes below). There is nothing to copy but the URL.
  2. Your AI opens the Arcade Boss sign-in page. Sign in with your email or Google — a new email makes a new account and its arcade — and press Allow.

A sign-in can see your arcade and its games, start projects and publish drafts to your Builds. It cannot spend your energy, change your account, email or friends, or ship to the floor. Every signed-in app is listed under 🗃 Builds → 🔌 Connect → Connected with Revoke, and Sign out everywhere ends them all at once.

No browser? A plugin key

On a machine that can't open a sign-in page (CI, a container), use a plugin key instead: 🔌 Connect → your AI → In Terminal → No browser? Use a key makes one and copies the whole command. A key is shown once and is a password: keep it out of chat text and shared documents. Keys are listed and revoked in the same place.

Connect from…

Claude (chat, desktop and phone)

  1. In Claude, open Settings → Connectors → Add custom connector.
  2. Name it Arcade Boss, enter https://arcadeboss.com/mcp as the URL, and press Add.
  3. Press Connect beside it. Claude opens the Arcade Boss sign-in; sign in and press Allow.

Then, in any chat with the connector on: “Build me a one-button runner for my arcade.”

Claude Code

The Arcade Boss plugin lives in the public marketplace jbmatter/arcadeboss-plugins. It brings the build skill and the /arcade:… commands, and signs in with OAuth.

In the Claude app

Install in Claude

If that button doesn't open Claude, add it by hand:

  1. In Claude, open Customize → Plugins.
  2. Choose Add marketplace, pick GitHub repo, and enter jbmatter/arcadeboss-plugins.
  3. Find Arcade Boss in the list and press Install.
  4. In a new Claude Code chat, type /arcade:connect. Claude sends you a sign-in link: open it, sign in and press Allow. (Claude Code's own /mcp → arcade → Authenticate does the same.)

In Terminal

claude plugin marketplace add jbmatter/arcadeboss-plugins
claude plugin install arcade@arcadeboss

Then in Claude Code type /arcade:connect and open the sign-in link Claude sends. With no browser on the machine, add the server with a key instead:

claude mcp add --transport http arcade-key https://arcadeboss.com/mcp --header "Authorization: Bearer <your plugin key>"

Updating

claude plugin marketplace update arcadeboss
claude plugin update arcade@arcadeboss

Then “/arcade:build a one-button runner where you jump over saws”. /arcade:revise changes a game you already have, and /arcade:convert ./my-game brings in a game you made somewhere else.

Codex (the ChatGPT app, CLI, IDE)

Same marketplace, jbmatter/arcadeboss-plugins.

In the ChatGPT app

  1. Open Plugins in the left sidebar.
  2. Press Add → Add a marketplace. Under Source enter jbmatter/arcadeboss-plugins and press Add marketplace.
  3. Open the Personal tab, find Arcade Boss, and press +. Installing opens the Arcade Boss sign-in; sign in and press Allow.

In Terminal

codex plugin marketplace add jbmatter/arcadeboss-plugins
codex plugin add arcade@arcadeboss
codex mcp add arcade --url "https://arcadeboss.com/mcp?via=codex"

The last line detects the sign-in and opens it in your browser (codex mcp login arcade --no-browser prints the link for a browser on another machine). With no browser at all, use a key:

export ARCADE_PLAYER_TOKEN=<your plugin key>
codex mcp add arcade-key --url "https://arcadeboss.com/mcp?via=codex" --bearer-token-env-var ARCADE_PLAYER_TOKEN

Updating

codex plugin marketplace upgrade
codex plugin add arcade@arcadeboss

Then “$arcade build me a one-button runner where you jump over saws”. $arcade-convert ./my-game brings in a game you made somewhere else.

ChatGPT

  1. Turn on Developer mode in ChatGPT's settings.
  2. Open Plugins → Add → Create MCP App. Enter https://arcadeboss.com/mcp as the Server URL, choose OAuth for authentication, and press Create.
  3. ChatGPT opens the Arcade Boss sign-in; sign in and press Allow.

Then add the app from a chat's tools menu and describe a game. Builds arrive as a card with Walk in and Playtest buttons.

Meta Muse (the app)

Muse builds the connector itself on its own machine, and its credential store is made for a key: make one under 🔌 Connect → Meta Muse. Say this to Muse, and paste the key into its secure credential prompt when it asks — never into the chat:

Build a custom connector to my Arcade Boss arcade. It is a remote MCP server over
streamable HTTP at https://arcadeboss.com/mcp?via=muse — authenticate with a Bearer
token I'll give you in the credentials prompt. Docs: https://arcadeboss.com/docs/mcp
Save it as a skill so I can ask you to build and revise games in my arcade later.

Then: “Build me a one-button endless runner for my arcade.” Muse writes the game on its VM, verifies and publishes it through the connector, and hands you the walk-in link.

Muse Code (Meta's terminal agent)

Add the server to ~/.config/muse/settings.json, with a key from 🔌 Connect → Muse Code:

{
  "schema_version": 1,
  "mcp_servers": {
    "arcade": {
      "transport": "streamable_http",
      "url": "https://arcadeboss.com/mcp?via=muse-code",
      "headers": { "Authorization": "Bearer ${ARCADE_PLAYER_TOKEN}" },
      "enabled": true
    }
  }
}

Muse Code reads Claude Code skill folders, so muse skills import --from claude after installing the Claude Code plugin brings the build workflow across.

For client developers: the OAuth server

Arcade Boss is its own authorization server, built to the MCP authorization spec (2026-07-28).

DiscoveryAn unauthenticated POST /mcp answers 401 with WWW-Authenticate: Bearer resource_metadata="https://arcadeboss.com/.well-known/oauth-protected-resource/mcp". Authorization-server metadata is at /.well-known/oauth-authorization-server; the issuer is https://arcadeboss.com. ClientsClient ID Metadata Documents (an https client_id; preferred), or Dynamic Client Registration at /oauth/register. Public clients use token_endpoint_auth_method: "none". FlowAuthorization code with PKCE S256 only. Loopback http redirects may use any port. The resource parameter is https://arcadeboss.com/mcp; responses carry iss. Scopesarcade:read (get_arcade, list_games, get_game_source, verify_game, look_game) and arcade:write (create_project, publish_game). A call short of a scope gets 403 with error="insufficient_scope". TokensAccess tokens last an hour; refresh tokens rotate on every use, and a reused one ends the sign-in. Revoke at /oauth/revoke.

The tools

ToolWhat it does
get_arcadeYour arcade's name, visit link and counts. Creates the arcade on first call if you have none.
list_gamesEvery game you own, grouped by lineage: title, developer, score, current version, what is on a bench.
get_game_sourceA game's files plus the contract it was built under (multiplayer, saves, orientation), a version stamp for safe revisions, and demo: whether the cabinet's demo still fits.
create_projectStarts a new game from a brief and its contract declarations. Writes no files.
verify_gameThe dry run: a contract lint, then a real boot on desktop and on a phone viewport. With attract, it also plays the cabinet's demo for two seconds. Never writes.
look_gameScreenshots of the game in play at several viewports, for the AI to look at its own work.
publish_gameThe one writer: verifies and lands the files as the next version of a game, as a draft in your 🗃 Builds and on a free developer's bench. Takes the cabinet's demo as attract.

The cabinet's demo

When a game ships, the arcade records a few seconds of it playing itself and shows the clip on its cabinet. The AI that wrote the game can write that demo too. The demo is a patch, never part of the game. The arcade applies it only to a private copy it records from.

What it can and cannot do

Access requirements

A free Arcade Boss account bound to a verified email. One arcade per account. Building spends credits: new accounts receive a starter grant when they verify their email, and more can be bought as credit packs. During the pre-launch period sign-ups are admission-gated by a daily quota and invite codes. No regional restrictions.

Questions, or a reviewer's invite code: hello@arcadeboss.com.