pypi batru-mcpstreamable-httpMITupdated 14d ago
[!IMPORTANT] Use the hosted endpoint — no install needed. Add https://batru.gg/mcp to Claude, ChatGPT, Cursor or any MCP client and you get the newest tool set (31 read-only tools across Dota 2, Deadlock and Marvel Rivals, always in sync with the live site). Setup guide: https://batru.gg/developers The local PyPI package described below (uvx batru-mcp) is legacy and no longer updated — it is frozen at an early version with a reduced tool set. It still works (it proxies the same live API), but the hosted endpoint is the canonical distribution.
What can you do with Batru — Dota 2, Deadlock & Marvel Rivals win predictor?
batru-mcp
[!IMPORTANT] Use the hosted endpoint — no install needed. Add
https://batru.gg/mcpto Claude, ChatGPT, Cursor or any MCP client and you get the newest tool set (31 read-only tools across Dota 2, Deadlock and Marvel Rivals, always in sync with the live site). Setup guide: https://batru.gg/developersThe local PyPI package described below (
uvx batru-mcp) is legacy and no longer updated — it is frozen at an early version with a reduced tool set. It still works (it proxies the same live API), but the hosted endpoint is the canonical distribution.
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.
Tools
| Tool | What it does |
|---|---|
lookup_hero(query, game="dota2") |
Normalise a name/alias/shortName to {id, displayName, shortName}. game ∈ {dota2, deadlock}. |
predict_dota_winrate(my_heroes, enemy_heroes, my_side="radiant") |
Calibrated win-rate % for both teams (partial drafts OK; empty → 50/50). |
recommend_dota_pick(my_heroes, enemy_heroes, my_side="radiant") |
Top-3 heroes to pick next, each with its calibrated win rate. |
get_dota_counters(hero, limit=12) |
Real matchup table: who this hero beats / loses to, with win rate % and sample size. |
predict_deadlock_draft(team0_heroes, team1_heroes) |
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 server
Configuration 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 API
Prefer programmatic access from Python instead of MCP? pip install batru — the
official batru SDK.
Install
Add Batru — Dota 2, Deadlock & Marvel Rivals win predictor to your client. Pick the one you use.
{
"servers": {
"batru-mcp": {
"type": "http",
"url": "https://batru.gg/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add batru-mcp -- uvx batru-mcpcodex mcp add batru-mcp -- uvx batru-mcpamp mcp add batru-mcp -- uvx batru-mcp{
"mcpServers": {
"batru-mcp": {
"command": "uvx",
"args": [
"batru-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"batru-mcp": {
"command": "uvx",
"args": [
"batru-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"batru-mcp": {
"command": "uvx",
"args": [
"batru-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"batru-mcp": {
"command": "uvx",
"args": [
"batru-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"batru-mcp": {
"command": "uvx",
"args": [
"batru-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"batru-mcp": {
"type": "local",
"command": "uvx",
"args": [
"batru-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"batru-mcp": {
"command": {
"path": "uvx",
"args": [
"batru-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx batru-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation18/25
- Maintenance25/25
- Trust16/20
- Capability0/15
- Install experience15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 7 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.5.3Latest | Aug 23, 2026 |
| 0.5.2 | Aug 22, 2026 |
| 0.5.1 | Aug 22, 2026 |
| 0.5.0 | Aug 19, 2026 |
| 0.4.1 | Aug 18, 2026 |
| 0.3.1 | Jul 25, 2026 |
| 0.2.1 | Jul 18, 2026 |
| 0.2.0 | Jul 18, 2026 |
| 0.1.2 | Jul 3, 2026 |