Public leaderboard

Public assessment

antics-gg/antics-mcp (antics-mcp)

antics-mcp · v0.1.0 · scanned

What changed in the harness

Selection accuracy 98→100, token cost up 4%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

26.3 / 30

26.3 out of 30
03Economics

17.8 / 20

17.8 out of 20
04Discoverability

11.4 / 20

11.4 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

8 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
get_docs
no_return_description
Returns the complete antics SDK API reference and working examples as plain-text documentation (the llms.txt content). Call it BEFORE writing a game so it integrates correctly in one shot. Pass topic:'sim' to return the SERVER-AUTHORITATIVE tier's authoring contract instead (sim.js: schema/init/simulate, prediction via room.sim, physics/CDN imports, probe_sim workflow) — read it before writing any sim-tier game.
deploy_game
params_unexplained no_return_description
Deploy a game and get back a playable multiplayer URL for the fresh build: 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). `projectId` is the project (from create_project) to deploy under — passing it yields a permanent /p/<slug> share link that follows the latest deploy, persistent leaderboards, and 16-player rooms, whereas omitting it produces a keyless, temporary deployment. Write the game against the antics SDK first — call get_docs if you haven't.
create_project
params_unexplained
Create a project named `name` (its display name, shown on the share link and world page); 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 (`npx antics-cli login`).
get_leaderboard
params_unexplained no_return_description
Read a project's leaderboard and return its top scores. `projectId` is the project whose leaderboard to read; `board` optionally selects a specific leaderboard within it (omit for the project's main one); `limit` caps how many top entries are returned (omit for the server default). Returns an ordered list of the highest-scoring entries, up to `limit`.
list_projects
name_restates_behavior no_return_description
Return every project belonging to the logged-in user, each with its id and name, so you can pick one to deploy under or manage its preview and leaderboard. Requires login (`npx antics-cli login`); call get_account first if you are unsure whether you are authenticated.
get_account
no_return_description
Return the current user's account state: which plan they are on, how many CONCURRENT sim rooms it allows and how many are currently live, and confirmation that the classic (browser-hosted) tier is unlimited on every plan including keyless. Call it BEFORE building a server-authoritative (sim.js) game, and whenever a sim room is denied. Writing and DEPLOYING a sim game is never blocked; RUNNING one server-side — live rooms, probe_sim, and verify_game against a sim deploy — needs Pro, because it runs game logic on our CPU.
report_finding
no_return_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; returns a confirmation once the report is filed for human review. BE CONCISE — 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.
set_share_preview
no_return_description
Brand how a project's room links unfurl in chats/social (Discord, Slack, iMessage, X) and fill its public world page; returns confirmation that the preview was updated. Owner-scoped — needs login. Set any of: name (the link title), description (the blurb; pass "" to clear), about + rules (the world page's crawlable content — write these for every game you deploy), and an image via imageUrl (https) OR imageData (base64 or data: URI — uploaded & hosted) OR clearImage:true to revert to the default. Only one image action per call.

Selection evidence

Confusable tool pairs.

2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
deploy_game verify_game medium Both fire on 'run/launch/get my game working' tasks: deploy_game makes a game playable at a URL, while verify_game executes it headlessly to inspect behavior, and a bug-fix phrasing like 'my deployed game is broken, get it running correctly' could plausibly pick the deploy verb instead of the diagnose/measure one.
get_docs get_account medium Both descriptions give the same trigger condition — 'call this BEFORE building a server-authoritative (sim.js) game' — so a pre-build task like 'I'm about to write a sim game, what do I need?' is genuinely ambiguous: get_docs returns the authoring contract, get_account reports plan/sim constraints, and an agent shortlisting on the shared 'before building a sim game' precondition could select either.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard