@pipeworx/stratz
Connect: https://gateway.pipeworx.io/stratz/mcp · Install: one-click buttons
Tools: 12
STRATZ GraphQL MCP — Dota 2 stats (heroes, matches, leagues, pro players). Free token at stratz.com/api.
Auth
- Platform:
PLATFORM_STRATZ_KEY. BYO:?_apiKey=…(Bearer token).
Tools
graphql(query, variables?)— raw GraphQL passthrough (the most flexible escape hatch)hero(id)— hero detail (id is Dota 2 hero id)heroes()— all heroeshero_stats(hero_id, rank?)— win rate / pick rate by rank tiermatch(id)— single matchplayer(steam_account_id)— player profileplayer_matches(steam_account_id, take?, skip?)— player’s recent matches, one flat row each (this player’s hero, K/D/A, GPM/XPM merged onto the match)player_heroes(steam_account_id, take?)— player’s top heroeslive_matches()— currently live matchestournament(id)— tournament detailtournaments(only_premium?)— list tournamentsmeta()— current Dota 2 patch + constants
Notes
The GraphQL schema is large; graphql(...) lets you write any query against it. The named tools are convenience wrappers for common shapes.
Field names must match the STRATZ schema exactly — it rejects the first unknown field with Cannot query field. Common traps: per-player stats (heroId, kills, numLastHits, goldPerMinute) live on match.players, not on the match; game modes are constants { gameModes }; tournaments order by FilterOrderBy (START_DATE_THEN_TIER, LAST_MATCH_TIME, …). Introspect a type first when unsure: { __type(name: "MatchPlayerType") { fields { name } } }.
Every named tool’s query is validated against an introspected STRATZ schema (see the header of src/index.ts for the recipe).
Data source
https://api.stratz.com/graphql
Tools
- graphql — Send an arbitrary GraphQL query (with optional variables) directly to the STRATZ API at api.stratz.com/graphql. Use when no named tool covers the data you need. Field names are camelCase and must matc
- hero — Fetch a single Dota 2 hero’s full detail by numeric hero id — display name, short name, roles, and base/gain stats (armor, strength, agility, intelligence, primary attribute, attack type/range/rate, s
- heroes — Fetch the complete list of all Dota 2 heroes from STRATZ, returning each hero’s numeric id, name, displayName, and shortName. No arguments required.
- hero_stats — Fetch daily win-rate and pick-rate statistics for a Dota 2 hero by numeric hero_id, optionally filtered to a rank bracket (e.g. HERALD, ARCHON, LEGEND, DIVINE, IMMORTAL). Returns matchCount and winCou
- match — Fetch full details of a single Dota 2 match by numeric match id — duration, start time, Radiant/Dire teams, game mode, lobby type, and per-player stats (heroId, K/D/A, GPM, XPM, level).
- player — Fetch a Dota 2 player’s profile by Steam account id — Steam name, profile URL, avatar, total match count, and win count via STRATZ.
- player_matches — Fetch a Dota 2 player’s recent match history by Steam account id. Returns one row per match: match id, duration, start time, game mode, Radiant win flag, plus this player’s heroId, side, win/loss, K/D
- player_heroes — Fetch the top heroes played by a Dota 2 player (by Steam account id), ranked by match count — returns heroId, matchCount, and winCount for up to
takeheroes (default 20). - live_matches — Fetch all currently live Dota 2 matches from STRATZ, returning matchId, radiantTeamId, direTeamId, and current game time. No arguments required.
- tournament — Fetch details for a single Dota 2 tournament (league) by numeric id — display name, description, tier, start/end dates, and prize pool.
- tournaments — List Dota 2 tournaments (leagues) from STRATZ, most recent start date first (up to 50) — id, name, tier, start/end dates and prize pool. Pass only_premium=true to restrict to MAJOR and INTERNATIONAL t
- meta — Fetch current Dota 2 meta constants from STRATZ: the list of game versions (patches) with their id and name. No arguments required.
Tools
graphql— Send an arbitrary GraphQL query (with optional variables) directly to the STRATZ API at api.stratz.com/graphql. Use when no named tool covers the data you need. Field names are camelCase and must matchero— Fetch a single Dota 2 hero's full detail by numeric hero id — display name, short name, roles, and base/gain stats (armor, strength, agility, intelligence, primary attribute, attack type/range/rate, shero_stats— Fetch daily win-rate and pick-rate statistics for a Dota 2 hero by numeric hero_id, optionally filtered to a rank bracket (e.g. HERALD, ARCHON, LEGEND, DIVINE, IMMORTAL). Returns matchCount and winCouheroes— Fetch the complete list of all Dota 2 heroes from STRATZ, returning each hero's numeric id, name, displayName, and shortName. No arguments required.live_matches— Fetch all currently live Dota 2 matches from STRATZ, returning matchId, radiantTeamId, direTeamId, and current game time. No arguments required.match— Fetch full details of a single Dota 2 match by numeric match id — duration, start time, Radiant/Dire teams, game mode, lobby type, and per-player stats (heroId, K/D/A, GPM, XPM, level).meta— Fetch current Dota 2 meta constants from STRATZ: the list of game versions (patches) with their id and name. No arguments required.player— Fetch a Dota 2 player's profile by Steam account id — Steam name, profile URL, avatar, total match count, and win count via STRATZ.player_heroes— Fetch the top heroes played by a Dota 2 player (by Steam account id), ranked by match count — returns heroId, matchCount, and winCount for up to `take` heroes (default 20).player_matches— Fetch a Dota 2 player's recent match history by Steam account id. Returns one row per match: match id, duration, start time, game mode, Radiant win flag, plus this player's heroId, side, win/loss, K/Dtournament— Fetch details for a single Dota 2 tournament (league) by numeric id — display name, description, tier, start/end dates, and prize pool.tournaments— List Dota 2 tournaments (leagues) from STRATZ, most recent start date first (up to 50) — id, name, tier, start/end dates and prize pool. Pass only_premium=true to restrict to MAJOR and INTERNATIONAL t