Skip to main content
Glama
Archers007

Liquipedia MCP

by Archers007

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

query

Low-level access to any datapoint (match, team, player, tournament, placement, standingsentry, transfer, teamtemplate, squadplayer, series, company, externalmedialink). Full conditions / order / query control.

list_matches

Matches (schedules + results) for a wiki. Filter by opponent, tournament, date.

list_teams

Teams for a wiki. Filter by name, region, location.

list_players

Players for a wiki. Filter by id (handle), team, nationality.

list_tournaments

Tournaments for a wiki. Filter by name, startdate, organizer.

list_placements

Tournament placements/results. Filter by opponentname, tournament.

list_standings

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.

get_wikitext

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 by AND / 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).

Related MCP server: osrs-wiki-mcp

Setup

pnpm install            # or: npm install
cp .env.example .env    # then set LIQUIPEDIA_API_KEY to YOUR key

You 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

LIQUIPEDIA_API_KEY

β€”

v3 API key (required for structured tools; get_wikitext works without).

LIQUIPEDIA_USER_AGENT

LiquipediaMCP/1.0 (…)

Identifying UA sent on every request (required by ToS).

LIQUIPEDIA_MIN_INTERVAL_MS

2000

Minimum gap between requests (rate limiting).

LIQUIPEDIA_TIMEOUT_MS

12000

Per-request timeout.

LIQUIPEDIA_RETRIES

1

Retries on timeout / 429.

LOG_LEVEL

info

silent/error/warn/info/debug (logs go to stderr).

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 query

Add 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.

Available Tools

8 tools
get_wikitextGet Liquipedia page wikitextA

Fetch the raw wikitext of one or more Liquipedia pages via the MediaWiki action API (no API key required). Useful for infoboxes, rosters, and page content not exposed as structured datapoints. Returns { title: wikitext }.

ParametersJSON Schema
NameRequiredDescriptionDefault
wikiYesSingle wiki, e.g. 'valorant'.
titlesYesPage titles to fetch, e.g. ['Shopify Rebellion', 'TenZ'].
sectionNoOnly return this section index (0 = lead/infobox). Omit for full page.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses 'no API key required' and the return format, but lacks details on limits, errors, or performance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste. Front-loaded with action and resource, efficient use of space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers purpose, use cases, return format, and authentication. Could add page limits or failure modes, but sufficient for a simple fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are documented in the input schema (100% coverage). The description adds no new parameter-level semantics beyond what the schema provides, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch the raw wikitext' with a specific resource (Liquipedia pages via MediaWiki API). It distinguishes from sibling structured-data tools by noting it's for content 'not exposed as structured datapoints'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Useful for infoboxes, rosters, and page content not exposed as structured datapoints', which guides selection. Does not explicitly state when not to use, but the contrast with structured siblings is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_matchesList esports matchesA

Fetch matches (schedules + results) for a wiki. Filter by team/opponent, tournament, or date. Returns upcoming and completed matches with scores, opponents, tournament, and stream URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate condition, e.g. '>2024-01-01' or '<2025-01-01'.
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order (default 'date DESC').
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
opponentNoTeam name that must appear in the match, e.g. 'Shopify Rebellion'.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.
tournamentNoFilter to a specific tournament name.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It mentions returning upcoming and completed matches with specific fields, but does not disclose rate limits, auth needs, error conditions, or pagination behavior. It is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose and filters, and includes return value hints. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers high-level purpose and return fields, but lacks details on how filters combine, default limits, or the 'conditions' parameter. It is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so baseline is 3. The description adds minor context about which filters are available (team/opponent, tournament, date) and what is returned, but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches matches with filters, using specific verb 'Fetch' and resource 'matches'. However, it does not differentiate from sibling tools like 'query' or 'list_standings', missing some sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists filters but lacks explicit guidance on when to use this tool versus alternatives. No 'when to use' or 'when not to use' is provided; usage is implied through the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_placementsList tournament placementsB

Fetch tournament placements/results for a team or player on a wiki. Returns placement (e.g. '1', '3-4'), prize money, and the tournament.

ParametersJSON Schema
NameRequiredDescriptionDefault
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order (default 'date DESC').
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.
tournamentNoFilter to a specific tournament.
opponentnameNoTeam or player name whose placements to fetch.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. 'Fetch' implies read-only but is not explicitly stated. No mention of side effects, rate limits, or authorization needs. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 17 words, front-loaded with verb and resource. No wasted words; every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description is too brief. It does not hint at how to use commonly needed filters like opponentname, tournament, or conditions, leaving the agent to infer solely from schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described in schema), so baseline is 3. The description adds no extra parameter-level detail beyond what schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches tournament placements/results for a team or player on a wiki, and specifies returned fields (placement, prize money, tournament). This distinguishes from siblings like list_matches, though it could more explicitly differentiate from list_standings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The description implies use for team/player-specific placements but does not list exclusions or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_playersList esports playersB

