Stratz
liveGamesSportsEntertainmentSTRATZ API — Dota 2 hero stats, match history, player profiles, live matches, and tournament data via GraphQL. Requires your own STRATZ API token (_apiKey), free at stratz.com/api.
BYO token only — free token at stratz.com/api. Pass _apiKey on the gateway URL.
{
"mcpServers": {
"pipeworx-stratz": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://gateway.pipeworx.io/stratz/mcp?_apiKey=your_stratz_token"
]
}
}
}Tools
graphqlSend 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
No parameters required.
Try it
heroFetch 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
No parameters required.
Try it
heroesFetch the complete list of all Dota 2 heroes from STRATZ, returning each hero's numeric id, name, displayName, and shortName. No arguments required.
No parameters required.
Try it
hero_statsFetch 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
No parameters required.
Try it
matchFetch 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).
No parameters required.
Try it
playerFetch a Dota 2 player's profile by Steam account id — Steam name, profile URL, avatar, total match count, and win count via STRATZ.
No parameters required.
Try it
player_matchesFetch 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
No parameters required.
Try it
player_heroesFetch 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).
No parameters required.
Try it
live_matchesFetch all currently live Dota 2 matches from STRATZ, returning matchId, radiantTeamId, direTeamId, and current game time. No arguments required.
No parameters required.
Try it
tournamentFetch details for a single Dota 2 tournament (league) by numeric id — display name, description, tier, start/end dates, and prize pool.
No parameters required.
Try it
tournamentsList 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
No parameters required.
Try it
metaFetch current Dota 2 meta constants from STRATZ: the list of game versions (patches) with their id and name. No arguments required.
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/stratz/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/stratz/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"graphql","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("graphql", {});// Or ask in plain English:
const answer = await px.ask("stratz api — dota 2 hero stats, match history, player profiles, live matches, and tournament data via graphql");