Skip to main content
Glama
williamcodes

speedrun-mcp

by williamcodes

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_gamesA

Fuzzy-search games by name. Returns ids, abbreviations and release years.

Use the returned id (or abbreviation) with the other tools.

get_gameA

Get a game's details plus its categories (and optionally its levels).

The embedded categories give you the category_id needed for get_leaderboard.

list_categoriesA

List a game's categories (e.g. 'Any%', '120 Star'), with their ids and rules.

list_variablesA

List a game's variables — the subcategories and filters a leaderboard accepts.

Each variable has an id and a values map of {value_id: label}. Pass these to get_leaderboard/get_world_record as variables={variable_id: value_id} to target a specific subcategory (e.g. '16 Star', difficulty 'Hard').

get_leaderboardA

Get a ranked leaderboard for a game/category (full-game or individual level).

Players, subcategory labels and the category name are resolved for you. For subcategory filters, discover ids with list_variables first.

get_world_recordA

Get the current world record (place 1) for a game/category.

A convenience wrapper over get_leaderboard. Returns the leaderboard metadata plus world_record (the single fastest run, or None if the leaderboard is empty) and tied (any other runs also at place 1; usually empty).

search_usersA

Search for speedrun.com users by name. Returns ids, countries and signup dates.

get_user_personal_bestsA

Get a player's personal best runs across all games, with game/category names.

/personal-bests is unpaginated, so total_available is the player's true PB count and returned is how many came back after applying limit.

get_runA

Get a run's players, times, game/category, status, system and variable values.

list_platformsA

List speedrun.com platforms (consoles/systems) with their ids and names.

Use a returned id as the platform filter for get_leaderboard (the leaderboard API requires the platform id, not its name).

list_regionsA

List speedrun.com regions (e.g. USA/NTSC, EUR/PAL) with their ids and names.

Use a returned id as the region filter for get_leaderboard (the leaderboard API requires the region id, not its name).

search_seriesA

Fuzzy-search game series (e.g. 'Mario', 'Zelda') by name.

A series groups related games; pass a returned id to get_series to list the games it contains.

get_seriesA

Get a series' details and (by default) the games it contains.

The returned game ids/abbreviations feed the other tools (get_game, list_categories, get_leaderboard).

list_runsA

List runs with filters — e.g. a player's recent submissions, or a game's verified/rejected runs. Newest first; combine filters to narrow down.

For just one game's moderation queue, list_unverified_runs is simpler.

get_game_recordsA

Get a game's records across all its categories in one call.

With top=1 (default) this is every category's world record at once — handy for "show me all the records for ". include_levels=True also pulls every individual-level board, which can be large for level-heavy games.

list_unverified_runsA

List a game's runs awaiting verification — the moderation queue.

A public read (no API key needed). Pair with verify_run / reject_run (which do require a moderator key) to clear the queue.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 16 tools

Disambiguation4/5

Most tools target a distinct resource/action such as games, categories, variables, leaderboards, users, runs, platforms, regions, and series. The main overlap is that get_game already returns categories and get_world_record is a wrapper over get_leaderboard, but the descriptions clarify when each should be used.

Naming Consistency5/5

All tool names consistently follow a snake_case verb_noun pattern using only search, get, and list as verbs. Multiword nouns like get_user_personal_bests and get_game_records remain predictable and no mixed conventions appear.

Tool Count4/5

Sixteen tools is slightly above the typical ideal range, but each tool covers a distinct read-only aspect of the speedrun.com API. The count feels reasonable for the domain, with only a few convenience helpers adding mild extra weight.

Completeness3/5

Core discovery and leaderboard workflows are well covered: searching games and users, retrieving game details, categories, variables, leaderboards, world records, runs, platforms, regions, and series. However, list_unverified_runs references verify_run/reject_run that are not included in the tool set, leaving a moderation dead end, and there is no direct user profile lookup beyond personal bests.

Maintenance

ActivityMaintained
ResponsivenessNo issues