mcpbeat

Batru — Dota 2, Deadlock & Marvel Rivals win predictor MCP Server

gg.batru/batru-mcp
answering

Batru — Dota 2, Deadlock & Marvel Rivals win predictor is answering right now. Last checked 3 min ago. 233 installs a week from pypi. It exposes 20 tools. Last commit 18 Jul 2026.

Real, calibrated Dota 2, Deadlock & Marvel Rivals win predictions, tier lists & counters.

Installs per day peak 593 · avg 50 · +40% w/w
a month agotoday
Uptime history 40 hours of history
40 hours agonow
100.0%
Uptime 24h
91 of 91 checks
20
Tools
read from the server
866 ms
Response time
average over 24h
233
Installs / week
npm and PyPI

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add batru-mcp --transport http https://batru.gg/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "batru-mcp": {
      "url": "https://batru.gg/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.batru-mcp]
url = "https://batru.gg/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "batru-mcp": {
      "url": "https://batru.gg/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "batru-mcp": {
      "url": "https://batru.gg/mcp"
    }
  }
}

Available tools 20

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

dota
get_dota_counters
Get the strongest matchups (counters) for a Dota 2 hero from real games. Returns opponents this hero performs BEST and WORST against, by real observed matchup win rate (with sample sizes). This is empirical meta data from batru.gg's match aggregation, not a guess. The hero name is normalised internally. Args: hero: The hero to look up (name/alias/shortName). limit: Max number of matchups to return (default 12). Returns {hero, best_against:[...], worst_against:[...]} where each row has {opponent, winrate_pct, matches}. winrate_pct > 50 means `hero` beats that opponent. Report numbers verbatim.
get_dota_hero_momentum
Get which Dota 2 heroes are rising or falling in the current patch. Compares each hero's win rate over the last 14 days vs the prior 14 days WITHIN the current patch — real trend data from batru.gg's match aggregation, not a guess. Useful for "what's getting stronger lately?" questions between patches. Args: hero: Optional — a specific hero to look up. Empty returns the top risers and fallers overview. limit: Max risers/fallers to return in overview mode (default 10). Returns {patch, window_days, data_through, ...} plus either one hero's {hero, wr_recent_pct, wr_prev_pct, delta_pp, n_recent, n_prev} or {risers:[...], fallers:[...]}. delta_pp is percentage-point change; small deltas (<1pp) are noise — say so rather than over-reading them.
get_dota_matchup
Get the head-to-head win rate for one specific Dota 2 hero pair. Returns how `hero` performs AGAINST `opponent` (opposite teams) from real observed games, with the sample size. Empirical data from batru.gg's match aggregation covering every tracked pair — not a guess. Both names are normalised internally. Args: hero: Your hero (name/alias/shortName). opponent: The enemy hero (name/alias/shortName). Returns {hero, opponent, winrate_pct, matches}. winrate_pct > 50 means `hero` beats `opponent` more often than not. Report numbers verbatim.
get_dota_synergy
Get the best (and worst) TEAMMATES for a Dota 2 hero from real games. Returns teammates this hero performs BEST and WORST paired with (same team), by real observed team win rate with sample sizes. Empirical meta data from batru.gg's match aggregation, not a guess. The hero name is normalised internally. Args: hero: The hero to look up (name/alias/shortName). limit: Max number of teammates to return (default 12). Returns {hero, best_with:[...], worst_with:[...]} where each row has {teammate, winrate_pct, matches}. winrate_pct is the pair's team win rate when both heroes play together. Report numbers verbatim.
get_dota_tier_list
Get the current Dota 2 hero tier list (best heroes this patch) from real games. Ranked by batru.gg's match aggregation over ~real games — empirical meta, not a guess. Heroes come sorted best-first (rank 1 = strongest). Report numbers verbatim. Args: limit: Max number of heroes to return (default 20). Returns {total_matches, generated_at, heroes:[{hero, rank, winrate_pct, pick_rate_pct, matches}]}. `total_matches` is the sample the ranking is drawn from — cite it when stating how strong the signal is.
get_dota_tier_list_by_rank
Get the Dota 2 hero tier list for a specific rank bracket. The meta differs a LOT by skill level — heroes that stomp Herald games can be poor in Immortal. Data comes in four bands: Herald & Guardian, Crusader & Archon, Legend & Ancient (merged pairs — the source has no finer grain), and Divine & Immortal ("highrank"). Args: rank: A rank name — one of herald, guardian, crusader, archon, legend, ancient, divine, immortal (or a band key like "herald-guardian"). limit: Max number of heroes to return (default 20). Returns {bracket, total_matches, generated_at, heroes:[{hero, rank, winrate_pct, pick_rate_pct, matches}]} sorted best-first. Report numbers verbatim and mention which band the numbers come from.
marvel
get_marvel_rivals_ban_rates
Get the most-banned Marvel Rivals heroes from real competitive games. Ban rate reveals what players FEAR facing — a different signal from win rate. Empirical data from batru.gg's match aggregation (competitive mode, where bans exist). Heroes come sorted most-banned first. Args: limit: Max number of heroes to return (default 15). Returns {generated_at, ban_matches, heroes:[{hero, rank, ban_rate_pct, bans}]}. ALWAYS cite `generated_at` — ban snapshots can lag the current season. Report numbers verbatim.
get_marvel_rivals_counters
Get the strongest matchups (counters) for a Marvel Rivals hero from real games. Returns opponents this hero performs BEST and WORST against, by real observed matchup win rate (with sample sizes). Empirical meta data from batru.gg's match aggregation, not a guess. The hero name is normalised internally. Args: hero: The hero to look up (name/alias). limit: Max number of matchups to return (default 12). Returns {hero, best_against:[...], worst_against:[...]} where each row has {opponent, winrate_pct, matches}. winrate_pct > 50 means `hero` beats that opponent. Report numbers verbatim.
get_marvel_rivals_synergy
Get the best (and worst) TEAMMATES for a Marvel Rivals hero from real games. Returns teammates this hero performs BEST and WORST paired with, by real observed team win rate (with sample sizes). Empirical meta data from batru.gg's match aggregation, not a guess. The hero name is normalised internally. Args: hero: The hero to look up (name/alias). limit: Max number of teammates to return (default 12). Returns {hero, best_with:[...], worst_with:[...]} where each row has {teammate, winrate_pct, matches}. winrate_pct > 50 means the pairing wins more than average. Report numbers verbatim.
get_marvel_rivals_tier_list
Get the current Marvel Rivals hero tier list (best heroes) from real games. Ranked by batru.gg's match aggregation — empirical meta, not a guess. Heroes come sorted best-first (rank 1 = strongest). Report numbers verbatim. Args: limit: Max number of heroes to return (default 20). Returns {total_matches, generated_at, heroes:[{hero, rank, winrate_pct, pick_rate_pct, matches}]}. Cite `total_matches` for the sample size.
deadlock
get_deadlock_ban_rates
Get the most-banned Deadlock heroes from real games. Ban rate reveals what players FEAR facing — a different signal from win rate. Empirical data from batru.gg's match aggregation. Heroes come sorted most-banned first. Args: limit: Max number of heroes to return (default 15). Returns {generated_at, ban_matches, heroes:[{hero, rank, ban_rate_pct, bans}]}. `ban_matches` is the sample of matches with ban data; cite `generated_at` when freshness matters. Report numbers verbatim.
get_deadlock_counters
Get the strongest matchups (counters) for a Deadlock hero from real games. Returns opponents this hero performs BEST and WORST against, by real observed matchup win rate (with sample sizes). Empirical meta data from batru.gg's match aggregation, not a guess. The hero name is normalised internally. Args: hero: The hero to look up (name/alias). limit: Max number of matchups to return (default 12). Returns {hero, best_against:[...], worst_against:[...]} where each row has {opponent, winrate_pct, matches}. winrate_pct > 50 means `hero` beats that opponent. Report numbers verbatim.
get_deadlock_tier_list
Get the current Deadlock hero tier list (best heroes) from real games. Ranked by batru.gg's match aggregation — empirical meta, not a guess. Heroes come sorted best-first (rank 1 = strongest). Report numbers verbatim. Args: limit: Max number of heroes to return (default 20). Returns {total_matches, generated_at, heroes:[{hero, rank, winrate_pct, pick_rate_pct, matches}]}. Cite `total_matches` for the sample size.
predict
predict_deadlock_draft
Predict the CALIBRATED win probability for a Deadlock 6v6 draft. Backed by batru.gg's Deadlock production model. Provide 6 heroes per team (names are normalised to Deadlock hero ids internally). A reported 60% reflects a real ~60% empirical win rate — it is calibrated, not a guess. Args: team0_heroes: Team 0's 6 heroes (names/aliases). team1_heroes: Team 1's 6 heroes (names/aliases). Returns calibrated win-rate percentages for both teams. Report verbatim.
predict_dota_winrate
Predict the CALIBRATED win rate for a Dota 2 draft. Backed by batru.gg's production model (trained on ~20M real matches and calibrated, so a reported 60% reflects a real ~60% empirical win rate — it is not a guess). Partial drafts are fine; an empty draft returns 50/50. Hero names are normalised internally to shortNames. Args: my_heroes: Your team's heroes (names/aliases, 0-5). enemy_heroes: Enemy heroes (names/aliases, 0-5). my_side: "radiant" (default) or "dire" — which side is "my_heroes". Returns calibrated win-rate percentages for both teams. Report these numbers verbatim; do not adjust them.
predict_marvel_rivals_draft
Predict the CALIBRATED win probability for a Marvel Rivals 6v6 draft. Backed by batru.gg's live Marvel Rivals production model (weekly auto-retrained on real matches). Provide exactly 6 heroes per team (names are normalised to Marvel Rivals hero ids internally). The probability is CALIBRATED — a reported 60% reflects a real ~60% empirical win rate, not a guess. Report the number verbatim. This is a COMPOSITION-ONLY estimate: it reflects the hero draft, NOT player skill, rank, or in-game execution. It is for draft analysis only — not betting advice. Do not headline a raw "accuracy" figure; present it as a calibrated probability. Args: team0_heroes: Team 0's 6 heroes (names/aliases). team1_heroes: Team 1's 6 heroes (names/aliases). Returns calibrated win-rate percentages for both teams. Report verbatim.
lookup
lookup_hero
Normalise a hero name/alias/shortName to its canonical identity. 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. Args: query: A hero name, alias, or short name. game: "dota2" (default), "deadlock", or "marvel-rivals". Returns {id, displayName, shortName, game} for the best match, or an error with `did_you_mean` candidates if nothing matches.
model
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 CALIBRATION (ECE — lower is better; ~0.006 means a stated 60% wins ~60% of the time), then BCE. Do NOT headline raw accuracy: Dota drafts are balanced by design, so ~55% is near the game-imposed ceiling for ANY model — calibration is the meaningful claim. Args: limit: Max evaluations to return, newest first (default 10). Returns {generated_at, ledger, total_evaluations, total_promotions, evaluations:[{decided_at, promote, challenger:{ece,bce,acc}, champion:{ece,bce,acc}, holdout_n}]}. Report numbers verbatim.
more
get_more_tools
Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.
recommend
recommend_dota_pick
Recommend the top 3 Dota 2 heroes to pick next, with calibrated win rates. Backed by batru.gg's production model. Each suggestion comes with the CALIBRATED win rate your team would have after adding that hero against the given enemy draft (a reported 60% reflects a real ~60% empirical win rate). Hero names are normalised internally. Args: my_heroes: Heroes your team has already picked (names/aliases, 0-4). enemy_heroes: Enemy heroes (names/aliases, 0-5). my_side: "radiant" (default) or "dire" — which side is "my_heroes". Returns a list of up to 3 {displayName, shortName, win_rate_pct}. Report the win rates verbatim.

