Multiplayer Agent
by multiplayeragent.com in Search & web
Make any browser game multiplayer and host it at a share link. No account needed to start.
https://api.multiplayeragent.com/mcp?src=registry- Tools
- 26
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 597 ms
- 688 ms slowest 5%
- Last check
- Passed
- 6 min ago, next in 5 h
This listing's own text contains instructions aimed at AI agents (see the security scan below). We withhold that text from agents and never recommend this service.
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"multiplayer-agent": {
"type": "http",
"url": "https://api.multiplayeragent.com/mcp?src=registry"
}
}
}26 tools
- create_game
Mint 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_games
List 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_name
Set 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_type
Create or replace the spec for a room (validation/types/defaults). Returns connection info. Omit fields entirely for a fully schemaless room.
- get_connection_info
Returns { 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_snippet
Returns a complete single-file HTML game wired to this room: realtime movement plus an anonymous (claimable) player, a saved color (datastore), and a click leaderboard. Write it to disk and open it. The game it is wired to is stamped in a comment at the top of the file.
- deploy_room_logic
Deploy 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)…
- list_room_logic
Returns the deploy history (version, tickRate, bytes, deployedAt) for a room's authoritative logic, newest first.
- rollback_room_logic
Roll 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_logs
Returns 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_ops
Read 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…
- set_live_config
Set 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_event
Schedule (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…
- cancel_live_event
Delete 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_webhook
Set 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…
- get_sdk_reference
Returns 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…
- set_player_scope
Choose 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_provider
Let 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…
- list_login_providers
List 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_token
Check 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_upload
Upload 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_game
Host 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…
- list_starters
List the starter games: ready-made multiplayer games (many built in Multiplayer Agent's videos) to begin from with remix_game. Each shows its slug, title, summary, the video it came from, whether it's premium, and whether THIS studio has it unlocked (free starters: everyone…
- remix_game
Start 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…
- connect_account
Connect 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…
- claim_studio
This 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…
Security scan
1 finding
- Asks the agent to hide things from the user in instructions
out runs on the platform's account), so never tell the user to set up Stripe; a 503 means payments are off on that server (local/self-hosted
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 6 min ago | Passed | 200 | 597 ms |
| 11 h ago | Passed | 200 | 581 ms |
| 22 h ago | Passed | 200 | 588 ms |
| 34 h ago | Passed | 200 | 679 ms |
| 45 h ago | Passed | 200 | 608 ms |
Show 10 older checks
| 2 days ago | Passed | 200 | 541 ms |
| 3 days ago | Passed | 200 | 627 ms |
| 4 days ago | Passed | 200 | 659 ms |
| 4 days ago | Passed | 200 | 553 ms |
| 5 days ago | Passed | 200 | 519 ms |
| 5 days ago | Passed | 200 | 615 ms |
| 6 days ago | Passed | 200 | 608 ms |
| 7 days ago | Passed | 200 | 585 ms |
| 7 days ago | Passed | 200 | 593 ms |
| 7 days ago | Passed | 200 | 601 ms |