The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Opendota MCP Server listing page.
A Model Context Protocol (MCP) server that provides seamless access to the OpenDota API for querying Dota 2 player statistics, match data, and hero information through AI assistants like Claude.
Query player statistics, win/loss records, hero preferences, and performance metrics:
get_player_info - Get player profile, win rate, and favorite heroesget_player_win_loss - Win/loss stats with advanced filteringget_heroes_played - Detailed statistics for all heroes playedget_player_peers - Find frequent teammatesget_player_totals - Aggregated player statisticsget_player_histograms - Distribution of matches across statistical fieldsAccess hero information, matchups, and item builds:
get_heroes - List all heroes with attributesget_hero_matchups - Matchup data and win ratesget_hero_item_popularity - Popular item builds by game phaseget_hero_stats - Aggregated hero statistics and pick ratesRetrieve detailed match information and parsed data:
get_match_details - Comprehensive match informationget_parsed_match_details - Parsed match data with advanced analyticsget_player_recent_matches - Recent matches for a playerConvert names to IDs with fuzzy matching:
get_hero_id_by_name - Hero name → ID (handles typos)get_hero_by_id - Get hero details by IDconvert_lane_name_to_id - Lane/position → lane_role IDresolve_time_name - Time period names → OpenDota filter parametersSearch and utility functions:
search_players - Search for players by nameget_constants - Get OpenDota constants and reference dataget_player_counts - Get player count by rank tierBest for Claude Desktop integration on your local machine.
Config file location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonRecommended: Using the installed command
After running pip install -e ., add to your claude_desktop_config.json:
Note: Replace
/path/to/your/opendota-mcp-serverwith the actual path where you cloned this repository. On macOS/Linux, runpwdin the project directory to find this path. On Windows, runcdto see the full path.
Alternative: Using Python module directly
Alternative: Using the shell script
Using Docker:
After updating the config:
Access a deployed server from anywhere.
Use the publicly deployed server at:
Add to your claude_desktop_config.json:
https://opendota-mcp-server-jylza6gata-ew.a.run.app/mcpDeploy to Google Cloud Run or any container platform:
Create a .env file in the project root (or copy from .env.example):
An API key is optional but recommended for higher rate limits and better performance.
Rate Limits:
How to get an API key:
.env file:
The server will automatically detect and use the API key when configured. You'll see a confirmation message in the logs:
Contributions are welcome! Please:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)For issues, questions, or contributions:
Made with ❤️ for the Dota 2 community