Labsco
MCP SERVER

OpenDota MCP Server

by asusevski

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.

Sports, Fantasy & Esports Data
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

One command — npx -y @smithery/cli install @asusevski/opendota-mcp-server --client claude