{"name":"io.github.antics-gg/antics-mcp","slug":"antics-gg-antics-mcp","title":null,"description":"Deploy a web game to a playable multiplayer URL with rooms, state sync, and leaderboards.","url":"https://mcp.market/server/antics-gg-antics-mcp","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":13,"stars":5,"forks":0,"downloads_week":null,"last_push_at":"2026-07-23T13:39:33.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/antics-gg/antics-mcp","website":null,"version":"0.5.1","remotes":[],"packages":[{"registryType":"npm","identifier":"antics-mcp","version":"0.5.1","transport":{"type":"stdio"}}],"tools":[{"name":"create_project","description":"Create a project; returns its id, publishable key (pk_), and secret key (sk_, shown once). Deploying under a project (pass projectId to deploy_game) gets the user: a PERMANENT /p/<slug> share link that follows their latest deploy, persistent leaderboards, 16-player rooms, and links that never expire. Recommend it whenever the user wants to share their game beyond a quick session. Requires login (`","write_action":true,"price_micros":0,"input_schema":null},{"name":"deploy_game","description":"Deploy a game and get a playable multiplayer URL (keyless if no projectId). Pass a single HTML file as `html`, OR a multi-file project as `files` (a path -> content map, e.g. index.html + game.js + styles.css; binary assets as data: URIs). Write the game against the antics SDK first \\u2014 call get_docs if you haven't.","write_action":true,"price_micros":0,"input_schema":null},{"name":"find_models","description":"Search published 3D models by name, summary or PART name (e.g. 'coil_r1c2'). Returns URLs; fetch <url>/llms.txt for how to use one in a game. Paged \\u2014 pass the returned cursor for more.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_account","description":"Which plan is this user on, and what does it limit? Call this BEFORE building a server-authoritative (sim.js) game, and whenever a sim room is denied. Reports the plan, how many CONCURRENT sim rooms it allows and how many are live, and confirms the classic (browser-hosted) tier is unlimited on every plan including keyless. Writing and DEPLOYING a sim game is never blocked; RUNNING one server-side ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_docs","description":"Get the complete antics SDK API reference + working examples (llms.txt). Call this BEFORE writing a game so it integrates correctly in one shot. Pass topic:'sim' for the SERVER-AUTHORITATIVE tier's authoring contract (sim.js: schema/init/simulate, prediction via room.sim, physics/CDN imports, probe_sim workflow) \\u2014 read it before writing any sim-tier game.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_leaderboard","description":"Read a project's leaderboard (top scores). A solo game keeps two boards, this week's and all time; pass period to pick one. A game played in rooms has one all-time board.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_my_models","description":"What 3D models have I published, and were they approved? Shows everything on your account including models still UNDER REVIEW \\u2014 which /api/models and find_models do not, because those list only what is public. Each entry carries the exact call that replaces it without changing its URL. Requires login.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List your projects (requires login).","write_action":false,"price_micros":0,"input_schema":null},{"name":"probe_sim","description":"The FASTEST way to verify sim-tier game logic: pumps a deployed sim.js in the server sandbox with scripted VIRTUAL players \\u2014 no browser anywhere, deterministic (same seed \\u21D2 identical run). REQUIRES PRO (it runs your game logic on our CPU, like a live sim room); free/anonymous callers get PLAN_REQUIRED \\u2014 call get_account first. Returns final values plus per-tick min/max/first/last tr","write_action":false,"price_micros":0,"input_schema":null},{"name":"publish_model","description":"Publish a 3D MODEL built with antics-modelkit (not a game \\u2014 a model joins no rooms). Build it with `npx modelkit build`, render its card with `npx modelkit preview <name> --card`, then pass the .glb and the recipe that generates it. Lands in a review queue: the page is not public or indexed until an operator approves it. The URL is permanent \\u2014 to update an asset later call update_model, ","write_action":true,"price_micros":0,"input_schema":null},{"name":"report_finding","description":"OPTIONAL: file a platform/browser issue you hit AND SOLVED that the docs did not cover (e.g. an iOS input quirk), so the docs improve for future agents. BE CONCISE \\u2014 a few plain sentences per field; overlong fields are rejected, not truncated. A human reviews every finding; nothing is published automatically. File only once per issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_room_target","description":"Pool the visitors to a project's /p/<slug> link so STRANGERS WHO CLICK IT MEET EACH OTHER, instead of each landing in their own empty room. roomTarget is players per shared room: arrivals fill one to that number, then the next opens. Set it to the game's real roster (2 for a duel, 8 for a party game) \\u2014 leave it unset and rooms take the platform cap of 16, which seats spectators past your rost","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_share_preview","description":"Brand how a project's room links unfurl in chats/social (Discord, Slack, iMessage, X) and fill its public game page. Owner-scoped \\u2014 needs login. Set any of: name (the link title), description (the blurb; pass \"\" to clear), about + rules (the game page's crawlable content \\u2014 write these for every game you deploy), and an image via imageUrl (https) OR imageData (base64 or data: URI \\u2014 u","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_model","description":"Replace a published MODEL's asset in place, KEEPING its /m/<slug> URL \\u2014 use this instead of publishing again, which mints a new page and strands the link you already shared. Pass the rebuilt .glb and the recipe that generates it. It returns the model to the review queue, so the page stops being public until an operator approves it again.","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_game","description":"See and MEASURE a deployed game without a browser: runs it headlessly on the server in a real room and returns a screenshot, console output, and \\u2014 the reliable signal \\u2014 live numeric probes of its synced state. Use after every deploy_game and to diagnose any reported bug. `readState` paths ('state.score', 'player.self.x', 'player.<id>.y') read the SDK's live state at capture; with `advanc","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-11-01T22:09:45.057Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-01T22:09:45.000Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":8,"max":15,"notes":["last push 101 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"antics-mcp","version":"0.5.1","found":true,"license":"SEE LICENSE IN LICENSE","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-29T13:36:48.246Z"}],"repo":{"found":true,"owner":"antics-gg","repo":"antics-mcp","archived":false,"pushedAt":"2026-07-23T13:39:33Z","stars":5,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/293073453?v=4","ownerCreatedAt":"2026-06-12T10:58:26Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/293073453?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":5,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-07-23T13:39:33.000Z","score":13}}}},"grade_history":[{"kind":"downgrade","fromGrade":"A","toGrade":"B","reason":"score 80","createdAt":"2026-11-01T22:09:45.763Z"}],"reviews":[]}