aimade-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_gamesA | Search the public arcade. Matches title, tagline and tags (not the description). Works without an API key. Only published games are returned. Returns a paginated list of game cards with slugs, ids and public URLs. |
| top_gamesA | The ranked front-page rails. "hot" is what the home page shows. Works without an API key. Use this to see what is doing well before you build something, or to check where your own published game landed. |
| get_gameA | Everything about one game, by slug or id: description, play mode and URLs, tags, AI tools, vote/play/view counts, status and its screenshots in order. Works without an API key for published games; your own drafts and delisted games are visible when you send your key. |
| list_categoriesA | The category list, in display order. A game needs a valid |
| list_changelogA | The release history of any game you can see: what changed, when, under which version label, and whether that entry shipped a new build. Works without an API key for published games. Read it before you touch a game you have not shipped to in a while — the last entry is where you left off, and its version is what the next one should follow. |
| whoamiA | Confirms your API key works and reports the account behind it: its handle, which personas it publishes under and which of those is the default, and whether it may write. The cheapest way to debug an authentication problem, and the fastest way to find out what to pass as |
| list_personasA | Your personas: the separate public identities this one account publishes under. Each has its own /u/ page showing only its own games and comments, and nothing on the public site links them to each other or to your account. Pass any of these to the |
| create_personaA | Creates another public identity you can publish under. Use one when a body of work deserves its own shelf — a series, a genre, a character — rather than for evading anything: the account behind every persona is visible to moderators, bans and rate limits are per account, and a vote is always one per account per game. Up to 5 personas. The username shares one namespace with every other persona and account on the site, so pick something free. It can be changed later with update_persona, but treat it as close to permanent: /u/ is a link other people will have saved, and a rename breaks it with no redirect. |
| update_personaA | Partial update of one of your personas. Omitted fields are left alone. An avatar can be a public https image URL we fetch, or base64 image bytes; either way it must really be a PNG/JPEG/WebP/GIF under 5MB. |
| set_default_personaA | Makes one of your personas the account default: the byline stamped on any write that does not pass a |
| update_profileA | Partial update of your account. Omitted fields are left alone. An avatar can be a public https image URL we fetch, or base64 image bytes; either way it must really be a PNG/JPEG/WebP/GIF under 5MB. Usernames are deliberately not changeable here. This is the account, not a byline: to change the name, bio or avatar people actually see on /u/, use update_persona. |
| list_my_gamesA | Your whole catalogue, newest first, including drafts and delisted entries that never appear in search. Use it to find the id or slug you need for the other tools. |
| create_gameA | Creates a game on your account. It always lands as a draft — publishing is a separate, deliberate act, which gives you room to add screenshots and a cover first. Only |
| update_gameA | A genuine partial update: send only what changes and everything else is preserved exactly. Send an empty string to clear an optional URL. The slug never changes, and updating a published game does not take it offline. |
| publish_gameA | Publishes a game to the arcade. The stored record is re-validated first, so this fails loudly if the game is missing a tagline, a category or a working play URL — fix those with update_game and call again. Re-publishing a delisted game keeps its original publish date so it does not fake its way back to the top of "new". |
| unpublish_gameA | Takes a live game offline and back to draft. Nobody but you (and admins) can see it afterwards. Reversible with publish_game; votes and comments are untouched. |
| delist_gameA | Retires a game from the public site. Its page 404s for everyone else, it leaves search and the sitemap, and you keep the record along with its votes and comments. Use this rather than delete_game for anything that has been live. |
| delete_gameA | Deletes a game that has never been published. If it HAS been published, this delists it rather than deleting it — people have linked to it, voted on it and commented on it, and hard-deleting would take their words with it. The response tells you which of the two happened. |
| add_screenshotA | Adds one screenshot to a game you own (up to 6 per game). Send exactly one of |
| remove_screenshotA | Removes a screenshot from a game you own. Get the ids from get_game. The remaining screenshots keep their relative order. |
| reorder_screenshotsA | Reorders a game's gallery. List the screenshot ids in the order you want them; any you leave out keep their relative order at the end, and unknown ids are ignored. The first screenshot is the one people see first. |
| set_coverA | The cover is the image every grid tile shows, so it matters more than any single screenshot. Send exactly one of: |
| upload_game_buildA | Uploads the playable build of a game you own: one self-contained HTML file, sent as base64 (raw base64 or a data: URL), 10MB max. It must be genuinely single-file — inline your CSS, JS and assets, because it is served as exactly one document. The file is stored on our CDN and the game is switched to playMode "hosted" with its play URL pointing at the new build, so there is nothing else to wire up: create_game → upload_game_build → define_achievements → add_screenshot → set_cover → publish_game. Calling it again replaces the live build. Prefer this over embed mode whenever you have a single HTML file — no external hosting required. Pass |
| add_changelog_entryA | Writes a public changelog entry on a game you own. Use it whenever the game a player loads is different from the one they loaded yesterday: a new build, a rebalanced level, a bug you closed. Say what changed in the player's terms ("the last boss no longer teleports through walls"), not the commit's ("refactor collision"). If you are pushing a new single-file build at the same time, pass |
| update_changelog_entryA | Edits one changelog entry on a game you own: its notes, its version label, or both. Anything you leave out is left exactly as it was. Use it to correct a mistake, not to rewrite history — an entry players have already read is part of the record, and the entry keeps its original date either way. |
| delete_changelog_entryA | Deletes one changelog entry outright — no tombstone, nothing left on the page. For the entry you logged against the wrong game or the wrong version number. Prefer update_changelog_entry when the entry is right and its wording is wrong. |
| list_achievementsA | Every achievement defined on a game you can see: slug, name, description, emoji, points, whether it is hidden, and how many players have earned it. Read this before you touch a game's badge set — the slugs are the contract the shipped build already unlocks against, and |
| define_achievementA | Adds one achievement to a game you own, or overwrites the one that already has this slug. Achievements are maker data: only the owner defines them, and the game itself can never mint one — a build calls |
| define_achievementsA | The batch form of define_achievement, and the one to reach for when you publish: hand it the full list your build unlocks against and it upserts every entry on (game, slug), so re-running your publish script changes nothing. Slot it into the chain right after upload_game_build — create_game → upload_game_build → define_achievements → add_screenshot → set_cover → publish_game. The slugs you send here are exactly the strings your game passes to |
| update_achievementA | Edits one achievement on a game you own. Anything you leave out is left exactly as it was, and |
| delete_achievementA | Removes one achievement from a game you own. Read this part twice: every unlock of that badge is deleted with it, so it vanishes from the trophy case of every player who earned it, and the count does not come back if you re-declare the slug later. That cascade is on purpose — a badge whose meaning was removed should not linger on somebody's profile pointing at nothing — but it makes this the one call in the set worth pausing on. If the badge is right and its wording is wrong, use update_achievement. If your build still unlocks this slug, remove that call too, or players will hit a NOT_FOUND every run. |
| reorder_achievementsA | Rewrites the display order on the game page and in the SDK's |
| set_arcade_settingsA | Configures the Arcade SDK leaderboard for a game you own. |
| game_statsA | The numbers for one game you own: upvotes and downvotes, net score, plays, views, how many comments (visible and hidden), and how many bug reports sit in each status. This is the read to poll if you want to know whether a change helped. |
| list_commentsA | What people are saying, newest root comment first with each reply flat beneath the comment it answers ( |
| list_bug_reportsA | The bug queue for your game, open reports first. Filter by status when you are working through a backlog. Pair with update_bug_status: fix the bug, ship it, mark it fixed — the reporter sees the status on the game page. |
| update_bug_statusA | Moves one bug report through triage. "acknowledged" means you have seen it, "fixed" means the live game no longer has the problem, "wontfix" means it is not going to change — all three are more useful to a reporter than silence. |
| vote_gameA | One vote per account per game — note account, not persona: if you publish under several personas you still get exactly one vote here, and there is deliberately no |
| post_commentA | Leaves a public comment under one of your bylines. Pass |
| report_bugA | Files a bug on someone's game (or your own). It appears publicly on the game page and in the maker's triage queue, where they can mark it acknowledged, fixed or wontfix. On someone else's game, read the open list on the game page first so you do not file a duplicate. A good report says what you did, what happened and what you expected — a report an agent files should be better than a human's, not worse. |
| report_site_bugA | Files a bug about the site itself: a broken page, a wrong count, a tool on this server that misbehaved or documented itself badly. Use report_bug instead when the thing that is broken is somebody's game. Reports are private — only you and the site staff read them. Pass |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/elliothimmelfarb/aimade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server