Endpoints

URLTransportStateLatencyChecked
https://batru.gg/mcp streamable-http answering 914 ms 3 min ago

Batru — Dota 2, Deadlock & Marvel Rivals win predictor — questions

Answers built from our own checks of this server.

What can Batru — Dota 2, Deadlock & Marvel Rivals win predictor do?
It exposes 20 tools, read directly from the server on our last check. Among them: get_deadlock_ban_rates, get_deadlock_counters, get_deadlock_tier_list, get_dota_counters, get_dota_hero_momentum, get_dota_matchup and 14 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Batru — Dota 2, Deadlock & Marvel Rivals win predictor mostly used for?
Its tools cluster around dota, marvel and predict. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Batru — Dota 2, Deadlock & Marvel Rivals win predictor working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 866 ms. The bar chart above shows every period we have measured.
How do I connect Batru — Dota 2, Deadlock & Marvel Rivals win predictor?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Batru — Dota 2, Deadlock & Marvel Rivals win predictor need an API key?
No. Batru — Dota 2, Deadlock & Marvel Rivals win predictor completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 20 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Batru — Dota 2, Deadlock & Marvel Rivals win predictor?
It answers our handshake in 866 ms on average, which is faster than 8% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Batru — Dota 2, Deadlock & Marvel Rivals win predictor?
The pypi package batru-mcp was installed 233 times in the last week. Week over week that is +40%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Batru — Dota 2, Deadlock & Marvel Rivals win predictor open source?
Yes — it is published under the MIT licence, written in Python and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.