MCP ExplorerExplorer

OpenDota

@asusevskion 13 days ago
4 MIT
FreeCommunity
Analytics
#Dota 2#API#Gaming#Statistics
Interact with OpenDota API to retrieve Dota 2 match data, player statistics, and more.

Overview

What is OpenDota

The OpenDota MCP Server is an implementation of a Model Context Protocol (MCP) server designed for accessing real-time Dota 2 statistics and data through a standardized interface. It enables AI applications to retrieve various information related to Dota 2, including player profiles, match histories, and hero statistics.

Use cases

It can be used for fetching player statistics, analyzing recent matches, exploring professional player information, and obtaining hero rankings. This allows developers to create AI assistants for gaming analytics, enhance player engagement through personalized experiences, and provide insights for eSports analysis.

How to use

Users can set up their environment by cloning the repository, installing dependencies, and configuring an OpenDota API key as an environment variable. The server can be run directly using Python or integrated with applications like Claude Desktop using a specific configuration file to execute commands seamlessly within environments like WSL.

Key features

The server offers features such as accessing detailed player profiles, recent match data, overall player statistics, hero analytics, professional player searches, and match history retrieval. It also includes tools for obtaining word clouds from player chats and information about teams.

Where to use

The OpenDota MCP Server can be utilized in various contexts such as gaming analytics applications, eSports commentary tools, AI-driven chatbots for Dota 2, and any platform requiring in-depth Dota 2 data analysis and statistics for developers, researchers, or casual enthusiasts.

Content

OpenDota MCP Server

A Model Context Protocol (MCP) server implementation for accessing OpenDota API data. This server enables LLMs and AI assistants to retrieve real-time Dota 2 statistics, match data, player information, and more through a standard interface.

Features

  • Access player profiles, statistics, and match history
  • Retrieve detailed match information
  • Look up professional players and teams
  • Get hero statistics and rankings
  • Search for players by name
  • And more!

Installation

# Clone the repository
git clone https://github.com/asusevski/opendota-mcp-server.git
cd opendota-mcp-server

# Option 1: Automated setup (works with bash, zsh, and other shells)
./scripts/setup_env.sh

# Option 2: Manual installation with uv
uv add pyproject.toml

# For development dependencies
uv pip install -e ".[dev]"

Usage

Setting up your environment

  1. (Optional but recommended) Create an OpenDota API key at https://www.opendota.com/api-keys
  2. Set your API key as an environment variable:
export OPENDOTA_API_KEY=your_api_key_here

Running the server directly

python -m src.opendota_server.server

Running the server with Claude Desktop

Follow this: https://modelcontextprotocol.io/quickstart/user

If you use WSL, assuming you have cloned the repo and set up the python environment, this is how I wrote the claude_desktop_config.json:

{
  "mcpServers": {
    "opendota": {
      "command": "wsl.exe",
      "args": [
        "--",
        "bash",
        "-c",
        "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py"
      ]
    }
  }
}

Using the example client

python -m src.client

Specific tools included:

  • get_player_by_id - Retrieve player information by account ID
  • get_player_recent_matches - Get recent matches for a player
  • get_match_data - Get detailed data for a specific match
  • get_player_win_loss - Get win/loss statistics for a player
  • get_player_heroes - Get a player’s most played heroes
  • get_hero_stats - Get statistics for heroes
  • search_player - Search for players by name
  • get_pro_players - Get list of professional players
  • get_pro_matches - Get recent professional matches
  • get_player_peers - Get players who have played with a specified player
  • get_heroes - Get list of all Dota 2 heroes
  • get_player_totals - Get player’s overall stats totals
  • get_player_rankings - Get player hero rankings
  • get_player_wordcloud - Get most common words used by player in chat
  • get_team_info - Get information about a team
  • get_public_matches - Get recent public matches
  • get_match_heroes - Get heroes played in a specific match

License

MIT

Tools

No tools

Comments