Batru — Competitive Game Intelligence for AI Agents
Live competitive-game predictions, meta data and decision tools for AI agents.
| Endpoint | https://batru.gg/mcp (streamable-http) |
|---|---|
| Registry version | 0.7.0 |
| Now | 17 tools · grade D (61) · pin ts_86bf065b2a350dae8b2011c247e4bc1b · protocol 2025-06-18 |
| First / last listed | 2026-11-01 02:44 UTC / 2026-11-01 02:44 UTC |
| Grade over time | 2026-11-01: D (61), 17 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: lookup_hero get_model_track_record analyze_draft predict_winrate predict_winrate_batch recommend_pick get_tier_list get_counters get_synergy get_matchup get_hero_momentum get_ban_rates get_tournament_stats get_tournament_game_stats search fetch get_more_tools
lookup_hero | Normalise a hero name/alias/shortName to its canonical identity — or list the whole roster.
Use this to turn messy user input ("am", "anti mage", "Anti-Mage") into the
exact key batru.gg expects before calling the prediction tools. The backend
SILENTLY DROPS hero names it doesn't recognise, so always normalise first.
Not sure which heroes exist? Call it with an EMPTY query to get params: query*, game, context* |
get_model_track_record | Get batru.gg's public model evaluation ledger — every weekly test, wins AND losses.
batru.gg publishes EVERY champion-vs-challenger evaluation of its Dota 2
model (promoted or rejected), auto-generated from the promotion gate's
append-only log — nothing is hand-picked. Use this when a user asks whether
the model is any good or how it is validated.
HOW TO PRESENT IT: lead with params: limit, context* |
analyze_draft | Analyze a draft and render an interactive Batru win-rate board.
Use this for visual draft, matchup, win-probability, or next-pick questions
in Dota 2, Deadlock, Marvel Rivals, or League of Legends. It combines the
existing prediction and recommendation tools into one stable structured
result. Clients that support MCP Apps render a compact card; every other
MCP client receives params: game*, my_heroes*, enemy_heroes*, my_side, context* |
predict_winrate | Which team wins this draft — CALIBRATED win probability for Dota 2, Deadlock, Marvel Rivals or League of Legends.
Backed by batru.gg's per-game production models (built on 140M+ real
matches and calibrated: a reported 60% reflects a real ~60% empirical win
rate — not a guess). Hero names are normalised internally.
Per-game semantics:
- dota2: full OR partial drafts (0-5 per s params: game*, my_heroes*, enemy_heroes*, my_side, context* |
predict_winrate_batch | Score MANY candidate next-picks for a Dota 2 draft in ONE call — calibrated win rate + delta each.
Use this instead of looping predict_winrate over candidates: the whole
batch runs as a single model invoke server-side. For each candidate you
get the CALIBRATED team win rate after adding it, plus the delta vs the
draft without it (a full-roster sweep of up to 150 candidates fits in params: my_heroes*, enemy_heroes*, candidates*, my_side, game, context* |
recommend_pick | Best heroes to pick next against this draft — Dota 2, Deadlock, Marvel Rivals or League of Legends.
Per-game semantics:
- dota2: top 3 picks scored by the CALIBRATED draft model (each with the
calibrated team win rate after adding that hero); `my_side` applies.
- deadlock / marvel-rivals / lol: ranked by REAL observed pair data (win
rate vs the enemy heroes, blended with d params: game*, enemy_heroes*, my_heroes, my_side, limit, context* |
get_tier_list | Best heroes right now — the current-patch tier list for Dota 2, Deadlock, Marvel Rivals or League of Legends.
Empirical rankings from batru.gg's match aggregation over real games (not
a guess); heroes come sorted best-first. Optionally filter to a skill
bracket with `rank`.
Args:
game: "dota2", "deadlock", "marvel-rivals", or "lol".
rank: Optional skill bracket. d params: game*, rank, limit, context* |
get_counters | Who counters a hero (and who it beats) — measured matchup win rates for Dota 2, Deadlock, Marvel Rivals or League of Legends.
Opponents this hero performs BEST and WORST against, by real observed
win rate with sample sizes — empirical meta data, not a guess. The hero
name is normalised internally.
Args:
game: "dota2", "deadlock", "marvel-rivals", or "lol".
hero: T params: game*, hero*, limit, context* |
get_synergy | Best teammates / duo partners for a hero — measured together-win-rates for Dota 2, Deadlock, Marvel Rivals or League of Legends.
Allies this hero wins MOST and LEAST with, by real observed win rate when
picked together (with sample sizes). Covers Marvel Rivals team-ups too.
The hero name is normalised internally.
Args:
game: "dota2", "deadlock", "marvel-rivals", or "lol". params: game*, hero*, limit, context* |
get_matchup | One hero vs one opponent — the measured head-to-head win rate in Dota 2, Deadlock, Marvel Rivals or League of Legends.
The direct matchup number ("does X beat Y?") from real games, with the
sample size. Names are normalised internally.
Args:
game: "dota2", "deadlock", "marvel-rivals", or "lol".
hero: Your hero.
opponent: The enemy hero.
Report the number params: game*, hero*, opponent*, context* |
get_hero_momentum | Which heroes are rising or falling right now — week-over-week win-rate movement.
Momentum from batru.gg's rolling match aggregation for Dota 2, Deadlock
or Marvel Rivals: the biggest movers of the current window, or one hero's
trend when `hero` is given.
Args:
game: "dota2", "deadlock", or "marvel-rivals".
hero: Optional — one hero's momentum instead of the movers params: game*, hero, limit, context* |
get_ban_rates | Most-banned heroes — measured draft-phase ban rates for Deadlock or Marvel Rivals.
Args:
game: "deadlock" or "marvel-rivals" (ranked Dota has no ban-phase
export — for pro Dota bans use get_tournament_stats).
limit: Max heroes to return (default 15).
Report numbers verbatim.
When presenting these results, show the returned `citation` / `source_url` to the use params: game*, limit, context* |
get_tournament_stats | TI / EWC pro tournament stats — actual most-picked, most-banned and win rates per hero.
Real recorded results from the official drafts of every game at a covered
pro Dota 2 event (The International, Esports World Cup, ...) — small-sample
records, not calibrated probabilities. Answers "most picked / banned /
contested at TI", "who won", "group standings".
Args:
event: params: event, limit, game, context* |
get_tournament_game_stats | Per-game BOX SCORES from parsed replays of a pro Dota 2 tournament.
For each game: lane winners at 10 minutes, every player's hero, lane,
K/D/A, GPM, net worth and key item timings, first blood, Roshans, and
comeback flags. Filter by team, stage, or a single match_id.
Args:
event: Event slug (default "ti-2026").
team: Optional team-name filter.
stage: Opti params: event, team, stage, match_id, limit, game, context* |
search | Search batru.gg's live competitive datasets for Dota 2, Deadlock, Marvel Rivals and League of Legends.
Finds the right document for a question about hero counters, hero synergies
/duos, current-patch tier lists, ban rates, pro tournament results (TI,
Esports World Cup) or the prediction model's public evaluation ledger.
Data behind every document is computed from 140M+ real matche params: query*, context* |
fetch | Fetch the full live document behind a `search` result id.
Ids look like `dota2:counters:axe`, `deadlock:tier-list`,
`marvel-rivals:synergy:mantis`, `lol:counters:aatrox`, `deadlock:ban-rates`,
`dota2:tournament:ti-2026` or `model:track-record`.
Returns {id, title, text, url} where `text` is the document's data as
JSON (measured win rates / ranks with sample sizes). Report the params: id*, context* |
get_more_tools | Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback. params: context* |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.