antics-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Multiplayer for your game, in one prompt.** An MCP server
that lets an AI agent generate a web game and deploy it to a **playable multiplayer URL** —
rooms, live state sync, and leaderboards — inside a single conversation.
AI can write a whole game — a single HTML file or a multi-file project — but it can't stand up
a server, so everything it builds is single-player. antics-mcp is the missing piece: your
agent writes the game, calls one tool, and hands you back a link your friends can open. No
backend, no player accounts.
→ antics.gg · full API in one file: antics.gg/llms.txt
Install
**Claude Code:**
**Claude Desktop / Cursor / any MCP client** — add to your MCP config
(claude_desktop_config.json, Cursor's mcp.json, etc.):
Then just ask: *“Make a 2-player game and deploy it.”* The agent writes it, calls deploy_game,
and returns a playable URL — no copy-paste, no site visit, no login.
Tools
| Tool | What it does | Login? |
|------|--------------|--------|
| **deploy_game** | Deploy a game (html for a single file, or files for a multi-file project) → returns a playable multiplayer URL. Keyless (ephemeral room) unless given a projectId. | No |
| **create_project** | Create a project; returns its id, publishable key (pk_), and secret key (sk_, shown once). | Yes |
| **get_leaderboard** | Read a project's leaderboard (top scores). | Yes |
| **list_projects** | List your projects. | Yes |
| **set_share_preview** | Brand how a project's room links unfurl on social — title, description, and image. | Yes |
deploy_game works **without any login** — it returns an ephemeral, keyless URL you can share
immediately (rooms hold 8 players and last 24h). To persist links + leaderboards and raise the
limits, sign in once with npx antics-cli login (GitHub), then the owner-scoped tools unlock and
deploy_game can target a project.
How the multiplayer works
Your agent doesn't need to know any of this up front — antics.gg/llms.txt
is the complete API in one file, written so an LLM can integrate it one-shot. In brief: a game
calls joinRoom({}), shared room state is host-authoritative with per-player slices, writes