# hkaanengin/opendota-mcp-server [Health: Active]

**Category:** 🎮 Gaming  
**Repository:** https://github.com/hkaanengin/opendota-mcp-server  
**GitHub Stars:** 4  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/hkaanengin-opendota-mcp-server

## Description
MCP server providing AI assistants with access to Dota 2 statistics via OpenDota API. 20+ tools for player stats, hero data, and match    analysis with natural language support.

## Tools
Capabilities this server exposes over MCP:

- **get_player_info** — Get player profile, win rate, and favorite heroes
- **get_player_win_loss** — Win/loss stats with advanced filtering
- **get_heroes_played** — Detailed statistics for all heroes played
- **get_player_peers** — Find frequent teammates
- **get_player_totals** — Aggregated player statistics
- **get_player_histograms** — Distribution of matches across statistical fields
- **get_heroes** — List all heroes with attributes
- **get_hero_matchups** — Matchup data and win rates
- **get_hero_item_popularity** — Popular item builds by game phase
- **get_hero_stats** — Aggregated hero statistics and pick rates
- **get_match_details** — Comprehensive match information
- **get_parsed_match_details** — Parsed match data with advanced analytics
- **get_player_recent_matches** — Recent matches for a player
- **get_hero_id_by_name** — Hero name → ID (handles typos)
- **get_hero_by_id** — Get hero details by ID
- **convert_lane_name_to_id** — Lane/position → lane_role ID
- **resolve_time_name** — Time period names → OpenDota filter parameters
- **search_players** — Search for players by name
- **get_constants** — Get OpenDota constants and reference data
- **get_player_counts** — Get player count by rank tier

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "opendota-mcp-server": {
    "command": "npx",
    "args": ["-y","hkaanengin-opendota-mcp-server"]
  }
}
```

## Documentation

## What hkaanengin/opendota-mcp-server MCP server does

The hkaanengin/opendota-mcp-server MCP server connects MCP-compatible assistants to the OpenDota API. Its tools cover player profiles and performance, hero statistics and matchups, item popularity, match records, and OpenDota reference data.

Player tools can retrieve a profile, win and loss totals, frequently played heroes, peers, aggregate statistics, histograms, and recent matches. Hero tools list available heroes, return aggregated pick and performance data, compare hero matchups, and show popular item builds by game phase. Match tools provide full match details and parsed match data with additional analytics.

Lookup tools translate user-friendly inputs into API parameters or IDs. For example, the server can resolve a hero name, including misspellings, convert a lane or position name into a lane-role ID, and turn a time-period name into OpenDota filter parameters.

## How it works

The server exposes more than 20 MCP tools grouped into player, hero, match, lookup, and miscellaneous functions. An assistant calls the relevant tool, and the server queries OpenDota or uses its reference data to return the result.

Natural-language-oriented lookup behavior reduces the need to know exact hero names, lane identifiers, or statistical field names. The server also includes local caching for reference data such as hero and item information. Built-in rate limiting is intended to respect OpenDota request limits.

Two transport modes are available. Stdio is intended for a locally running process, while HTTP supports a deployed server that clients can access remotely. The repository documents a public HTTP endpoint and also describes deployment to Google Cloud Run or another container platform.

## Setup and configuration

The hkaanengin/opendota-mcp-server MCP server requires Python 3.10 or later and pip when installed from source. The documented source workflow clones the repository, creates a virtual environment, and installs either runtime dependencies or development dependencies with pip. After installation, it can be started with the `opendota-mcp` command, as a Python module, or with the included shell script.

For Claude Desktop, configure the local executable in `claude_desktop_config.json` and restart the application. The repository also documents a Docker-based stdio configuration and a remote HTTP configuration using the published endpoint.

Configuration values include `MCP_TRANSPORT` for `stdio` or `http`, `PORT` for HTTP mode, and `LOG_LEVEL` for logging verbosity. `OPENDOTA_API_KEY` is optional. Anonymous use is documented at 60 requests per minute; adding an OpenDota key provides higher limits for registered users. The key is obtained from OpenDota after signing in with a Steam account.

## Tools and capabilities

- Query player profiles, win/loss records, hero usage, peers, totals, histograms, and recent matches.
- List heroes and retrieve hero statistics, matchup results, and phase-specific item popularity.
- Retrieve comprehensive or parsed match information.
- Search for players by name.
- Resolve hero names, hero IDs, lane names, and time-period filters.
- Retrieve OpenDota constants and player counts by rank tier.

## Limitations and notes

The server depends on the availability and request limits of the OpenDota API. An API key is not needed to run it, but anonymous requests have lower documented limits. HTTP mode requires a deployed server or use of the public endpoint, while local integrations require a Python installation, an installed project environment, or Docker.

The provided material documents Claude Desktop configuration and does not establish compatibility with every MCP client. The repository excerpt also does not specify a software license.

_Full upstream README: https://allmcps.com/mcp/hkaanengin-opendota-mcp-server/readme_

