Origin MCP
Origin MCP brings Origin's platform tools (media generation, game publishing, characters and discussions, the asset library, the knowledge base, analytics) into your agent with one address and a browser sign-in.
Address
The Origin MCP address is https://mcp.origingame.ai/mcp. It is a remote MCP server (Streamable HTTP), named origin in your client. Connecting Origin MCP and publishing games are free; generating images, audio, video and 3D is charged to your Origin balance at each model's price.
Origin MCP offers platform tools only, no model or chat tool. To have your agent use Origin's models, see Connect your agent and the model API.
Install in your client
Pick your client and follow its steps to add the address and sign in. Every client takes three steps: add the address, sign in to Origin in the browser, start using it.
Step 1 ·Add Origin
Run this in a terminal to add Origin MCP for all your projects.
claude mcp add --transport http --scope user origin https://mcp.origingame.ai/mcpStep 2 ·Sign in in the browser
Start Claude Code, type /mcp, select origin and choose Authenticate. The browser opens Origin’s sign-in page; sign in and approve.
/mcpStep 3 ·Start using it
Type /mcp again; once origin shows connected, ask for what you want in plain words.
The full step-by-step guides with copyable commands are on the Origin MCP page. To set up several agents at once, use the installer in a terminal, or Origin Kit for a graphical app or on Windows.
Once connected, your agent shows origin and its tools, and you can ask in plain language, for example "Use Origin to generate a 16:9 pixel-art forest level background, then a main character portrait on a transparent background".
Sign-in and authorization
Browser sign-in
Origin MCP is an OAuth 2.1 protected resource, so a client that supports remote MCP sign-in needs only the address:
- A request without sign-in gets 401, and its
WWW-Authenticateheader points tohttps://mcp.origingame.ai/.well-known/oauth-protected-resource. - That metadata names the authorization server
https://origingame.ai/identity/v1and the scopescreate:readandcreate:write. - The client opens the browser with PKCE; you sign in to Origin and approve.
- The client receives a short-lived access token (valid for one hour) and renews it itself.
| Scope | Allows |
|---|---|
create:read | Reads: discovery, status, your games, releases, tasks, assets and analytics |
create:write | Everything in create:read, plus billable generation and publishing writes |
A call that needs a scope the grant lacks answers 403 insufficient_scope; approve the larger scope in your client rather than switching credentials.
Headless use
CI, scripts and clients without OAuth send an account API token (starts with og-, created under Access) or a device credential in the Authorization header:
claude mcp add --transport http --scope user origin https://mcp.origingame.ai/mcp \ --header "Authorization: Bearer $OG_API_KEY"
Other clients set the same header, Authorization: Bearer og-..., in their remote server configuration. Never put the token in prompts, project files, URLs or game code. The installer and Origin Kit set up a revocable device credential only for agents that cannot sign in through the browser.
Revoke access
On the Access page, agents that signed in through the browser appear under "Connected apps" with their permissions and last use; clients set up with a device sign-in appear under "Signed-in devices". Revoking one leaves your other agents and your account API token untouched.
How the tools are organized
Origin MCP lists three discovery tools first, then every operation as its own typed tool:
docs: browse, search and read the public guides page by page.search: find operations by domain, name or keyword; returns the current input schema, the effect (read,writeorbillable) and the related guide.execute: compose several operations in one bounded run withorigin.call(name, args).operationslists the operations this run may call; it is not proof that the user approved them.
Clients with tool search can call an operation such as generate_image directly; other clients compose operations through execute. Both paths run the same handlers, permission checks and audit. Example execute arguments:
{
"operations": ["deploy_list"],
"code": "async () => await origin.call('deploy_list', {})"
} Read an operation's actual schema with search before calling it; don't guess parameter names from a guide. Irreversible operations such as deploy_delete, deploy_discard_release and game_leaderboard_reset carry destructiveHint, so clients should confirm them with you first.
Domains
| Domain | Covers | Example tools |
|---|---|---|
generate | Image, music, sound effect, speech, video, 3D and motion generation; balance and usage | generate_image, image_cutout, generate_music, generate_video, generate_3d, generate_balance |
deploy | Publishing and updating games, release rollback, storefront artwork, operating live games, a starter project | deploy_create, deploy_update, deploy_status, deploy_releases, deploy_generate_artwork, sdk_scaffold |
universe | Public search, characters, remixes and lineage, channels, discussions | universe_search, character_create, game_remix, channel_create, discussion_post |
aigcc | Cover, upload and publication of an AIGCC event entry | aigcc_begin, aigcc_generate_cover, aigcc_publish, aigcc_status |
assets | Search and download images, 3D, audio, HDR and fonts from the asset library | assets_search, assets_search_3d, assets_detail, assets_download |
knowledge | Sourced gameplay and genre design knowledge | gameplay_search, gameplay_get, genre_browse, concept_compare |
registry | Reusable code modules | registry_search, registry_list, registry_get |
analytics | Account-scoped game funnels, version comparisons and workflow run analysis (read-only) | analytics_game_funnel, analytics_compare_game_versions, analytics_run_summary |
The complete, current list of operations is whatever search returns. When a domain is temporarily unavailable, search names it in unavailable instead of returning empty results.
Guides
docs({ id }) reads one of these guides; docs({}) lists them all and docs({ query: "upload" }) searches by keyword.
| id | Covers |
|---|---|
onboarding | Connect and authenticate |
credentials | OAuth sign-in and scopes, keys for headless use, billing reads |
unified-tools | Use docs, search and execute |
game-development | Develop a game that deploys cleanly |
sdk | Player protocol 2: talk to the Player |
local-files | Local files, uploads, downloads and the optional CLI |
assets | Find and install assets |
generation | Generate media and resume jobs |
publishing | Publish and recover releases |
universe | Characters, remix, discovery and discussion |
aigcc | Publish an AIGCC event entry |
knowledge-registry | Research game design and reuse code |
analytics | Read game and workflow analytics |
troubleshooting | Diagnose connections and recover safely |
Long jobs
For a client that declares the MCP Tasks extension (io.modelcontextprotocol/tasks), a direct call of generate_video, generate_3d, generate_tripo_3d, generate_speech, generate_motion, deploy_create or deploy_update that starts a new job answers with a task handle instead of the job's first status.
- Poll with
tasks/getevery 2 to 10 seconds (follow the returnedpollIntervalMs); a handle is valid for 24 hours. - When the job is done,
tasks/getreturns the same result as the synchronous status call, media included. - Clients without the extension check jobs with
generate_get_tasksor wait withgenerate_wait_tasks(up to 30 seconds per call). - Calls inside
executeandaigcc_publishare always synchronous.
Limits
execute runs in an isolated sandbox with no filesystem, network or credentials:
| Item | Limit |
|---|---|
| Code size | 32 KB |
| Operation calls per run | 32 |
| Each operation argument or result | 1 MB of JSON |
| Final returned JSON | 256 KB |
| Sandbox memory | 32 MiB |
| Execution time | 2 seconds of active execution, 10 minutes elapsed |
Don't inline build ZIPs or large images into code; use the upload flow in the local-files guide. Stopping the sandbox does not undo a write that already started: each returned call is marked started, completed, failed or unknown, so check the state before retrying.
Legacy per-domain endpoints
/generate/mcp, /deploy/mcp, /aigcc/mcp, /knowledge/mcp and /registry/mcp on mcp.origingame.ai are deprecated in favour of /mcp. Until 2026-12-31 they keep working, and every response carries Deprecation, Sunset and a Link header pointing to https://mcp.origingame.ai/mcp; after that they answer HTTP 410 (endpoint_retired). Access tokens from browser sign-in work on /mcp only.
If your agent still has origin-assets, origin-generate, origin-deploy, origin-aigcc, origin-knowledge or origin-registry, re-run the installer: it removes the old entries it wrote and keeps only origin.
Troubleshooting
| What you see | What to do |
|---|---|
| The browser sign-in does not open | Start it by hand: /mcp then Authenticate in Claude Code, codex mcp login origin for Codex, Connect in Cursor's MCP settings. If it still fails, check that your default browser opens origingame.ai and update the agent to its latest version. |
| 401, invalid or revoked token | Sign in again with the right account, or reconnect through the installer or Origin Kit. Don't extract credentials from another program's configuration. |
| 503 Identity unavailable | Credential verification is temporarily down; the credential is not revoked. Try again later. |
| 403 | Check the account and who owns the target game; insufficient_scope means you need to approve a larger scope. |
429 rate_limited | Wait Retry-After seconds, then repeat only reads or calls marked retryable. |
unavailable in a search result is not empty | That domain is temporarily unavailable; discover again later and don't repeat a billable operation because of it. |
outcome_unknown | The write or charge may have happened. Check its state with the saved ID (for example deploy_status, generate_get_tasks) before anything else; never retry blindly. |
| Old and new tool names both appear | Re-run the installer; it removes the old entries and reports any it kept. |
When you contact support, include the operation name, the time, the task or operation ID and the HTTP status; never include tokens, cookies or signed URLs.