batru-mcp
Provides calibrated win-rate predictions, hero lookups, counter recommendations, and draft recommendations for Dota 2 matches.
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., "@batru-mcppredict Dota 2 win rate for PA, Lina vs Sniper, Pudge"
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.
batru-mcp
A minimal, read-only MCP server over batru.gg's live API, so your LLM can answer Dota 2 / Deadlock draft, counter and win-rate questions with real, calibrated model predictions instead of guessing from memory.
It is a thin wrapper around batru.gg's public endpoints — no model runs locally; every number comes from the same production model the website serves.
Why calibrated matters
batru.gg's model is trained on ~20M real matches and calibrated: a reported 60% win rate corresponds to an empirically observed ~60% win rate. We deliberately do not headline a raw "accuracy" number — accuracy alone is misleading for win prediction. What you get from these tools are probabilities you can trust at face value. The tool descriptions instruct the host LLM to report these numbers verbatim and never invent matchup data.
Related MCP server: io.github.aemery13/polymarket-intel
Tools
Tool | What it does |
| Normalise a name/alias/shortName to |
| Calibrated win-rate % for both teams (partial drafts OK; empty → 50/50). |
| Top-3 heroes to pick next, each with its calibrated win rate. |
| Real matchup table: who this hero beats / loses to, with win rate % and sample size. |
| Calibrated win-rate % for a Deadlock 6v6 (6 heroes per team). |
Hero names are accepted in any form (e.g. am, anti mage, Anti-Mage) and normalised internally — the backend silently drops names it doesn't recognise, so normalising first keeps predictions honest.
Install
Requires uv (or any way to run a Python 3.12+ package from PyPI):
uvx batru-mcp # fetches from PyPI and starts the stdio MCP serverConfiguration is via the BATRU_API_BASE environment variable (default https://batru.gg) — you normally don't need to set anything.
Claude Desktop config
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"batru": {
"command": "uvx",
"args": ["batru-mcp"]
}
}
}Restart Claude Desktop; the batru tools appear in the tool picker. Claude Code:
claude mcp add batru -- uvx batru-mcp.
Development
git clone https://github.com/batrugg/batru-mcp && cd batru-mcp
uv sync
uv run batru-mcp # run the server from the checkout (blocks, waiting on stdin)For a Claude Desktop pointing at the checkout, use
"command": "uv", "args": ["run", "--directory", "/absolute/path/to/batru-mcp", "batru-mcp"].
Tests
uv run pytest # offline: hero normalisation + draft assembly
uv run pytest -m live # also hits the real batru.gg APIPrefer programmatic access from Python instead of MCP? pip install batru — the
official batru SDK.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/batrugg/batru-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server