Speedrun.com
live GamesSportsSpeedrun.com — search games, browse run categories, and fetch world-record leaderboards from the speedrunning community database.
Tools
search_games Search the Speedrun.com database for games by name. Returns matching games with their ID (needed for get_categories and get_leaderboard), abbreviation, release year, and weblink. Example: search_games
No parameters required.
Try it
get_categories List the run categories for a game (e.g. "Any%", "100%", "Glitchless"). Use the game ID from search_games. Each category has an ID needed to fetch a leaderboard via get_leaderboard. Example: get_categ
No parameters required.
Try it
get_leaderboard Fetch the world-record / top-N leaderboard for a specific game category. Returns ranked runs with finish times (ISO-8601 duration plus seconds), run date, players, and weblink. Get game_id from search
No parameters required.
Try it
find_user Look up a speedrunner by username. Returns matching users with their ID, display name, and profile weblink. Example: find_user({ name: "cheese05" })
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/speedrun/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -X POST https://gateway.pipeworx.io/speedrun/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_games","arguments":{}}}' Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search_games", {}); // Or ask in plain English:
const answer = await px.ask("speedrun");