Resources Reference¶
AI Summary
Static reference data via URI. Core: dota2://heroes/all (126 heroes with aliases, counter picks, when_to_pick conditions), dota2://map (towers, camps, runes, landmarks, lane_boundaries - version-aware for patches 7.33-7.39). Pro scene: dota2://pro/players, dota2://pro/teams. Resources are for static data the user attaches to context. For match-specific data, use tools like get_match_heroes and get_match_players.
Resources are static reference data that users can attach to their context before a conversation. Access via URI.
Resources vs Tools
Resources provide static reference data (all heroes, map positions, all pro players). For match-specific data that requires computation, use the corresponding tools:
- Match heroes:
get_match_heroes(match_id)tool - Match players:
get_match_players(match_id)tool - Pro player details:
get_pro_player(account_id)tool - Team details:
get_team(team_id)tool
dota2://heroes/all¶
All 126 Dota 2 heroes with counter picks data for draft analysis.
{
"npc_dota_hero_antimage": {
"hero_id": 1,
"canonical_name": "Anti-Mage",
"aliases": ["am", "antimage", "anti-mage"],
"attribute": "agility",
"counters": [
{
"hero_id": 6,
"hero_name": "npc_dota_hero_doomguard",
"localized_name": "Doom",
"reason": "Doom silences AM completely, preventing Blink escape and Mana Void"
},
{
"hero_id": 6,
"hero_name": "npc_dota_hero_axe",
"localized_name": "Axe",
"reason": "Berserker's Call pierces BKB and forces attacks, Counter Helix punishes"
}
],
"good_against": [
{
"hero_id": 94,
"hero_name": "npc_dota_hero_medusa",
"localized_name": "Medusa",
"reason": "Mana Break devastates Medusa's mana shield; Mana Void deals massive damage"
}
],
"when_to_pick": [
"Enemy has mana-dependent heroes (Storm, Medusa, Invoker)",
"Your team can hold 4v5 while you farm",
"Enemy lacks catch/lockdown for Blink"
]
}
}
Counter picks data:
counters: Heroes that counter this hero (bad matchups) with mechanical reasonsgood_against: Heroes this hero counters (favorable matchups) with reasonswhen_to_pick: Draft conditions when the hero is strong
Draft Analysis
Use counter picks data to analyze draft advantages. Check if enemy picks counter your heroes, or identify good counter-picks for the enemy draft.
Use for: Hero name resolution, attribute lookups, draft analysis, counter-pick identification.
dota2://map¶
Full map geometry - towers, camps, runes, landmarks, and lane boundaries.
Version-aware map data
Map data is versioned by patch. The server automatically uses patch-specific data when analyzing replays, falling back to the latest known version (7.39) for unknown patches.
Supported patches: 7.33, 7.37, 7.38, 7.39
{
"towers": [
{"name": "radiant_t1_mid", "team": "radiant", "tier": 1, "lane": "mid", "x": -1544, "y": -1408},
{"name": "dire_t1_mid", "team": "dire", "tier": 1, "lane": "mid", "x": 524, "y": 652}
],
"barracks": [
{"name": "radiant_melee_mid", "team": "radiant", "lane": "mid", "type": "melee", "x": -4672, "y": -4016}
],
"neutral_camps": [
{"name": "radiant_small_camp_1", "tier": "small", "side": "radiant", "x": -3200, "y": -400}
],
"runes": [
{"type": "power", "location": "top", "x": -1792, "y": 1232},
{"type": "bounty", "location": "radiant_jungle", "x": -4096, "y": -1664}
],
"landmarks": [
{"name": "roshan_pit", "x": -2432, "y": 2016},
{"name": "radiant_ancient", "x": -6144, "y": -6016}
],
"lane_boundaries": [
{"name": "top", "x_min": -8000, "x_max": 0, "y_min": 2000, "y_max": 8000},
{"name": "mid", "x_min": -3500, "x_max": 3500, "y_min": -3500, "y_max": 3500},
{"name": "bot", "x_min": 0, "x_max": 8000, "y_min": -8000, "y_max": -2000}
]
}
Coordinate system: - Center of map ≈ (0, 0) - Radiant base = bottom-left (negative X, negative Y) - Dire base = top-right (positive X, positive Y) - Range: roughly -8000 to +8000
Lane boundaries: Lane boundaries define rectangular regions for classifying hero positions:
top: Upper-left quadrant (Radiant offlane / Dire safelane)mid: Center diagonal corridorbot: Lower-right quadrant (Radiant safelane / Dire offlane)
Used internally by get_lane_summary, get_rotation_analysis, and get_farming_pattern tools.
Use for: Understanding death positions, analyzing rotations, tower/rax context, lane classification.
Pro Scene Resources¶
Static data about professional Dota 2 players and teams.
dota2://pro/players¶
All professional players from OpenDota.
{
"players": [
{
"account_id": 311360822,
"name": "Yatoro",
"personaname": "Yatoro",
"team_id": 8599101,
"team_name": "Team Spirit",
"team_tag": "Spirit",
"country_code": "UA",
"fantasy_role": 1,
"is_active": true
}
],
"total_players": 2500
}
Use for: Looking up pro player info, finding players by team.
dota2://pro/teams¶
All professional teams from OpenDota.
{
"teams": [
{
"team_id": 8599101,
"name": "Team Spirit",
"tag": "Spirit",
"rating": 1500.0,
"wins": 450,
"losses": 200
}
],
"total_teams": 500
}
Use for: Looking up team info, comparing team ratings.
For detailed player/team info
Use the get_pro_player(account_id) and get_team(team_id) tools for detailed information including aliases and rosters.