claude.ai
Add TipTap as a custom connector, approve it once, and build games from a normal Claude chat.
- Sign-in — no key to paste
- About two minutes
Custom connectors are available on Claude's paid plans. You need a TipTap account too — the approval step signs you in, so create one first if you have not.
Setup
Open Settings → Connectors on claude.ai
Click your profile, choose Settings, then Connectors. Scroll past the pre-listed connectors to Add custom connector.
Screenshot coming soon
The Connectors section of claude.ai settings, with the Add custom connector button visible.
/docs/agents/claude-ai/step-1.pngclaude.ai → Settings → Connectors. Paste the TipTap server URL
Server URL
https://mcp.tiptapgames.com/mcpGive it a name you will recognise — “TipTap Games” is fine. Do not fill in a client ID, a secret, or any token. Claude discovers all of that itself; typing something into those fields is the most common way this step goes wrong.
Screenshot coming soon
The Add custom connector dialog with the TipTap MCP endpoint URL typed into the URL field and the credential fields left empty.
/docs/agents/claude-ai/step-2.pngThe URL is the only thing you fill in. Leave every credential field empty. Sign in to TipTap and press Approve
Claude sends you to tiptapgames.com. Sign in if you are not already, and you get a consent screen naming the client that is asking. Press Approve and the browser hands control back to Claude, which finishes connecting on its own.
The screen shows text and no logos, on purpose: rendering an image supplied by the connecting client would mean fetching a URL it chose, and would tell that third party you were looking at the page. It also tells you where the client's name came from — either Identified by a domain it publishes its details at, or Unverified app, meaning it registered itself and chose its own name. The second is normal for a client that self-registered. It is a fact about how the app introduced itself, not an accusation — but it is why the screen asks you to continue only if you started this yourself a moment ago.
Screenshot coming soon
The TipTap consent screen on tiptapgames.com naming the connecting client, with Approve and Deny buttons.
/docs/agents/claude-ai/step-3.pngThe consent screen is on tiptapgames.com — check the address bar before approving anything. Check it landed
Back on claude.ai the connector should now say connected and list TipTap's tools. On the TipTap side it appears under Create → Agents & access → Connected apps, with the date it was last used and a Revoke button.
Screenshot coming soon
The Connected apps card on TipTap's Agents & access page, listing the claude.ai grant with a Revoke button.
/docs/agents/claude-ai/step-4.pngTipTap → Create → Agents & access → Connected apps. Ask Claude for a game
Start a new chat and send this as the first message. Claude creates its own build session and works through to submission.
Starter prompt
You are building a game for TipTap Games, a vertical feed of instantly playable web games. You will do it through TipTap's MCP server, which is connected to this session as `tiptap`. The game I want: a one-thumb arcade game of your choosing — pick something simple you can finish well Build it end to end, autonomously: 1. Call create_build_session with a title and a one-paragraph brief for that game. Use the session_id it returns for every call after this one. 2. Call get_game_specification, then get_sdk_documentation. Read both before you write any code — the SDK is how the game reports score and handles pause, resume, and the leaderboard, and none of it can be guessed. 3. Call list_categories so you can set a real category at submit. Unknown slugs are dropped silently. Browse list_cookbook_recipes for proven patterns — the recipes are written so that following one produces a game that validates. 4. Write ONE self-contained .html file: - Inline every byte of CSS and JavaScript. No external scripts, styles, or fonts. - No network at runtime — fetch, XMLHttpRequest, and WebSocket are blocked by CSP. - No cookies and no localStorage; the game runs on an opaque sandbox origin and they throw. - Assets as data: or blob: URLs only. 5 MB maximum. - Portrait-first: it is played inside a phone-shaped frame in a vertical feed. 5. Declare the achievements with set_game_achievements before you validate, so validation can cross-check them against the code. 6. Call upload_game_draft with the HTML, then validate_game_draft. Fix every issue with severity "error" and validate again — read each issue's suggestedFix. Warnings are advisory. 7. Set a cover with set_game_thumbnail: a raster data URL (PNG, JPEG, WebP, or GIF) of 512 KB or less. SVG is rejected, so rasterize first. 8. Call submit_game once validation returns passed: true, then get_build_status to confirm it reached the review queue. Do not put an API key or any credential in the game file — the validator blocks any upload containing one, and game HTML is public to every player. Do not declare the game complete until validate_game_draft returns passed: true. submit_game sends the game for review. It is not live until a human moderator approves it, so tell me "submitted for review", never "published". Tell me every tool call you make and what it returned. If a tool fails, show me the full error including its `code` and `guidance` fields rather than working around it.To describe the game you want instead of letting Claude choose, type it into the starter prompt card on /create and copy the version it writes for you. Sessions are only ever opened by the agent itself, so this prompt is the entry point either way.
Screenshot coming soon
A Claude chat where the starter prompt has been sent and Claude is calling the TipTap MCP tools.
/docs/agents/claude-ai/step-5.pngClaude calls create_build_session first, then works through the build.
If something goes wrong
“Forbidden” after you press Approve
A consent screen is only good for the request that opened it. Close the tab, add the connector again from claude.ai, and approve the fresh screen — a stale one cannot be re-submitted, by design, because that is what stops somebody else's approval form being replayed against your account.
The connector connects but lists no tools
Check the URL ends in /mcp and uses the hostname above. Only that host is accepted; an older Railway-style hostname answers 403 on the tool endpoint even though its health check looks fine.
It asks you to approve every single time
That means the client is not holding on to its refresh token. Removing and re-adding the connector usually clears it. It is harmless — just repetitive.
What happens next
Once your agent is connected, this is the whole path from prompt to feed.
Your agent opens a build session
It does this itself, on its first tool call — there is no session to create on the website first. Everything it does afterwards is attached to that session and shows up under your account.
You watch it work
The session page shows a live activity feed — spec read, draft uploaded, validation run, cover set. It is built from the server's own audit trail, not from what the agent reports, so it shows what actually happened.
The validation loop runs
The agent uploads a draft and validates it. Failing the first time is normal and healthy: the validator returns specific errors, the agent repairs them and validates again until it passes.
The game is submitted for review
Only once validation passes. Submitting puts the game in the moderation queue under your account, tagged as agent-built.
A human moderator approves it
Then — and only then — it goes live in the feed. You keep full ownership, and you can take it down whenever you like.
No agent can put a game in the feed on its own. The tool it calls is submit_game, and it reaches a review queue. If your agent tells you the game is “published”, it is getting ahead of itself — the real status is on your games.

