Analyze a game draft visually
analyze_draftAnalyze 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, or Marvel Rivals. 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 the
same data as JSON/text. This tool is read-only.
Dota 2 supports partial drafts and returns a calibrated probability plus
calibrated next-pick win rates. Deadlock and Marvel Rivals only return a
calibrated probability for a complete 6v6; partial drafts still return
counter-pick recommendations labelled as empirical pair-data scores.
Args:
game: "dota2", "deadlock", or "marvel-rivals".
my_heroes: Your team / Team 0 heroes (0-5 for Dota, 0-6 otherwise).
enemy_heroes: Enemy team / Team 1 heroes (0-5 for Dota, 0-6 otherwise).
my_side: Dota only — whether your team is Radiant or Dire.
Returns the two rosters, prediction status, calibrated win rates when
available, recommendations, metric labels, `source_url`, and `citation`.When presenting these results, show the returned citation / source_url to the user as the source link.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | Which game: "dota2", "deadlock" or "marvel-rivals". Required — hero names alone do not identify the game. | |
| context | Yes | Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution." | |
| my_side | No | Dota 2 only: the side your team plays, "radiant" or "dire". Ignored for deadlock / marvel-rivals. | radiant |
| my_heroes | Yes | Heroes already on YOUR team, as a list of hero names (any alias or short name; normalised internally). May be empty for a fresh draft. To see every valid hero name for a game, call lookup_hero with an EMPTY query (query="", game=...) — it returns the full roster (displayName + shortName + aliases). | |
| enemy_heroes | Yes | Heroes on the ENEMY team, as a list of hero names (any alias or short name; normalised internally). To see every valid hero name for a game, call lookup_hero with an EMPTY query (query="", game=...) — it returns the full roster (displayName + shortName + aliases). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | ||
| note | Yes | ||
| error | No | ||
| citation | No | ||
| my_label | Yes | ||
| my_heroes | No | ||
| game_label | Yes | ||
| source_url | No | ||
| enemy_label | Yes | ||
| did_you_mean | No | ||
| enemy_heroes | No | ||
| my_win_rate_pct | No | ||
| recommendations | No | ||
| prediction_status | Yes | ||
| enemy_win_rate_pct | No | ||
| recommendation_metric_label | Yes |