OpenDota MCP Server for LangChain 18 tools — connect in under 2 minutes
LangChain is the leading Python framework for composable LLM applications. Connect OpenDota through Vinkius and LangChain agents can call every tool natively. combine them with retrievers, memory, and output parsers for sophisticated AI pipelines.
ASK AI ABOUT THIS MCP SERVER
Vinkius supports streamable HTTP and SSE.
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
async def main():
# Your Vinkius token. get it at cloud.vinkius.com
async with MultiServerMCPClient({
"opendota": {
"transport": "streamable_http",
"url": "https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp",
}
}) as client:
tools = client.get_tools()
agent = create_react_agent(
ChatOpenAI(model="gpt-4o"),
tools,
)
response = await agent.ainvoke({
"messages": [{
"role": "user",
"content": "Using OpenDota, show me what tools are available.",
}]
})
print(response["messages"][-1].content)
asyncio.run(main())
* Every MCP server runs on Vinkius-managed infrastructure inside AWS - a purpose-built runtime with per-request V8 isolates, Ed25519 signed audit chains, and sub-40ms cold starts optimized for native MCP execution. See our infrastructure
About OpenDota MCP Server
Connect to OpenDota and explore the world's most comprehensive Dota 2 match database through natural conversation.
LangChain's ecosystem of 500+ components combines seamlessly with OpenDota through native MCP adapters. Connect 18 tools via Vinkius and use ReAct agents, Plan-and-Execute strategies, or custom agent architectures. with LangSmith tracing giving full visibility into every tool call, latency, and token cost.
What you can do
- Player Profiles — Get player stats, rank tier, MMR estimate, winrate and most played heroes
- Match History — Browse a player's full match history with hero, result, KDA and duration
- Match Details — Get complete match info including all 10 players, items, builds, damage and objectives
- Heroes — List all 124 Dota 2 heroes with their roles, attributes and performance benchmarks
- Teams — Discover professional teams with their ratings, rosters and win/loss records
- Leagues — Browse all pro leagues and tournaments with tiers and dates
- Records — See all-time records for kills, GPM, XPM, hero damage and more
- MMR Distribution — View rank tier distribution across the entire Dota 2 player base
- Search — Find players, teams and leagues by name
The OpenDota MCP Server exposes 18 tools through the Vinkius. Connect it to LangChain in under two minutes — no API keys to rotate, no infrastructure to provision, no vendor lock-in. Your configuration, your data, your control.
How to Connect OpenDota to LangChain via MCP
Follow these steps to integrate the OpenDota MCP Server with LangChain.
Install dependencies
Run pip install langchain langchain-mcp-adapters langgraph langchain-openai
Replace the token
Replace [YOUR_TOKEN_HERE] with your Vinkius token
Run the agent
Save the code and run python agent.py
Explore tools
The agent discovers 18 tools from OpenDota via MCP
Why Use LangChain with the OpenDota MCP Server
LangChain provides unique advantages when paired with OpenDota through the Model Context Protocol.
The largest ecosystem of integrations, chains, and agents. combine OpenDota MCP tools with 500+ LangChain components
Agent architecture supports ReAct, Plan-and-Execute, and custom strategies with full MCP tool access at every step
LangSmith tracing gives you complete visibility into tool calls, latencies, and token usage for production debugging
Memory and conversation persistence let agents maintain context across OpenDota queries for multi-turn workflows
OpenDota + LangChain Use Cases
Practical scenarios where LangChain combined with the OpenDota MCP Server delivers measurable value.
RAG with live data: combine OpenDota tool results with vector store retrievals for answers grounded in both real-time and historical data
Autonomous research agents: LangChain agents query OpenDota, synthesize findings, and generate comprehensive research reports
Multi-tool orchestration: chain OpenDota tools with web scrapers, databases, and calculators in a single agent run
Production monitoring: use LangSmith to trace every OpenDota tool call, measure latency, and optimize your agent's performance
OpenDota MCP Tools for LangChain (18)
These 18 tools become available when you connect OpenDota to LangChain via MCP:
get_benchmarks
Compare any player's stats against the broader player base. Requires a hero ID (from list_heroes). Get hero performance benchmarks
get_constants
Optionally specify a resource name (e.g. "game_mode", "lobby_type", "lane_role", "patch", "cluster") to get a specific constant set. Get OpenDota constant data
get_distributions
Shows how many players are in each bracket (Herald, Guardian, Crusader, Archon, Legend, Ancient, Divine, Immortal). Useful for understanding where a player stands in the overall population. Get MMR and rank distributions
get_match
Returns the match duration, game mode, lobby type, league, radiant/dire team compositions, all 10 players' heroes, items, KDA, GPM, XPM, hero damage, tower damage and healing. Also includes draft picks, chat logs and team objectives for professional matches. Get detailed match info
get_player
Returns the player's profile picture, rank tier, MMR estimate, total matches, winrate and country. Account IDs are numeric Steam IDs (e.g. 87276347 for Arteezy, 19672354 for SumaiL). Use search to find a player by name first. Get player profile and stats
get_player_heroes
Useful for analyzing a player's hero pool and identifying their best heroes. Get a player's performance stats by hero
get_player_matches
Each match includes the match ID, hero played, result (win/loss), kills, deaths, assists, duration, game mode, lobby type, league and start time. Sorted by most recent first. Returns thousands of matches for active players. Get a player's match history
get_player_recent_matches
Each match includes the match ID, hero played, result, KDA, duration and game mode. Useful for checking a player's current form and recent hero pool. Get a player's recent matches (last 20)
get_player_records
Shows the match ID, hero and value for each record. Get a player's personal records
get_player_wl
Shows wins and losses for each hero, revealing their strongest and weakest picks. Useful for understanding a player's hero preferences and strengths. Get a player's win/loss record by hero
get_records
Supported fields: "kills", "deaths", "assists", "last_hits", "denies", "gold_per_min", "xp_per_min", "hero_damage", "tower_damage", "hero_healing", "level", "duration", "longest_word". Returns the top record holders with match IDs and hero info. Get all-time game records
get_team
Returns the team name, tag, logo, rating, win/loss record, player roster, matches played and recent results. Get detailed info for a professional team
list_heroes
Returns approximately 124 heroes. Useful for discovering hero IDs to use with other tools. Get the list of all Dota 2 heroes
list_leagues
Each league includes its ID, name, tier (premium, professional, amateur), region, start/end dates and logo URL. Useful for discovering tournaments and filtering matches by league. Get the list of professional leagues
list_recent_matches
Each match includes the match ID, start time, duration, radiant/dire team average MMR and winner. Returns up to 500 matches. Useful for browsing recent games and finding match IDs to explore. Get recent public matches
list_teams
Each team includes its ID, name, tag, logo URL, rating, number of wins/losses and last match time. Sorted by team rating. Useful for discovering pro teams and their IDs. Get the list of professional teams
run_explorer_query
Requires a valid SQL query string. Returns query results as an array. Advanced feature for deep data analysis. Example: "SELECT hero_id, count(*) matches FROM player_matches GROUP BY hero_id ORDER BY matches DESC LIMIT 10" Run a custom SQL query via OpenDota Explorer
search
Returns matching results with their types and IDs. Useful for finding a player's account ID or a team's ID when you only know their name. Search for players, teams, leagues and heroes
Example Prompts for OpenDota in LangChain
Ready-to-use prompts you can give your LangChain agent to start working with OpenDota immediately.
"Search for the player 'Arteezy'."
"Show me all Dota 2 heroes."
"What are the all-time records for most kills in a single match?"
Troubleshooting OpenDota MCP Server with LangChain
Common issues when connecting OpenDota to LangChain through the Vinkius, and how to resolve them.
MultiServerMCPClient not found
pip install langchain-mcp-adaptersOpenDota + LangChain FAQ
Common questions about integrating OpenDota MCP Server with LangChain.
How does LangChain connect to MCP servers?
langchain-mcp-adapters to create an MCP client. LangChain discovers all tools and wraps them as native LangChain tools compatible with any agent type.Which LangChain agent types work with MCP?
Can I trace MCP tool calls in LangSmith?
Connect OpenDota with your favorite client
Step-by-step setup guides for every MCP-compatible client and framework:
Anthropic's native desktop app for Claude with built-in MCP support.
AI-first code editor with integrated LLM-powered coding assistance.
GitHub Copilot in VS Code with Agent mode and MCP support.
Purpose-built IDE for agentic AI coding workflows.
Autonomous AI coding agent that runs inside VS Code.
Anthropic's agentic CLI for terminal-first development.
Python SDK for building production-grade OpenAI agent workflows.
Google's framework for building production AI agents.
Type-safe agent development for Python with first-class MCP support.
TypeScript toolkit for building AI-powered web applications.
TypeScript-native agent framework for modern web stacks.
Python framework for orchestrating collaborative AI agent crews.
Leading Python framework for composable LLM applications.
Data-aware AI agent framework for structured and unstructured sources.
Microsoft's framework for multi-agent collaborative conversations.
Connect OpenDota to LangChain
Get your token, paste the configuration, and start using 18 tools in under 2 minutes. No API key management needed.
