MCP server for the start.gg GraphQL API: tournaments, events, entrants, sets, standings, streams
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Start.gg MCP Server.
search_videogamesFind videogame ids by name (e.g. "Super Smash Bros. Ultimate" β 1386)
search_tournamentsGeneral tournament search: name, videogame, country/state, date range, upcoming/past, open registration
get_upcoming_tournamentsTournaments that haven't ended yet (includes in-progress), soonest first, with a days window
get_tournaments_by_videogameTournaments for one videogame id (upcoming / past / all)
get_tournamentDetails, schedule, venue, events list, configured streams
get_tournament_eventsEvents (brackets) of a tournament, optionally filtered by videogame
A Model Context Protocol server for the start.gg GraphQL API. It lets MCP clients (Claude Code, Claude Desktop, and others) discover tournaments, inspect events, entrants, sets, standings, and streams for any game on start.gg using natural language.
start.gg exposes a powerful but complex GraphQL API: entrants vs participants vs players, integer set states, complexity-limited pagination, epoch timestamps. This server wraps that API in a small set of MCP tools with:
{ round, state: "COMPLETED", entrant1: { gamerTag, seed }, score, winnerEntrantId, ... } instead of raw GraphQL nestingThe server is game-agnostic. Game-specific logic (e.g. Smash upset detection)
belongs in applications built on top β see
examples/smash-ultimate-watcher.
Retry-After supportAUTH_ERROR, RATE_LIMITED, NOT_FOUND, INVALID_INPUT, STARTGG_GRAPHQL_ERROR, NETWORK_ERROR, INTERNAL_ERRORgraphql/ files, separate from codeTreat the token like a password. This server reads it only from the
STARTGG_TOKEN environment variable.
Requires STARTGG_TOKEN in the environment; MCP clients normally launch it for you (see the next section).
Running from a source checkout instead:
Add to claude_desktop_config.json:
From a source checkout, use "command": "node" and "args": ["/path/to/startgg-mcp-server/dist/cli.js"] instead.
Any MCP client that supports stdio servers works the same way: run
node dist/cli.js (or the startgg-mcp-server bin once installed via npm)
with STARTGG_TOKEN set.
| Tool | Purpose |
|---|---|
search_videogames | Find videogame ids by name (e.g. "Super Smash Bros. Ultimate" β 1386) |
search_tournaments | General tournament search: name, videogame, country/state, date range, upcoming/past, open registration |
get_upcoming_tournaments | Tournaments that haven't ended yet (includes in-progress), soonest first, with a days window |
get_tournaments_by_videogame | Tournaments for one videogame id (upcoming / past / all) |
| Tool | Purpose |
|---|---|
get_tournament | Details, schedule, venue, events list, configured streams |
get_tournament_events | Events (brackets) of a tournament, optionally filtered by videogame |
get_tournament_entrants | Tournament-level participants (attendees); per-event seeding lives in get_event_entrants |
get_stream_queue | Stream queue: streams (with derived Twitch URLs) and the sets assigned to each |
| Tool | Purpose |
|---|---|
get_event | Event details including phases (Pools, Top 8, ...) with phase ids |
get_event_entrants | Entrants with seed, players, DQ flag; pagination or fetchAll |
get_event_standings | Placements (use perPage: 8 for Top 8) |
get_event_sets | Normalized sets with stream; filter by state, phase, round, entrants, players, VOD; includeGames for per-game details |
get_set_games | Per-game stage / winner / character picks for one set; see coverage note |
| Tool | Purpose |
|---|---|
get_player | Player by id: gamer tag, prefix, linked user |
get_player_sets | A player's recent sets across tournaments |
| Tool | Purpose |
|---|---|
resolve_startgg_url | start.gg URL/slug β { type, tournamentId, eventId, slugs, names } |
Tournament/event tools accept either a numeric id, a slug, or a full
start.gg URL. Scheme-less URLs (start.gg/tournament/...) and <t>/event/<e>
slugs are accepted too β you rarely need resolve_startgg_url explicitly, but
it is there when you want the ids.
Notes grounded in the live API:
roundNumber < 0 means losers bracket; round is the human-readable name-1 is start.gg's disqualification marker"preview_3430499_2_0"state names are decoded from the integer stateRaw; both are always returnedentrant1/entrant2 use a players array, so doubles/teams work unchangedget_set_games (and get_event_sets with includeGames: true) add per-game
details when start.gg has them:
derivedCharacters summarizes unique character names per entrant in
first-appearance order across games. This is derived, not an API field.
Character and stage data only exists when the set was reported with it. In a
2026-09 sample, late rounds (Top 8 / streamed) had it on about 90% of completed
sets; early pools about 5%. An empty games array means not reported, not that
no games were played. Typical flow: get_event_sets (e.g. phaseIds for Top 8)
β pick set ids β get_set_games. For many sets at once, get_event_sets with
includeGames: true.
Things to ask an MCP client once connected:
A standalone example application (videogame lookup β upcoming tournaments β
sets β upset candidates by seed difference) lives in
examples/smash-ultimate-watcher.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/start-gg-mcp-server)<a href="https://allmcps.com/mcp/start-gg-mcp-server"><img src="https://allmcps.com/api/badge/start-gg-mcp-server?style=directory" alt="Start.gg MCP Server on AllMCPs" /></a>