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, 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 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, Marvel Rivals and League of
Legends only return a calibrated probability for a complete roster (6v6 for
Deadlock/Marvel, role-ordered 5v5 for LoL); partial drafts still return
counter-pick recommendations labelled as empirical pair-data scores.
Args:
game: "dota2", "deadlock", "marvel-rivals", or "lol".
my_heroes: Your team / Team 0 / Blue heroes (0-5 for Dota/LoL, 0-6 otherwise).
enemy_heroes: Enemy team / Team 1 / Red heroes (0-5 for Dota/LoL, 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", "marvel-rivals" or "lol" (League of Legends). 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 / lol. | 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 |