@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 heroes
  • hero_stats(hero_id, rank?) — win rate / pick rate by rank tier
  • match(id) — single match
  • player(steam_account_id) — player profile
  • player_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 heroes
  • live_matches() — currently live matches
  • tournament(id) — tournament detail
  • tournaments(only_premium?) — list tournaments
  • meta() — 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 take heroes (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 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
  • 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
  • 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.
  • 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/D
  • 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

Regenerated from source · build September 10, 2026