Liquipedia MCP
Liquipedia MCP
A Model Context Protocol server that exposes the Liquipedia v3 esports API β matches, teams, players, tournaments, placements, and standings β as MCP tools any AI client (Claude Desktop, Cursor, pi, β¦) can call.
It talks to the Liquipedia v3 REST API (https://api.liquipedia.net/api/v3)
using the Authorization: Apikey <key> scheme, plus the MediaWiki action API
for raw page wikitext. Requests are serialized and rate-limited to respect
Liquipedia's API terms of use.
π Bring your own API key. This server ships with no credentials. Every user must supply their own Liquipedia v3 API key β request one via the Liquipedia API terms page.
Tools
Tool | What it does |
| Low-level access to any datapoint ( |
| Matches (schedules + results) for a wiki. Filter by |
| Teams for a wiki. Filter by |
| Players for a wiki. Filter by |
| Tournaments for a wiki. Filter by |
| Tournament placements/results. Filter by |
| Ranked standings / points table for a tournament (great for battle-royale like Apex/ALGS, PUBG, Fortnite). Returns teams sorted by placement with points, using the latest round snapshot. Pass the tournament page name. |
| Raw wikitext of one or more pages via the MediaWiki API (no key needed). |
Common parameters
wikiβ the Liquipedia wiki to query:valorant,counterstrike,dota2,leagueoflegends,rocketleague,apexlegends,rainbowsix,halo,smash,fighters,starcraft2, β¦ Pipe-separate for multiple:valorant|counterstrike.conditionsβ raw Liquipedia condition syntax,[[field::value]]joined byAND/OR, e.g.[[opponent::Sentinels]] AND [[date::>2024-01-01]]. The convenience tools' typed filters are merged (AND) with this.queryβ comma-separated projection of fields to return, e.g.pagename,date,tournament.limit,offset,order(e.g.date DESC).
Setup
pnpm install # or: npm install
cp .env.example .env # then set LIQUIPEDIA_API_KEY to YOUR keyYou need your own Liquipedia v3 API key. Request one via the
Liquipedia API terms page, then put
it in .env (or pass it via the MCP client's env, see below). Also set
LIQUIPEDIA_USER_AGENT to identify your app + a contact, as the terms require.
Variable | Default | Description |
| β | v3 API key (required for structured tools; |
|
| Identifying UA sent on every request (required by ToS). |
|
| Minimum gap between requests (rate limiting). |
|
| Per-request timeout. |
|
| Retries on timeout / 429. |
|
|
|
Run
The server speaks MCP over stdio β an MCP client launches it as a subprocess.
pnpm start # node src/index.js
pnpm run inspect # open the MCP Inspector UI
node scripts/smoke.mjs # end-to-end check: lists tools + runs a real queryAdd to an MCP client
Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):
{
"mcpServers": {
"liquipedia": {
"command": "node",
"args": ["/absolute/path/to/LiqMcp/src/index.js"],
"env": {
"LIQUIPEDIA_API_KEY": "your-own-key-here",
"LIQUIPEDIA_USER_AGENT": "MyApp/1.0 (you@example.com)"
}
}
}
}Or run it straight from GitHub without cloning (Node β₯20):
{
"mcpServers": {
"liquipedia": {
"command": "npx",
"args": ["-y", "github:Archers007/LiqMcp"],
"env": { "LIQUIPEDIA_API_KEY": "your-own-key-here" }
}
}
}If you leave LIQUIPEDIA_API_KEY out of env, the server reads it from a
.env in the working directory. The key is always supplied by you β none
is bundled with the server.
Example prompts
"Use liquipedia to list Shopify Rebellion Gold's upcoming valorant matches."
"What tournaments are on the counterstrike wiki with the biggest prize pools?"
"Get Sentinels' team info from the valorant wiki (name, region, logo)."
"Fetch the wikitext infobox (section 0) for the 'TenZ' page on the valorant wiki."
How it works
MCP client ββstdioββ> src/index.js (McpServer, 7 tools)
β
βΌ
src/client.js ββ serialized + rate-limited ββ> Liquipedia v3 API
β (Apikey auth)
ββββββββββββββββββββββββββββββββββββββββ> MediaWiki action API
(wikitext, no key)src/config.jsβ env-driven config (key, UA, timeouts, rate limit).src/client.jsβLiquipediaClient: query builder, single-flight rate limiter, timeout + retry, 429 handling.src/index.jsβ MCP server: tool schemas (zod), condition builder, error mapping.
Notes
The Liquipedia API is unofficial/unstable and rate-limited β requests are serialized with a minimum interval; heavy use may still be throttled (429).
Data is CC-BY-SA; attribute Liquipedia on anything you render from it.
Not affiliated with or endorsed by Liquipedia / Team Liquid.