Make any browser game multiplayer and host it at a share link. No account needed to start.
Connect Remote server
claude mcp add --transport http multiplayer-agent https://api.multiplayeragent.com/mcp?src=registry --header "Authorization: Bearer <YOUR_API_KEY>"
{
"mcpServers": {
"multiplayer-agent": {
"url": "https://api.multiplayeragent.com/mcp?src=registry",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
{
"servers": {
"multiplayer-agent": {
"type": "http",
"url": "https://api.multiplayeragent.com/mcp?src=registry",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
Settings > Connectors > Add custom connector
URL: https://api.multiplayeragent.com/mcp?src=registry
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools 26 found in our last check
create_gameMint a new game (publishable key) under your studio (secret key). Returns its publishableKey + wsEndpoint. Point a client at the new key, or scope this MCP to it by passing the x-mp-game header.
list_gamesList the games (publishable keys) under your studio, with labels and per-game settings. Marks which game is `primary` (the one unnamed calls fall back to) and which one this connection is currently pointed at.
set_game_nameSet a human-readable name for a game (the `game` argument, else the x-mp-game header, else your only game). The name shows in your dashboard: call this when you start building so the game isn't unnamed. Refuses to guess when the studio has several games and none was named.
define_room_typeCreate or replace the spec for a room (validation/types/defaults). Returns connection info. Omit fields entirely for a fully schemaless room.
get_connection_infoReturns { wsEndpoint, roomName, publishableKey, adsPublisherId } for wiring a client. adsPublisherId is your BYO Google Ads id (embed it if set). Check the returned `target` names the game you meant before shipping the key.
get_client_snippetReturns a complete client wired to this room. platform "web" (default): a single-file HTML game with realtime movement plus an anonymous (claimable) player, a saved color (datastore), and a click leaderboard; write it to disk and open it. platform "unity": one drop-in C# script…
deploy_room_logicDeploy server-side game logic (JS source) for a room so it runs AUTHORITATIVELY: clients send inputs and the server computes state on a tick (anti-cheat by construction). Define handlers as functions over a global `state` (RoomStateView shape): onJoin(id), onLeave(id), onInput(i…
list_room_logicReturns the deploy history (version, tickRate, bytes, deployedAt) for a room's authoritative logic, newest first.
rollback_room_logicRoll a room's authoritative logic back to a prior version by re-deploying it as a new version (history stays intact). Omit toVersion to restore the previous version.
get_room_logsReturns recent runtime errors from a room's deployed logic (newest first), so you can self-fix after a deploy without joining the room. Errors also surface in state.shared.__error.
get_live_opsRead a game's live ops: `now` (what players see right now: the merged config plus active and upcoming events), the base config, every scheduled event with its status (active / upcoming / ended), the highlight webhook (masked) and the 20 latest highlights with how each was delive…
set_live_configSet the game's live config: any JSON the game reads at runtime (drop rates, prices, difficulty, a banner, feature switches). It reaches rooms that are already running within ~15 seconds, with no redeploy and nobody disconnected; clients read it as mp.live.config, server logic as…
schedule_live_eventSchedule (or, with an existing id, edit) a timed event: a window, optionally repeating daily or weekly, optionally limited to some rooms, carrying config overrides that apply only while it runs. It starts and ends on time in rooms that are already running, as data: nobody is kic…
cancel_live_eventDelete a scheduled event. If it is running, it ends in running rooms within ~15 seconds (its config overrides drop away; server logic gets onLiveOps with it in change.ended). To end it early but keep it listed, schedule the same id again with endsAt set to the current time.
set_highlight_webhookSet where the game's highlights post: a Discord channel webhook (Server Settings → Integrations → Webhooks → Copy URL) or a Slack incoming webhook. Server logic posts with highlight(type, text, data), e.g. highlight("hard-clear", "Mia cleared Level 9 on one life"); the server de…
get_sdk_referenceReturns the full SDK reference (markdown) wired to ONE game's key/endpoints: realtime rooms, player identity (anonymous + claim/login), the datastore (saves/stats/inventory), leaderboards, player-created content (level sharing / UGC), durable shared MATCHES for asynchronous turn…
set_player_scopeChoose whether players (and their data/leaderboards) are shared across all of your games ('account', the default) or isolated to one game ('project'). Set this ONCE at setup: it locks as soon as the game has any players, because changing it would split existing players and their…
enable_login_providerLet players sign in with a portal or federated account via player.loginExternal({ provider, token }). Self-serve providers: 'wavedash' (games on wavedash.com; token = (await Wavedash.getUserJwt()).data) and 'google' (Google Identity Services; token = the GIS ID-token credential)…
list_login_providersList the external login providers enabled on a game (names only, never secrets). selfServe=true ones you can reconfigure with enable_login_provider; the rest are operator-managed.
verify_login_tokenCheck a real provider token against the game's login config exactly as player.loginExternal would, WITHOUT creating or linking a player. Returns { ok, uid, username, claims } or { ok: false, error }. Use it to confirm a provider works end to end, and to read what a token carries…
create_uploadUpload files straight from disk instead of pasting their bytes into a tool call: for images, audio, fonts, 3D models, and ANY file over ~50 KB (a tool call can't carry megabytes of base64). Give each file's hosted path and exact size in bytes; get back one URL per file. PUT each…
publish_gameHost the game's files at a public share link, https://<slug>.play.multiplayeragent.com/ (the game's own origin; the slug comes from the game's name and never changes). The game needs an index.html at the root plus any JS/CSS/assets, paths relative to it. Send small text files (H…
list_startersList the starter games: 180+ ready-made multiplayer games across every genre (the ones built in Multiplayer Agent's videos come first) to begin from with remix_game. Each shows its slug, title, summary, the video it came from if it has one, whether it's premium, and whether THIS…
remix_gameStart from a starter game (see list_starters): makes a NEW game in this studio (or, with `game`, reuses one of yours) and returns a link to the starter's source as a ZIP, valid for 5 minutes, plus the steps to unpack it, rewire it to the new game's publishable key, and publish i…
connect_accountConnect this keyless session to the user's own account, the way `gh auth login` works. Ask for their email first and pass it (it prefills the page). Returns a one-time url and a code: open the url in their browser yourself and tell them the code. They sign up or log in ON THE PA…
claim_studioThis connection has no account: it builds into an unclaimed studio. Returns the claim link to give the user (a free sign-up or log-in that moves the studio's games into their own account), when the studio expires, and whether it has been claimed already. connect_account is the b…
Headers
| Name | Description |
|---|---|
AuthorizationOptional, secret | Optional. Bearer <secret key>: the studio secret key, starting sk_, from https://multiplayeragent.com/dashboard/key. Without it, the agent connects the session to an account through a browser sign-in, or builds in an unclaimed studio. |
Details
| Endpoint | https://api.multiplayeragent.com/mcp?src=registry (Streamable HTTP) |
| First published | 28 Oct 2026 |
| Last updated | 28 Oct 2026 |
| Registry name | com.multiplayeragent/multiplayer-agent |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
