get_player_by_idLABSCO 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
USE CASES
Working out why you lost
Open the match in detail and read the hero line-up alongside it, rather than arguing about it from memory.
Scouting somebody before a game
Find the account by name, then read the recent matches and the win-loss record behind the profile.
Deciding which hero to learn next
Set the current hero statistics against the heroes you already play well, so the choice fits both the meta and your own record.
Following the professional scene
Read recent pro matches, the players in them and the teams behind them, without opening a liquipedia tab per name.
17 tools
Listed in project docs. Your client may show a different list.
get_player_recent_matchesget_match_dataget_player_win_lossget_player_heroesget_hero_statssearch_playerget_pro_playersget_pro_matchesget_player_peersget_heroesget_player_totalsget_player_rankingsget_player_wordcloudget_team_infoget_public_matchesget_match_heroesBEFORE YOU INSTALL
What to know first
Tools you get
17 tools named in the project's documentation.
Requires
Python 3.10+
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/asusevski/opendota-mcp-server.git
cd opendota-mcp-server
./scripts/setup_env.shMCP Clients
Claude Desktop
macOS or Linux, after the clone and ./scripts/setup_env.sh above. The README runs server.py with the .venv Python that setup_env.sh creates; this entry calls the same interpreter and script by absolute path.
{
"mcpServers": {
"opendota": {
"command": "<YOUR_PATH_TO_OPENDOTA_MCP_SERVER>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_OPENDOTA_MCP_SERVER>/src/opendota_server/server.py"
]
}
}
}Claude Desktop — WSL
{
"mcpServers": {
"opendota": {
"command": "wsl.exe",
"args": [
"--",
"bash",
"-c",
"cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py"
]
}
}
}