Connect
The quickest way takes about a minute and needs no API key. It's the same setup as Settings → Connect AI:
- Copy the message
- Paste it into Claude Code or Codex
- Click Approve when Habiv opens
Please connect yourself to Habiv (https://habiv.com) so you can publish the browser games we make together.
Habiv is a remote MCP server:
URL: https://habiv.com/api/mcp
Transport: Streamable HTTP
Sign-in: OAuth in my browser (no API key needed)
Steps:
1. Add it as an MCP server named "habiv", available in all my projects.
- Claude Code: claude mcp add --transport http --scope user habiv https://habiv.com/api/mcp
- Codex: codex mcp add habiv --url https://habiv.com/api/mcp
- Any other app: add a remote HTTP MCP server with the URL above.
2. Start the sign-in.
- Codex: run codex mcp login habiv (it opens my browser).
- Claude Code: tell me to restart Claude Code, type /mcp, pick "habiv" and choose Authenticate.
3. A Habiv page will open in my browser. Tell me to click Approve, then wait for me.
4. Once the habiv tools show up, call list_my_games to confirm we're connected.
Keep your replies short and in plain words, not technical. From then on, when I say "publish this to Habiv", use publish_game with the game's files (index.html at the root) and share the link when it's live.Your agent adds Habiv, starts the sign-in and tells you when to click Approve. It then lists your games to check that the connection works. From then on, just ask it to “publish this game to Habiv”.
Claude app (web or desktop)
Open Settings → Connectors → Add custom connector, name it Habiv and paste this link. Claude asks you to approve on Habiv the first time you use it.
https://habiv.com/api/mcpSet it up yourself
If you'd rather not paste the message, here are the details:
| Server URL | https://habiv.com/api/mcp |
| Transport | Streamable HTTP |
| Sign-in | OAuth in your browser, or a personal token |
Claude Code. Run this, restart Claude Code, type /mcp, pick habiv and choose Authenticate. Approve on the Habiv page that opens.
claude mcp add --transport http --scope user habiv https://habiv.com/api/mcpCodex. The login command opens your browser. Approve, then go back to Codex.
codex mcp add habiv --url https://habiv.com/api/mcp
codex mcp login habivCursor and other apps. Add a remote HTTP MCP server. Most apps take a config like this:
{
"mcpServers": {
"habiv": {
"type": "http",
"url": "https://habiv.com/api/mcp"
}
}
}Things to ask
Once connected, talk to your agent normally. For example:
- “Publish this game to Habiv.”
- “Publish this as a new version of Drift Dodge. Changelog: faster enemies, fixed the jump.”
- “Open the code of my game Blink Buffet, make the timer 30 seconds and publish it.”
- “Roll Drift Dodge back to the previous version.”
- “Use this image as the cover, and add the tags arcade and one-button.”
- “Turn on the leaderboard for Drift Dodge, lowest time wins.”
- “Hide Blink Buffet for now.”
If you want scores or levels, ask the agent to add the Habiv SDK calls before it publishes. Pointing it at https://habiv.com/docs/sdk is enough.
How publishing works
- The agent calls
publish_gamewith the game's files, a title and the details it knows: tagline, description, categories, controls, the model and tool that made it. It also writes them into a habiv.json in the bundle, so they stay with the code. - Habiv checks and prepares the build, the same way as a web upload. The agent polls
get_publish_statusuntil the status isready, usually within a minute. - The game lands as a private draft in My games. Publish it from there, or ask the agent to release it with
publish_version. To skip the draft and go live as soon as the build is ready, the agent passespublish_when_ready: true.
Passing a game_id publishes a new version of an existing game. Its page, stats, comments and leaderboard stay the same, and every earlier version stays available for rollback.
Tools
Publishing
| Tool | What it does |
|---|---|
publish_game | Uploads a game from inline files (text files as plain text, binary files as base64), a public zip/HTML URL or an upload session, and publishes it once it's ready. Pass game_id for a new version, with keep_other_files to send only the changed files. |
create_upload | Opens an upload for a zip on disk or a bundle over 3 MB (up to 50 MB). Up to 4 MB the URL is on habiv.com, so sandboxes only need www.habiv.com allowed. Then call publish_game with upload_id. |
get_publish_status | Processing status (processing, ready, rejected), engine, warnings, the details found in the build, which page fields are still empty, a preview link and the game URL. |
Your games
| Tool | What it does |
|---|---|
list_my_games | Your games in every status, with their latest version. |
get_game | Every editable field of one of your games, or the public page of anyone's game. |
get_game_files | Lists or reads the source files of a version, so the agent can keep working on a game. |
update_game | Title, tagline, description, category, tags, orientation, controls, run length, remix licence, leaderboard, published or draft. |
unpublish_game | Hides a game. It stays in My games and can be published again. |
Store art
| Tool | What it does |
|---|---|
list_thumbnail_designs | The ready-made thumbnail styles, colour themes and modes, the same ones as the picker on the publish and edit pages. |
make_thumbnail | Makes the cover and card from a ready-made design, or from the agent's own HTML design. Renders in 1 to 3 minutes. |
get_thumbnail_status | Whether a thumbnail is still rendering, done (with the new images) or failed. |
create_art_upload | An upload URL on habiv.com for an image the agent made or generated. |
set_game_art | Sets the cover (16:9) or card (3:4) from an uploaded file, a public image URL or base64. PNG, JPEG or WebP. |
Versions
| Tool | What it does |
|---|---|
list_versions | Every version, newest first, with status, changelog and which one is live. |
publish_version | Makes a specific ready version live. Use it to roll back. |
update_version | Edits a version's changelog, prompt, model or tool. |
delete_version | Deletes a version that isn't live, with its files. Players open older versions from the game page until then. |
Limits
| What | Limit |
|---|---|
| Inline files in publish_game | Up to 40 files, 3 MB in total |
| bundle_url | A public https .zip or .html, up to 25 MB |
| create_upload | Up to 50 MB. One PUT under 20 MB, 8 MB parts above that |
| Publishing | 20 publishes per hour per connection |
| get_game_files | 512 KB per file, 2 MB per call. Images, audio and engine builds come back as links |
| set_game_art | 3 MB image, PNG, JPEG or WebP |
| make_thumbnail | 10 per hour |
| Upload URLs on habiv.com | 4 MB per file; bigger bundles get a direct storage URL |
Builds follow the same rules as web uploads: an index.html at the root, local assets, 1,000 files and 300 MB unzipped. See what a build looks like.
Tokens for scripts
Agents should use the browser sign-in. For CI jobs and your own scripts, create a personal token in Settings → Connect AI. It's shown only once. Send it with every request:
Authorization: Bearer hbv_live_…Any MCP client library works: point it at https://habiv.com/api/mcp with that header. Browser sign-ins and tokens are listed together in Settings, and you can revoke either at any time.
Troubleshooting
- The Habiv tools don't show up. Restart your agent after adding the server. In Claude Code, run
/mcpand check that habiv is connected. - “unauthorized”. The sign-in expired or the connection was revoked. Authenticate again from
/mcp, or runcodex mcp login habiv. - “rejected”.
get_publish_statusgives the reason, such as noindex.html, anhttp://file, or too many files. Fix it and publish again. - “rate_limited”. You hit 20 publishes in an hour. Wait a little and try again.
- Runs stay at 0. Counts refresh every few minutes, and plays on drafts don't count. See how runs work.