LabscoMCP early access ↗
asusevskiMCP SERVER

OpenDota MCP Server

Pull Dota 2 statistics from OpenDota — a player's matches and hero pool, a match in detail, pro players and teams, and public match data.

by asusevski ↗Sports, Fantasy & Esports DataCommunity

LABSCO SUMMARY

It looks at a player from several angles, not just their last game.

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.

What it is

A read-only layer over the OpenDota API, run locally from a checkout. Everything it returns is fetched from OpenDota at request time.

What you get

  • 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

Requirements

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.

Setup effort

Build from source — git clone https://github.com/asusevski/opendota-mcp-server.git