
Minit MCP Server
Give your AI assistant a direct line to the Minit Games platform: it can build and upload Games, publish and schedule Posts, enter events and game jams, track how your Posts perform, and ship new revisions, all from a single conversation.
What is the Minit MCP server
A remote Model Context Protocol endpoint at https://mcp.minit.games/mcp. It gives your assistant the creator workflow of the Studio:
- Build: platform requirements, SDK docs, starter game scaffolding, build validation, and a free asset library.
- Ship: upload bundles as Games, create and test draft Posts, publish or schedule them, enter events.
- Monitor: your Posts by status, analytics, activity, and notifications.
- Iterate: upload new builds, manage Game revisions, and mod other creators' Posts.
Every tool requires sign-in; there are no anonymous tools. Your assistant's first connection starts a one-time browser sign-in (see First-run authentication).
Connecting
Claude Code
The Minit Claude Code plugin bundles this server along with the Minit skill: run /plugin marketplace add Minit-Games/minit-skills, then /plugin install minit@minit. Without the plugin, add the server yourself:
- Add the server from your terminal:
claude mcp add --transport http minit https://mcp.minit.games/mcp
- By default the server is added for the current project only (
--scope local). Add--scope userto use it in all your projects. - Start Claude Code, run
/mcp, selectminit, and authenticate. Sign-in opens in your browser.
Codex
- Add the server from your terminal:
codex mcp add minit --url https://mcp.minit.games/mcp
- Run
codex mcp login minit. Sign-in opens in your browser.
Cursor
Add the server to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json in your project (that project only):
{
"mcpServers": {
"minit": {
"url": "https://mcp.minit.games/mcp"
}
}
}
VS Code
Add the server to .vscode/mcp.json in your workspace, then use the tools from Copilot Chat in agent mode:
{
"servers": {
"minit": {
"type": "http",
"url": "https://mcp.minit.games/mcp"
}
}
}
Other assistants
Any MCP-capable tool works: add https://mcp.minit.games/mcp as a remote HTTP MCP server. Look for "MCP servers", "connectors", or "integrations" in its settings. Two things every setup shares:
- The URL must include the
/mcppath. - No API key or config secret: sign-in happens in the browser the first time your assistant connects.
Uploads need a shell
The upload tools (minit_create_game, minit_upload_game_bundle, minit_upload_profile_picture) return a short-lived upload URL. Your assistant then sends the ZIP or image from your machine itself, for example with curl.
- Uploading needs an assistant that can run shell commands: Claude Code, Codex, Cursor, or VS Code in agent mode.
- Chat-only assistants can use every read and manage tool, but cannot upload.
First-run authentication
The first time your assistant connects:
- Your assistant opens a browser window pointing to
https://mcp.minit.games/oauth/authorize?... - The Minit MCP server redirects to the Studio at
https://minit.studio/mcp/authorize - Not signed in to the Studio? You're sent to the login page, then returned automatically
- The page shows which assistant is asking, the account it will act as, and what it can do. Choose Approve to connect, or Deny to cancel
- The browser redirects back to your assistant, which finishes connecting
A session ends after 7 days without use, and at the latest 30 days after sign-in; after that the same flow repeats.
Creator access required. Without creator tier access, the authorization page shows a "Creator access required" message with a link to apply. Once upgraded, repeat the tool call.
What your role allows. minit_whoami shows the account and role your assistant acts as.
- A
guestaccount can create Posts and mods, but not publish, schedule, delete, or preview them. - Notifications need the approved creator tier.
Tool reference
Account and health
minit_ping: checks the connection; returnspong.minit_whoami: the signed-in account's ID, tag, name, and role.minit_get_my_profile: your full profile: level, XP, bio, profile picture, time zone, and email.minit_update_my_profile: changes your name (3–50 characters) or bio (up to 160 characters; empty clears it).minit_upload_profile_picture: pass the image size in bytes (max 10 MB); returns an upload URL. Upload within 2 minutes, then checkminit_get_upload_status.minit_get_user: any creator's public profile by user ID.minit_get_my_stats: your lifetime totals: published Posts, views, plays, and cheers.minit_get_my_activity: your activity feed: Posts going live, play milestones, new followers, and cheers received.
Build and validate
minit_get_requirements: the full, up-to-date platform rules, matching Platform Requirements.minit_get_sdk_reference: the complete@minit-games/sdkAPI reference with signatures and examples.minit_scaffold_game: a ready-to-run starter game forvanilla,phaser,pixi, orthree, withindex.html, SDK wiring, and anAGENTS.mdplus aCLAUDE.mdthat point your assistant at the Minit skill.minit_validate_build: checks a bundle (ZIP or inline file map) against platform rules and returns errors, warnings, and info items, includingmeta.jsonlicense checks. Run it before uploading.
Assets
minit_search_assets: searches free game assets (3D models, sound effects, music, fonts) by keyword, type, or tag. Each result carries its license and attribution; see Licensing third-party content.minit_get_asset: one asset by the ID from a search result.minit_generate_sfx: generates a short retro sound effect from a preset (pickup,laser,explosion,powerup,hit,jump,blip). Free to use (CC0); the same inputs always give the same sound.
Upload and Games
minit_create_game: pass your ZIP's size in bytes (max 50 MB); returns anartifactIdand an upload URL. Uploading the ZIP creates the Game asynchronously from itsmeta.json. No Post is created.minit_upload_game_bundle: a new build of an existing Game. Pass the Game ID (or one of its Post IDs) and the ZIP's size in bytes; returns an upload URL and anartifactId.minit_get_upload_status: pass theartifactId; returns astatus(pending,processing,completed,failed) and amessage. Your assistant waits 10 seconds after uploading, then polls untilcompletedorfailed.completedis the only readiness signal.minit_list_upload_history: a Game's uploads, newest first; a failed upload's message says why.minit_list_games/minit_get_game: your Games, or one Game's title, description, config,resultType/resultReverseSorting, and revision IDs (liveRevisionId,currentRevisionId,draftRevisionId).minit_get_game_counts: how many of your Games are live, scheduled, unlisted, or disabled.minit_update_game: updates Game-level fields: title, description and their translations, config definitions,resultType,resultReverseSorting, tags, license, credits, and source URL.minit_translate_game: machine-translates a title and/or description into another language (pass at least one). It does not save anything; store the result withminit_update_game.minit_delete_game: deletes a whole Game. It unschedules its scheduled Posts and deletes its drafts, including other creators' mods. With no live Posts left, the Game is gone for good; live Posts are taken down. Use with care.minit_get_moddable_assets: the files in a Game's bundle and which of them are declared as moddable slots.minit_commit_moddable_assets: saves a Game's moddable slots. It replaces the whole set, so include every slot you want to keep.
Posts: create, test, publish
minit_create_post: creates a draft Post from a Game and returns itsstudioUrl, the Post's page in the Studio. Passrevisionto post from a specific Game revision; without it the Post uses the current one.minit_get_post_preview_link: a link to play a draft Post on your phone, the same as the draft's QR code in the Studio. Opens the Minit Games app when installed, otherwise the web play page. Expires after 15 minutes; call again for a fresh one. For a published Post it returns the public play link.minit_update_post: updates config values, caption (1–80 characters), or pinnedrevisionof a draft Post. Not callable on a published Post.minit_publish: publishes a draft Post immediately, or submits it to an event witheventId.minit_schedule_post: schedules a processed Post. Pass the Post ID and a time in the future and within 4 weeks: epoch milliseconds (Date.now()-style), an ISO date, or a duration like12hor2d. PasseventIdinstead of a time to submit it to an event.minit_unschedule_post: cancels a pending publish schedule; the Post returns to draft.minit_delete_post: permanently deletes one of your own draft Posts.
Events and game jams
minit_list_post_targets: the events open for your submissions right now, and whether you already submitted.minit_list_events: public events, active by default; ask for finished ones too.minit_get_event: one event's details.minit_list_my_event_submissions: your Posts submitted to an event, optionally by status (scheduling,scheduled,published).
Monitoring
minit_list_posts: your Posts, newest first, one status per call:published(the default),scheduling,scheduled,draft,publishing, ordisabled. Disabled Posts include the reason. Optionally narrows to one Game or one event; takes a limit (default 50, max 100).minit_get_post: full state of one Post: status, pinned revision, scheduled publish time, config, screenshot and thumbnail URLs. Ask for stats to add views, plays, and cheers.minit_get_post_counts: how many of your Posts are in each status, overall or for one Game.minit_list_game_posts: every Post of one Game, including unpublished ones, optionally for one revision.minit_get_post_analytics: daily analytics for one Post, up to 92 days per request.minit_get_game_analytics: daily analytics for one Game, up to 92 days per request, optionally split by revision.minit_get_creator_analytics: analytics across all your Posts: daily (up to 92 days) or hourly (up to 72 hours).minit_get_post_activity: one Post's activity feed.minit_list_notifications: your Studio notifications and unread count. Needs the approved creator tier.minit_mark_notification_read: marks one notification as read. Needs the approved creator tier.
Iteration and revisions
Every Post is pinned to one Game revision. A new build replaces a Game's unlocked draft revision in place; once the current revision is locked, it creates a new draft revision.
minit_list_game_revisions: every revision of a Game with its status and whether you can post or superpost from it.minit_get_game_revision: one revision in full.minit_rename_game_revision: names a revision (up to 50 characters).minit_discard_game_revision: discards a draft revision that is not yet locked and not the current one.minit_disable_game_revision: permanently closes a locked revision to new Posts; its existing Posts stay live.minit_set_game_revision_superposting: enables or revokes superposting from a revision. Revoking is permanent.minit_update_postwithrevision: re-pins a draft Post to another revision. Sendrevisionon its own, without config or caption.
Mods
minit_list_moddable_posts: published Posts by other creators that you can mod, or recommendations for you.minit_create_mod: creates a draft mod from a published parent Post (postId), optionally with your own config values. Finish it withminit_update_post, then publish.
Results and meta.json
- Time results are in seconds (fractions allowed), not milliseconds.
- On a Game's first upload,
meta.jsonresultSortingsets itsresultTypeandresultReverseSorting.resultType/resultReverseSortingkeys inmeta.jsonare ignored.
resultSorting | resultType | resultReverseSorting |
|---|---|---|
highestScore | score | false |
lowestScore | score | true |
fastestTime | time | true |
slowestTime | time | false |
resultReverseSortingsets the ranking direction, notresultType. Change either withminit_update_gameuntil the Game's first publish; after that they are locked.- Re-uploads via
minit_upload_game_bundleignoremeta.jsontitle,description,controls,logic, andresultSorting. Change the title and description withminit_update_game(the title only until the Game's first publish);controlsandlogiclive inside the description as[controls]…[/controls]and[logic]…[/logic]blocks.
Quickstart: create and schedule your first Post from Claude
Paste these in sequence in any assistant connected to the server.
Step 1: Build the game
Use the Minit MCP to get the platform requirements and SDK reference,
then scaffold a new Phaser game called "color-tap". Build a simple
tap-timing game where the player taps circles that match the target color.
The game lasts 60 seconds and ends with a final score. Any number
works; higher is better.
Step 2: Validate the build
Validate my color-tap build against the Minit Games platform rules.
Fix any errors the validator returns.
Step 3: Upload the Game and create a draft
Set the color-tap meta.json title to "Color Tap", the description to
"Tap the matching color before time runs out.", and resultSorting to
"highestScore". Upload the ZIP as a new Game, wait until its upload
status is completed, then create a draft Post from the Game.
Step 4: Test it
Give me the Studio link and a phone preview link for the Color Tap Post.
Open the Studio link while signed in to try it in the device preview; open the preview link on your phone within 15 minutes.
Step 5: Schedule to publish
Schedule the Color Tap Post to publish tomorrow at noon UTC.
To go live right away, ask your assistant to publish it instead.
Enter an event or game jam
minit_list_post_targetslists the events open for your submissions.- Pass the event's ID as
eventIdtominit_publishorminit_schedule_post. Each event takes one Post per creator. - The Post goes live when the event's submission phase ends.
- Check your entry with
minit_list_my_event_submissions.
Which events can I submit to right now? Submit my Color Tap draft
to the open game jam, then show me my submissions for it.
Monitor your Posts
- By status:
minit_list_postslists one status per call;minit_get_post_countsgives the totals. Checkdisabledto see which Posts were taken down and why. - Performance:
minit_get_post_analytics,minit_get_game_analytics, andminit_get_creator_analyticsfor daily numbers;minit_get_creator_analyticshourly for the last 72 hours. - What happened:
minit_get_post_activityfor one Post,minit_get_my_activityfor your account,minit_list_notificationsfor Studio notifications.
List my disabled Posts with their reasons, then compare daily plays
and views for my published Posts over the last 7 days, with each
Post's total cheers so far.
Ship a new revision
- Upload the new build with
minit_upload_game_bundleand wait forminit_get_upload_statusto reportcompleted. - Read
draftRevisionIdfromminit_get_game. - Create a Post from it with
minit_create_postandrevisionset to that ID, or re-pin an existing draft withminit_update_postrevision. - Test and publish as in the Quickstart.
Manage revisions along the way:
- Name a revision with
minit_rename_game_revision. - Throw away an unlocked draft with
minit_discard_game_revision. - Stop new Posts from an old revision with
minit_disable_game_revision. - Withdraw superposting with
minit_set_game_revision_superposting; revoking cannot be undone.
Upload my updated color-tap ZIP as a new build of the Color Tap Game.
When it's completed, create a draft Post from the new draft revision
and give me a phone preview link.
Mod another creator's Post
minit_list_moddable_postsfinds published Posts you can mod.minit_create_modwith the parent'spostIdcreates your draft mod.- Adjust its config values with
minit_update_post, then publish or schedule it.
Find a moddable Post I might like, show me its config values,
create a mod of it with my own values, and publish it.
Troubleshooting
- Browser does not open during sign-in: look for a URL starting with
https://mcp.minit.games/oauth/authorizein your assistant's output and open it manually. - "Creator access required": request an upgrade via the link on the authorization page, then repeat the tool call.
- Token expired: a session ends after 7 days without use, and at the latest 30 days after sign-in; the one-time browser flow repeats. Expected.
- 403 on publish, schedule, delete, or preview: your account is a
guest;minit_whoamishows the role. - "Requires approved creator tier" on notifications: notifications are only available to approved creators.
- Assistant cannot upload: it needs to run shell commands; use Claude Code, Codex, Cursor, or VS Code in agent mode.
- Upload fails or times out: check the ZIP against
minit_validate_build. Upload URLs are short-lived; callminit_create_game(new Game) orminit_upload_game_bundle(new build) again for a fresh one. - Upload status stays
pendingorprocessing: it usually reachescompletedwithin 30 seconds; your assistant gives up after about 2 minutes. If it never completes, contact support. - Upload status is
failed: itsmessagesays why; fix the ZIP and upload again.minit_list_upload_historyshows earlier attempts. - Draft screenshot or thumbnail returns 403: expected; they are generated only once the Post is scheduled or published, unless the Game has a cover image.
- "URL not found" connection error: the configured URL must include the
/mcppath. - "Post not found": wrong ID or another account's Post; use
minit_list_poststo find the right one.