Fetch players for a wiki. Filter by id/handle, team, or nationality. Returns handle, real name, country, team, and role.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoPlayer handle / id, e.g. 'TenZ'.
teamNoCurrent team name.
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order, e.g. 'date DESC' or 'date ASC'.
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.
nationalityNoNationality/country filter.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It fails to mention that this is a read-only operation, potential rate limits, or any side effects. It only describes the basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that covers the purpose and key features. It is front-loaded and easy to parse, though it could be slightly restructured for clarity on output fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and no annotations, the description provides adequate but not comprehensive context. It mentions return fields but omits default behavior (e.g., limit default is 20) and pagination details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond schema by summarizing filter options, but it does not enrich individual parameter meanings beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch players'), the resource ('for a wiki'), filtering options, and return fields. It effectively distinguishes from sibling tools like list_teams or list_matches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('Fetch players for a wiki') and mentions filters but does not explicitly provide when-to-use or when-not-to-use guidance compared to siblings. No alternative tools are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_standingsList tournament standings (points table)A

Fetch the ranked standings / points table for a tournament. Ideal for battle-royale events (Apex/ALGS, PUBG, Fortnite) and any group-stage points table. Returns teams SORTED by placement with their points, using the latest round snapshot. Pass the tournament's page name (from a match/tournament row's pagename, e.g. 'Apex Legends Global Series/2026/Split 1/Playoffs').

ParametersJSON Schema
NameRequiredDescriptionDefault
wikiYesSingle wiki, e.g. 'apexlegends'.
limitNoMax teams to return (default 100).
stageNoOptional sub-table filter matched against the page name, e.g. 'Group', 'Survivor', 'Final'.
tournamentYesTournament page name (its standings parent), spaces or underscores, e.g. 'Apex Legends Global Series/2026/Split 1/Playoffs'.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that results are 'SORTED by placement' and use the 'latest round snapshot', but lacks detail on caching, rate limits, or error behavior. The disclosed traits are adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely conciseβ€”two sentences that front-load the purpose and provide essential usage guidance. Every sentence is meaningful and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output (teams sorted by placement, points, latest round snapshot) despite the absence of an output schema. It covers key behavioral aspects for a filtered-list tool. Missing details like pagination or error cases but still fairly complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema, only providing a usage example for the 'tournament' parameter. It does not clarify parameter formats or constraints beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('ranked standings / points table'), clearly distinguishing it from siblings like list_matches or list_placements by referencing battle-royale events and group-stage tables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong context for when to use ('Ideal for battle-royale events... and any group-stage points table') and includes a concrete example for the tournament parameter. However, it does not explicitly state when not to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_teamsList esports teamsA

Fetch teams for a wiki. Filter by name, region, or location. Returns team metadata (name, region, roster template, social links, logo).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExact team name, e.g. 'Shopify Rebellion'.
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order, e.g. 'date DESC' or 'date ASC'.
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
regionNoRegion filter, e.g. 'North America'.
locationNoLocation/country filter.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It describes fetching and returning metadata, which is a read operation, but does not disclose behavioral traits such as pagination behavior, rate limits, or authentication needs. The limit parameter in schema indicates default/max but is not mentioned in description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence followed by a bullet list of return fields. It is concise and front-loaded, with no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters and no output schema or annotations, the description is somewhat incomplete. It does not mention that the 'wiki' parameter is required, nor does it explain the 'conditions' parameter or the interaction between structured filters and raw conditions. The returned field list is helpful but lacks detail on the return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description highlights three filter parameters (name, region, location) but does not add meaning to other parameters (limit, order, query, conditions, wiki) beyond what the schema provides. It repeats some schema info but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch teams') and the resource ('teams for a wiki'), with explicit filter options and return fields. It effectively distinguishes from sibling tools like list_players or list_matches by focusing on team metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies usage for team data retrieval, but does not exclude cases where other list tools might be more appropriate (e.g., use list_players for player data).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tournamentsList esports tournamentsB

