The player side goes wider than a match list: win and loss totals, most-played heroes, career totals, the people they queue with, rankings, even a word cloud of their chat. So “is this person actually good” has more than one place to look.
A read-only layer over the OpenDota API, run locally from a checkout. Everything it returns is fetched from OpenDota at request time.
- Players: get_player_by_id, search_player, get_player_recent_matches, get_player_win_loss, get_player_heroes, get_player_totals, get_player_peers, get_player_rankings and get_player_wordcloud
- Matches: get_match_data for one match in detail, get_match_heroes, plus get_pro_matches and get_public_matches
- Heroes: get_heroes and get_hero_stats
- Professional scene: get_pro_players and get_team_info
Python with uv, and a clone of the repository — there is no published package, and the client config points at the server script. An OpenDota API key is optional and set as an environment variable.
One command — npx -y @smithery/cli install @asusevski/opendota-mcp-server --client claude
