Bring Esports
to Pydantic AI
Create your Vinkius account to connect OpenDota to Pydantic AI and start using all 18 AI tools in minutes. Fully managed, enterprise secure, and ready to use without writing a single line of code. No hosting, no server setup — just connect and start using.
Compatible with every major AI agent and IDE
What is the OpenDota MCP Server?
Connect to OpenDota and explore the world's most comprehensive Dota 2 match database through natural conversation.
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
How it works
- Subscribe to this server
- No API key needed for basic access (60k requests/hour)
- Explore Dota 2 data from Claude, Cursor, or any MCP-compatible client
Who is this for?
- Players — review match history, analyze hero performance and compare stats
- Analysts — explore team records, league data and player benchmarks
- Fans — discover pro teams, check tournament results and search for favorite players
- Researchers — access MMR distributions, game mode data and match statistics
Built-in capabilities (18)
Compare any player's stats against the broader player base. Requires a hero ID (from list_heroes). Get hero performance benchmarks
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
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
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
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
Useful for analyzing a player's hero pool and identifying their best heroes. Get a player's performance stats by hero
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
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)
Shows the match ID, hero and value for each record. Get a player's personal records
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
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
Returns the team name, tag, logo, rating, win/loss record, player roster, matches played and recent results. Get detailed info for a professional team
Returns approximately 124 heroes. Useful for discovering hero IDs to use with other tools. Get the list of all Dota 2 heroes
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
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
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
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
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
Why Pydantic AI?
Pydantic AI validates every OpenDota tool response against typed schemas, catching data inconsistencies at build time. Connect 18 tools through Vinkius and switch between OpenAI, Anthropic, or Gemini without changing your integration code. full type safety, structured output guarantees, and dependency injection for testable agents.
- —
Full type safety: every MCP tool response is validated against Pydantic models, catching data inconsistencies before they reach your application
- —
Model-agnostic architecture. switch between OpenAI, Anthropic, or Gemini without changing your OpenDota integration code
- —
Structured output guarantee: Pydantic AI ensures tool results conform to defined schemas, eliminating runtime type errors
- —
Dependency injection system cleanly separates your OpenDota connection logic from agent behavior for testable, maintainable code
OpenDota in Pydantic AI
Why run OpenDota with Vinkius?
The OpenDota connection runs on our fully managed, secure cloud infrastructure. We handle the hosting, maintenance, and security so you don't have to deal with servers or code. All 18 tools are ready to work instantly without any complex setup.
You stay in complete control of your data. Your AI only accesses the information you approve, keeping your sensitive passwords and private details completely safe. Plus, with automatic optimizations, your AI works faster and more efficiently.

* Every connection is hosted and maintained by Vinkius. We handle the security, updates, and infrastructure so you don't have to write code or manage servers. See our infrastructure
Over 4,000 integrations ready for AI agents
Explore a vast library of pre-built integrations, optimized and ready to deploy.
Connect securely in under 30 seconds
Generate tokens to authenticate and link external services in a single step.
Complete visibility into every agent action
Audit live requests, latency, success rates, and active security compliance policies.
Optimize spending and track token ROI
Analyze real-time token consumption and cost metrics detailed by connection.




Explore our live AI Agents Analytics dashboard to see it all working
This dashboard is included when you connect OpenDota using Vinkius. You will never be left in the dark about what your AI agents are doing with your tools.
OpenDota and 4,000+ other AI tools. No hosting, no code, ready to use.
Professionals who connect OpenDota to Pydantic AI through Vinkius don't need to write code, manage servers, or worry about security. Everything is pre-configured, secure, and runs automatically in the background.
Raw MCP | Vinkius | |
|---|---|---|
| Ready-to-use MCPs | Find and configure each manually | 4,000+ MCPs ready to use |
| Connection Setup | Manual coding & server setup | 1-click instant connection |
| Server Hosting | You host it yourself (needs 24/7 uptime) | 100% hosted & managed by Vinkius |
| Security & Privacy | Stored in plaintext config files | Bank-grade encrypted vault |
| Activity Visibility | Blind execution (no logs or tracking) | Live dashboard with real-time logs |
| Cost Control | Runaway AI token spend risk | Automatic budget limits |
| Revoking Access | Must delete files or code to stop | 1-click disconnect button |
How Vinkius secures
OpenDota for Pydantic AI
Every request between Pydantic AI and OpenDota is protected by our secure gateway. We automatically keep your sensitive data private, prevent unauthorized access, and let you disconnect instantly at any time.
Frequently asked questions
Do I need an API key?
No! OpenDota provides free access with 60,000 requests/hour without any API key. An optional free API key is available from opendota.com for higher rate limits, but it's not required.
How do I find a player's account ID?
Use the search tool with the player's name (e.g. 'Arteezy', 'SumaiL', 'Topson'). The results include their Steam account ID which you can then use with player-specific tools. You can also find account IDs on sites like dotabuff.com or stratz.com.
What data is available for matches?
Match data includes: all 10 players' heroes, items, KDA, GPM, XPM, hero damage, tower damage, healing, lane positions, draft picks, chat logs, team objectives, ability builds and more. Professional matches have even more detailed data including observer ward placements and rune pickups.
How many heroes are in Dota 2?
Dota 2 currently has 124 heroes, each with unique abilities and roles. Use list_heroes to see the complete list with their IDs, names, primary attributes (Strength, Agility, Intelligence, Universal) and roles (carry, support, offlane, mid).
How does Pydantic AI discover MCP tools?
Create an MCPServerHTTP instance with the server URL. Pydantic AI connects, discovers all tools, and generates typed Python interfaces automatically.
Does Pydantic AI validate MCP tool responses?
Yes. When you define result types as Pydantic models, every tool response is validated against the schema. Invalid data raises a clear error instead of silently corrupting your pipeline.
Can I switch LLM providers without changing MCP code?
Absolutely. Pydantic AI abstracts the model layer. your OpenDota MCP integration works identically with OpenAI, Anthropic, Google, or any supported provider.
MCPServerHTTP not found
Update: pip install --upgrade pydantic-ai
Explore More MCP Servers
View all →
Serviceform
7 toolsConvert website visitors with chatbots, forms, and booking widgets that generate leads and collect data without friction.

Simplicate
12 toolsManage your Dutch professional services firm with CRM, project management, and invoicing designed for the Benelux market.

Stanford bioRxiv
16 toolsSearch and retrieve preprint research papers in biology and life sciences from the bioRxiv open access repository.

Pirsch Analytics
14 toolsPrivacy-friendly web analytics — track hits, events, and retrieve detailed statistics for your domains directly from your AI agent.
