liquipedia-dota2-mcp
Provides read-only access to sourced Dota 2 tournament, team, player, and match data from Liquipedia, including metadata, rosters, schedules, and results with revision-level source metadata.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@liquipedia-dota2-mcpShow me the match schedule for The International 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
liquipedia-dota2-mcp
Read-only MCP server and Codex skill for sourced Dota 2 tournament, team, player, schedule, and result data from Liquipedia.
This is an unofficial community project. It is not affiliated with or endorsed by Liquipedia, Team Liquid, Valve, or OpenAI.
Features
Five structured MCP tools for entity search, tournament, team, player, and match queries.
Revision-level source metadata, coverage indicators, and explicit parse warnings.
Persistent SQLite cache, duplicate-request coalescing, and Liquipedia-compliant request queues.
Local
stdiotransport for Codex, ChatGPT desktop, Claude Desktop, and other MCP clients.Bundled
liquipedia-dota2Skill underskills/liquipedia-dota2.
Related MCP server: lol-client-mcp Public
Requirements
Node.js 22 or newer. The server uses Node's built-in SQLite module and does not require a native dependency build.
A custom
LIQUIPEDIA_USER_AGENTcontaining a project name, version, and contact URL or email.
Example:
MyDotaAssistant/1.0 (developer@example.com)The server refuses to start without a valid identifying User-Agent. It only sends automated requests to https://liquipedia.net/dota2/api.php; it does not scrape rendered website pages.
Install and run
After the package is published to npm:
$env:LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"
npx -y liquipedia-dota2-mcpDirectly from GitHub, without npm publishing:
$env:LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"
npx -y github:Mooooooon/liquipedia-dota2-mcpOn npm 12 and newer, git package installs are disabled by default, so add --allow-git=root:
$env:LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"
npx -y --allow-git=root github:Mooooooon/liquipedia-dota2-mcpdist/ is built automatically on install (prepare on npm 11 and earlier, pack-time prepack on npm 12), so the installer needs no build step.
From a source checkout:
npm install
npm run build
$env:LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"
node dist/cli.jsLogs use stderr so stdout remains a valid MCP transport.
Codex setup
Codex CLI and the ChatGPT desktop app share local MCP configuration. Add the published package with:
codex mcp add liquipedia-dota2 --env "LIQUIPEDIA_USER_AGENT=MyDotaAssistant/1.0 (developer@example.com)" -- npx -y liquipedia-dota2-mcpOr add this to ~/.codex/config.toml:
[mcp_servers.liquipedia_dota2]
command = "npx"
args = ["-y", "liquipedia-dota2-mcp"]
startup_timeout_sec = 20
tool_timeout_sec = 120
[mcp_servers.liquipedia_dota2.env]
LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"Install the bundled Skill by copying skills/liquipedia-dota2 into either the repository's .agents/skills directory or the user's .agents/skills directory. The Skill intentionally has no remote MCP dependency URL; configure the local server separately.
Claude Desktop setup
Add the server to the Claude Desktop MCP configuration:
{
"mcpServers": {
"liquipedia-dota2": {
"command": "npx",
"args": ["-y", "liquipedia-dota2-mcp"],
"env": {
"LIQUIPEDIA_USER_AGENT": "MyDotaAssistant/1.0 (developer@example.com)"
}
}
}
}Tools
Tool | Purpose |
| Find tournament, team, and player candidates. |
| Read tournament metadata, participants, and placements. |
| Read team metadata, roster, and coaches. |
| Read player identity and team history. |
| Read match schedule/result rows for a confirmed tournament or team. |
Every call returns data, section-level coverage, warnings, source, and a typed error. A section marked unavailable means the current parser could not establish the data; it does not mean that the source contains no records.
Cache and limits
The server enforces minimum intervals of 2.1 seconds for ordinary MediaWiki requests and 31 seconds for action=parse. These minimums cannot be weakened through environment variables. Defaults are:
Search: 6 hours
Team/player: 24 hours
Upcoming or ongoing tournament: 30 minutes
Completed tournament: 7 days
Match list: 15 minutes
Set LIQUIPEDIA_CACHE_PATH to choose the SQLite file. When Liquipedia is unavailable, an expired cache entry may be returned with source.is_stale: true and its stale age.
Development
npm run check
npm test
npm run build
npm pack --dry-runDefault tests are completely offline. An opt-in live smoke test performs a small number of compliant API calls:
$env:LIQUIPEDIA_LIVE_TEST = "1"
$env:LIQUIPEDIA_USER_AGENT = "MyDotaAssistant/1.0 (developer@example.com)"
npm run test:liveData and licensing
Project code is MIT licensed. Liquipedia text/data is separately provided under CC BY-SA 3.0 and remains subject to Liquipedia's API terms. Tool results include attribution, license, source page, revision, and fetch time. Media such as logos and player photographs is not downloaded or redistributed.
See Liquipedia API terms before deploying or modifying request behavior.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceModel Context Protocol server that enables LLMs and AI assistants to retrieve real-time Dota 2 statistics, match data, player information, and game metrics through a standardized interface.178MIT
- AlicenseCqualityDmaintenanceAn MCP (Model-Controller-Processor) server for accessing League of Legends client data. This server provides a collection of tools that communicate with the League of Legends Live Client Data API to retrieve in-game data.1212Apache 2.0
- AlicenseBqualityAmaintenanceRead-only MCP server for public Guild Wars 1 sources (wiki, builds, YouTube, Reddit) and optional local install inventory.142MIT
- AlicenseAqualityCmaintenanceProvides MCP tools to query Liquipedia esports data (matches, teams, players, tournaments, placements, standings) via the Liquipedia v3 API and MediaWiki action API.8MIT
Related MCP Connectors
OpenLigaDB MCP — community-run, keyless football / soccer match data.
The hockey data API. Stats, odds, and everything between. REST API and MCP server.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mooooooon/liquipedia-dota2-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server