Skip to main content
Glama
sharkusmanch

RetroAchievements MCP Server

by sharkusmanch

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoHTTP bind host. Also --host.127.0.0.1
MCP_PORTNoHTTP bind port. Also --port.8080
LOG_LEVELNoLog level. Logs always go to stderr.info
RA_API_KEYNoRequired. Web API key from your RetroAchievements control panel. RETROACHIEVEMENTS_API_KEY is accepted as an alias.
RA_USERNAMENoDefault user for user-scoped tools.
RA_CACHE_DIRNoGame-catalog cache directory. 'none' = memory only.$XDG_CACHE_HOME/retroachievements-mcp
MCP_TRANSPORTNoTransport mode. Default is stdio (http in the container). Or pass --stdio / --http.stdio
RA_RATE_BURSTNoClient-side request burst.10
RA_TIMEOUT_MSNoUpstream request timeout in milliseconds.20000
MCP_AUTH_TOKENNoOptional bearer token (≥16 chars) required on /mcp.
MCP_ALLOWED_HOSTSNoHost allowlist for /mcp. Required off-loopback; on loopback defaults to localhost names. '*' disables.
RA_CACHE_MAX_BYTESNoResponse cache byte cap (bodies > 1 MB are never cached).64MB
RA_CACHE_TTL_SCALENoTTL multiplier. 0 disables.1
RA_MAX_CONCURRENCYNoConcurrent upstream requests.4
RA_PREWARM_CATALOGNoLoad every console catalog in the background at startup.false
RA_RATE_PER_MINUTENoClient-side request pacing per minute.72
RA_CACHE_MAX_ENTRIESNoResponse cache max entries.500
RETROACHIEVEMENTS_API_KEYNoAlias for RA_API_KEY.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_user_profileC

User profile and points. include: summary (rank, status, recent games/unlocks), awards.

get_user_unlocksC

User's unlocks, newest first. One of minutes, from[/to], date; default last 24h.

get_user_gamesB

User's game lists: recent, progress (per-game counts + award), completed (100%), want_to_play.

get_user_game_progressB

User's progress in one game (summary + achievements with rarity %), or one summary row per game_ids entry.

get_user_socialB

User's set requests or dev claims; or who the API-key owner follows / is followed by (ignores user).

list_consolesC

IDs of the active RetroAchievements game systems.

find_gamesB

Find game IDs by title and/or console. First all-console search may be slow.

get_gameC

Game details; include adds achievements (rarity, type), hashes, progression (median times), distribution, claims.

get_game_rankingsB

A game's top 10: highest scorers, or most recent masters.

get_leaderboardsB

A game's leaderboards (user_entries: the user's entries), or one leaderboard's ranked entries. Give game_id or leaderboard_id.

get_achievement_unlocksC

Who unlocked an achievement (newest first), with unlock rates.

get_feedC

Site feeds: aotw (Achievement of the Week), top_users, recent_awards, active_claims, claims (finished).

get_commentsC

Comment wall of a game, achievement or user (system log entries hidden unless include_system).

get_ticketsB

Achievement bug tickets: recent, one ticket, per game/achievement/developer summary, or most_ticketed games.

ra_api_rawA

Escape hatch: raw JSON from any RA Web API endpoint (e.g. GetGameExtended). Prefer the dedicated tools.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target distinct resources (games, users, leaderboards, feeds, tickets), and the parenthetical 'include' hints clarify scope. However, get_user_unlocks vs get_achievement_unlocks and get_user_games vs get_user_game_progress share enough surface that an agent could occasionally misselect, and get_user_profile overlaps those aggregates.

Naming Consistency5/5

The set follows a strong get_/list_/find_ + noun pattern (get_user_profile, get_game_rankings, list_consoles, find_games), with verb choices reflecting retrieval vs collection vs search semantics. ra_api_raw is the only outlier but is clearly framed as a deliberate escape hatch.

Tool Count5/5

15 tools sits at the top of the well-scoped range and matches a genuinely broad domain (users, games, achievements, leaderboards, tickets, feeds, comments). Each tool maps to a distinct RetroAchievements entity, so none feels redundant.

Completeness4/5

The surface covers consoles, profiles, unlocks, progress, social, game search/details, rankings, leaderboards, feeds, comments, and tickets, which is close to full lifecycle for a read-only API client. Minor gaps like a dedicated achievement-detail tool are mitigated by get_game's achievement inclusion and the ra_api_raw escape hatch.

Maintenance

ActivityMaintained
ResponsivenessNo issues