Real, calibrated Dota 2 / Deadlock win-rate predictions and pick recommendations from batru.gg.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A minimal, read-only MCP server over batru.gg's live API, so your LLM can answer Dota 2 / Deadlock draft, counter and win-rate questions with real, calibrated model predictions instead of guessing from memory.
It is a thin wrapper around batru.gg's public endpoints β no model runs locally; every number comes from the same production model the website serves.
batru.gg's model is trained on ~20M real matches and calibrated: a reported 60% win rate corresponds to an empirically observed ~60% win rate. We deliberately do not headline a raw "accuracy" number β accuracy alone is misleading for win prediction. What you get from these tools are probabilities you can trust at face value. The tool descriptions instruct the host LLM to report these numbers verbatim and never invent matchup data.
| Tool | What it does |
|---|---|
lookup_hero(query, game="dota2") | Normalise a name/alias/shortName to {id, displayName, shortName}. game β {dota2, deadlock}. |
predict_dota_winrate(my_heroes, enemy_heroes, my_side="radiant") | Calibrated win-rate % for both teams (partial drafts OK; empty β 50/50). |
recommend_dota_pick(my_heroes, enemy_heroes, my_side="radiant") | Top-3 heroes to pick next, each with its calibrated win rate. |
get_dota_counters(hero, limit=12) | Real matchup table: who this hero beats / loses to, with win rate % and sample size. |
predict_deadlock_draft(team0_heroes, team1_heroes) | Calibrated win-rate % for a Deadlock 6v6 (6 heroes per team). |
Hero names are accepted in any form (e.g. am, anti mage, Anti-Mage) and normalised internally β the backend silently drops names it doesn't recognise, so normalising first keeps predictions honest.
Requires uv (or any way to run a Python 3.12+ package from PyPI):
Configuration is via the BATRU_API_BASE environment variable (default https://batru.gg) β you normally don't need to set anything.
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
Restart Claude Desktop; the batru tools appear in the tool picker. Claude Code:
claude mcp add batru -- uvx batru-mcp.
For a Claude Desktop pointing at the checkout, use
"command": "uv", "args": ["run", "--directory", "/absolute/path/to/batru-mcp", "batru-mcp"].
Prefer programmatic access from Python instead of MCP? pip install batru β the
official batru SDK.
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/batru-dota-2-deadlock-win-predictor)<a href="https://allmcps.com/mcp/batru-dota-2-deadlock-win-predictor"><img src="https://allmcps.com/api/badge/batru-dota-2-deadlock-win-predictor?style=directory" alt="Batru β Dota 2 & Deadlock win predictor on AllMCPs" /></a>