Fetch tournaments for a wiki. Filter by name, date, or organizer. Returns tournament name, dates, prize pool, participant count, and location.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTournament name filter.
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order (default 'startdate DESC').
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
organizerNoOrganizer filter.
startdateNoStart-date condition, e.g. '>2024-01-01'.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It reveals return fields (tournament name, dates, prize pool, etc.) which is helpful but does not disclose any behavioral traits like pagination, error handling, or rate limits. The description adds some value beyond the schema but could be more transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences that directly state the action and the return fields. There is no redundancy or wasted words, making it easy for an AI agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers the core purpose and return fields but omits the required 'wiki' parameter and does not explain how filters combine. It is adequate for a basic understanding but leaves gaps for complete usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description only restates a subset of filters (name, date, organizer) and does not enhance understanding of complex parameters like 'conditions' or 'query'. It provides minimal additional semantic value beyond what is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool fetches tournaments for a wiki with filtering by name, date, or organizer. However, it does not differentiate from sibling tools like list_matches or list_teams, which might lead to confusion about when to use this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It only describes the tool's basic functionality without context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queryQuery a Liquipedia datapointA

Low-level access to any Liquipedia v3 datapoint. Supported datapoints: match, team, player, tournament, placement, standingsentry, transfer, teamtemplate, squadplayer, series, company, externalmedialink. Provide the wiki and an optional raw conditions string (Liquipedia [[field::value]] syntax joined by AND/OR).

ParametersJSON Schema
NameRequiredDescriptionDefault
wikiYesLiquipedia wiki(s) to query, e.g. 'valorant', 'counterstrike', 'dota2'. Pipe-separate multiple wikis: 'valorant|counterstrike'.
limitNoMax rows to return (default 20).
orderNoSort order, e.g. 'date DESC' or 'date ASC'.
queryNoComma-separated list of fields to return (projection), e.g. 'pagename,date,opponent'.
offsetNoRow offset for pagination.
groupbyNoGroup-by clause, e.g. 'tournament::asc'.
datapointYesThe Liquipedia datapoint / endpoint to query.
conditionsNoRaw Liquipedia condition string, e.g. '[[opponent::Team A]] AND [[date::>2024-01-01]]'. Combined (AND) with any structured filters. Use OR/AND and [[field::value]] syntax.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the use of Liquipedia's condition syntax and that conditions are combined with structured filters (though no structured filters parameter exists, which may cause confusion). It does not mention return format, pagination behavior beyond offset/limit, rate limits, or authentication. This is adequate for a read-only query but leaves gaps in behavior understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose ('low-level access'). The second sentence provides essential usage details without fluff. Every part is substantive, and there is no redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters, no output schema, and no annotations. The description covers the main functionality and condition syntax, but it lacks details about the return format (e.g., structure of the output) and how multiple wikis are combined. Given the absence of output schema, a brief mention of what the response contains would improve completeness. Still, the core purpose is well-covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the raw conditions syntax with an example and mentioning that conditions are combined with structured filters. However, it does not provide additional semantics for other parameters (e.g., how 'query' differs from 'conditions') beyond the schema. The marginal improvement over schema justifies a score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'low-level access to any Liquipedia v3 datapoint' and lists all supported datapoints. The verb 'query' combined with the explanation of the condition syntax makes the purpose unmistakable. It also implicitly distinguishes from sibling list tools (e.g., list_matches) by positioning itself as lower-level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that users need to provide a wiki and optional raw conditions, and it hints at usage by mentioning the condition syntax. However, it does not explicitly state when to choose this tool over siblings (e.g., when custom queries are needed vs. when to use for simple listing), and it lacks a 'when not to use' note. Still, the guidance is clear enough for most agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.0
    • First observedget_wikitext
    • First observedlist_matches
    • First observedlist_placements
    • First observedlist_players
    • First observedlist_standings
    • First observedlist_teams
    • First observedlist_tournaments
    • First observedquery

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct entity or operation (wikitext, matches, placements, players, standings, teams, tournaments, generic query), with clear descriptions that differentiate them. No obvious overlap.

Naming Consistency3/5

Most tools use 'list_' prefix for fetching lists, but 'get_wikitext' uses 'get_' and 'query' is a bare verb. This inconsistency in naming convention could cause confusion about the action being performed.

Tool Count4/5

8 tools is a reasonable number for an esports wiki server, covering major entities. Not too few or too many, but a few more specialized tools could be added without bloat.

Completeness5/5

The tool set covers the main entities (matches, players, teams, tournaments, standings, placements) plus raw wikitext retrieval and a generic query tool for any other datapoint, ensuring no obvious gaps.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides read-only access to Old School RuneScape Wiki data, returning structured content with source provenance via MCP tools for searching pages, items, monsters, quests, shops, and drop sources.
    10
    14
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes the Stardew Valley Wiki as structured data via MCP tools for keyword/semantic search, page retrieval, and entity listings.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server for sourced Dota 2 tournament, team, player, schedule, and result data from Liquipedia, with revision-level metadata and caching.
    5
    9
    MIT