Skip to main content
Glama

Get standard competitive set

get_set
Read-onlyIdempotent

Retrieve a Pokémon species' most-played competitive set, including item, ability, nature, EVs, moves, role, and tier, as a Showdown-format paste. Pass one species or an array for multiple sets.

Instructions

Return one species’ most-played competitive set: item, ability (with the Mega form and ability for Mega sets), nature, EVs, the four most-played moves, role, tier, usage share, the usage figures behind it, and the set as a Showdown-format paste ready to copy into a team builder or paste host, with EVs in Champions stat points. Pass an array of species to fetch several sets in one call, which answers as sets — use that rather than calling once per species. Reach for it when asked what a species usually runs; list_threats gives the ranked species of a regulation and check_legality validates teams. Species match is case-insensitive and ignores punctuation, and resolves forms, so "Indeedee-F" and "Salamence-Mega" find the same sets as "Indeedee" and "Salamence"; pass regulation (e.g. "m-c") to scope to one list; unknown species return an isError. Usage-derived from Limitless VGC tournament teams, not editorial opinion; read-only, offline, no network or auth.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
speciesYesBase species or form name, e.g. "Garchomp", "Indeedee-F" (case- and punctuation-insensitive). Pass an array to fetch several sets in one call, which returns `sets` instead of the flat set.
regulationNoOptional regulation set id, e.g. "m-c"; omit to search every list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
evsNoMost-played spread, keyed by Showdown stat and scaled to the 0-252 EVs `calculate_stats` and `calculate_damage` take; only invested stats are listed, everything omitted is 0. Absent when the source published no spread for that species.
formNoForm the set is played as when that is not the default one, e.g. "Arcanine-Hisui"; absent otherwise.
itemNoMost-played held item, e.g. "Salamencite".
rankNoPosition by usage in this list; 1 is the most used.
roleNoRole read off the set’s ability and moves, e.g. "Rain setter", "Mega Intimidate pivot".
setsNoOne entry per requested species, in the order supplied; present only when `species` was an array.
tierNoUsage band: S is the top 5 by usage, A the next 7, B the rest of the list.
movesNoThe four most-played moves, most played first.
notesNoThe usage figures this set was derived from; absent when the list carries none.
pasteNoThe whole set as a Showdown-format paste, ready to copy into a team builder or paste host: `species @ item`, ability, level 50, nature, EVs in Pokémon Champions stat points (0-32 each, 66 total — what the game’s training screen takes), then the four moves. A Mega set names the base species holding its stone.
usageNoShare of the sampled teams carrying this species, in percent.
natureNoMost-played nature, e.g. "Timid".
abilityNoMost-played ability on the form that was led, i.e. before Mega Evolving on a Mega set.
speciesNoBase species name in Showdown spelling, e.g. "Garchomp"; every form collapses into it because Species Clause is per National Pokédex number.
megaFormNoMega form this set evolves into, e.g. "Salamence-Mega"; absent when the set is not a Mega set.
regulationNoDisplay name of the list the set came from, e.g. "Regulation Set M-C"; present only when a single species was requested.
sourceAsOfNoISO date of the newest data point behind that list; present only when a single species was requested.
megaAbilityNoAbility after Mega Evolving; absent when the set is not a Mega set.
championsPointsNoThe same spread in Pokémon Champions stat points (whole numbers, at most 32 in a stat, 66 total), which is what the game’s training screen takes and the form the source publishes; `evs` is this converted to the 0-252 scale the calculate_* tools take. Absent when the source published no spread.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv3.2.0
    • addedInput schema / properties / species / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "maxItems": 24,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / species / description
      Previous value: -"Base species or form name, e.g. \"Garchomp\", \"Indeedee-F\" (case- and punctuation-insensitive)."New value: +"Base species or form name, e.g. \"Garchomp\", \"Indeedee-F\" (case- and punctuation-insensitive). Pass an array to fetch several sets in one call, which returns `sets` instead of the flat set."
    • removedInput schema / properties / species / type
      Removed value: -"string"
    • addedOutput schema / properties / championsPoints
      Added value: +{
      +  "additionalProperties": {
      +    "type": "number"
      +  },
      +  "description": "The same spread in Pokémon Champions stat points (whole numbers, at most 32 in a stat, 66 total), which is what the game’s training screen takes and the form the source publishes; `evs` is this converted to the 0-252 scale the calculate_* tools take. Absent when the source published no spread.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / paste
      Added value: +{
      +  "description": "The whole set as a Showdown-format paste, ready to copy into a team builder or paste host: `species @ item`, ability, level 50, nature, EVs in Pokémon Champions stat points (0-32 each, 66 total — what the game’s training screen takes), then the four moves. A Mega set names the base species holding its stone.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / regulation / description
      Previous value: -"Display name of the list the set came from, e.g. \"Regulation Set M-C\"."New value: +"Display name of the list the set came from, e.g. \"Regulation Set M-C\"; present only when a single species was requested."
    • addedOutput schema / properties / sets
      Added value: +{
      +  "description": "One entry per requested species, in the order supplied; present only when `species` was an array.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ability": {
      +        "description": "Most-played ability on the form that was led, i.e. before Mega Evolving on a Mega set.",
      +        "type": "string"
      +      },
      +      "championsPoints": {
      +        "additionalProperties": {
      +          "type": "number"
      +        },
      +        "description": "The same spread in Pokémon Champions stat points (whole numbers, at most 32 in a stat, 66 total), which is what the game’s training screen takes and the form the source publishes; `evs` is this converted to the 0-252 scale the calculate_* tools take. Absent when the source published no spread.",
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "evs": {
      +        "additionalProperties": false,
      +        "description": "Most-played spread, keyed by Showdown stat and scaled to the 0-252 EVs `calculate_stats` and `calculate_damage` take; only invested stats are listed, everything omitted is 0. Absent when the source published no spread for that species.",
      +        "properties": {
      +          "atk": {
      +            "description": "Attack EVs.",
      +            "type": "number"
      +          },
      +          "def": {
      +            "description": "Defense EVs.",
      +            "type": "number"
      +          },
      +          "hp": {
      +            "description": "HP EVs.",
      +            "type": "number"
      +          },
      +          "spa": {
      +            "description": "Special Attack EVs.",
      +            "type": "number"
      +          },
      +          "spd": {
      +            "description": "Special Defense EVs.",
      +            "type": "number"
      +          },
      +          "spe": {
      +            "description": "Speed EVs.",
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "form": {
      +        "description": "Form the set is played as when that is not the default one, e.g. \"Arcanine-Hisui\"; absent otherwise.",
      +        "type": "string"
      +      },
      +      "item": {
      +        "description": "Most-played held item, e.g. \"Salamencite\".",
      +        "type": "string"
      +      },
      +      "megaAbility": {
      +        "description": "Ability after Mega Evolving; absent when the set is not a Mega set.",
      +        "type": "string"
      +      },
      +      "megaForm": {
      +        "description": "Mega form this set evolves into, e.g. \"Salamence-Mega\"; absent when the set is not a Mega set.",
      +        "type": "string"
      +      },
      +      "moves": {
      +        "description": "The four most-played moves, most played first.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "nature": {
      +        "description": "Most-played nature, e.g. \"Timid\".",
      +        "type": "string"
      +      },
      +      "notes": {
      +        "description": "The usage figures this set was derived from; absent when the list carries none.",
      +        "type": "string"
      +      },
      +      "paste": {
      +        "description": "The whole set as a Showdown-format paste, ready to copy into a team builder or paste host: `species @ item`, ability, level 50, nature, EVs in Pokémon Champions stat points (0-32 each, 66 total — what the game’s training screen takes), then the four moves. A Mega set names the base species holding its stone.",
      +        "type": "string"
      +      },
      +      "rank": {
      +        "description": "Position by usage in this list; 1 is the most used.",
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "regulation": {
      +        "description": "Display name of the list the set came from.",
      +        "type": "string"
      +      },
      +      "role": {
      +        "description": "Role read off the set’s ability and moves, e.g. \"Rain setter\", \"Mega Intimidate pivot\".",
      +        "type": "string"
      +      },
      +      "sourceAsOf": {
      +        "description": "ISO date of the newest data point behind that list.",
      +        "type": "string"
      +      },
      +      "species": {
      +        "description": "Base species name in Showdown spelling, e.g. \"Garchomp\"; every form collapses into it because Species Clause is per National Pokédex number.",
      +        "type": "string"
      +      },
      +      "tier": {
      +        "description": "Usage band: S is the top 5 by usage, A the next 7, B the rest of the list.",
      +        "enum": [
      +          "S",
      +          "A",
      +          "B"
      +        ],
      +        "type": "string"
      +      },
      +      "usage": {
      +        "description": "Share of the sampled teams carrying this species, in percent.",
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "regulation",
      +      "sourceAsOf",
      +      "species",
      +      "role",
      +      "tier",
      +      "rank",
      +      "usage",
      +      "item",
      +      "ability",
      +      "nature",
      +      "moves",
      +      "paste"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / sourceAsOf / description
      Previous value: -"ISO date of the newest data point behind that list."New value: +"ISO date of the newest data point behind that list; present only when a single species was requested."
    • removedOutput schema / required
      Removed value: -[
      -  "regulation",
      -  "sourceAsOf",
      -  "species",
      -  "role",
      -  "tier",
      -  "rank",
      -  "usage",
      -  "item",
      -  "ability",
      -  "nature",
      -  "moves"
      -]
  2. Changed19 schema fields changedv2.0.0
    • changedInput schema / properties / regulation / description
      Previous value: -"Optional regulation set id, e.g. \"m-c\"; omit to search every curated list."New value: +"Optional regulation set id, e.g. \"m-c\"; omit to search every list."
    • changedInput schema / properties / species / description
      Previous value: -"Base species name as curated, e.g. \"Garchomp\", \"Incineroar\" (case-insensitive)."New value: +"Base species or form name, e.g. \"Garchomp\", \"Indeedee-F\" (case- and punctuation-insensitive)."
    • changedOutput schema / properties / ability / description
      Previous value: -"Ability on the base form, i.e. before Mega Evolving."New value: +"Most-played ability on the form that was led, i.e. before Mega Evolving on a Mega set."
    • changedOutput schema / properties / evs / description
      Previous value: -"EV spread keyed by Showdown stat; only the invested stats are listed, everything omitted is 0."New value: +"Most-played spread, keyed by Showdown stat and scaled to the 0-252 EVs `calculate_stats` and `calculate_damage` take; only invested stats are listed, everything omitted is 0. Absent when the source published no spread for that species."
    • addedOutput schema / properties / form
      Added value: +{
      +  "description": "Form the set is played as when that is not the default one, e.g. \"Arcanine-Hisui\"; absent otherwise.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / item / description
      Previous value: -"The set’s standard held item, e.g. \"Garchompite\"."New value: +"Most-played held item, e.g. \"Salamencite\"."
    • changedOutput schema / properties / megaForm / description
      Previous value: -"Mega form this set evolves into, e.g. \"Mega Garchomp\"; absent when the set is not a Mega set."New value: +"Mega form this set evolves into, e.g. \"Salamence-Mega\"; absent when the set is not a Mega set."
    • changedOutput schema / properties / moves / description
      Previous value: -"The four recommended moves."New value: +"The four most-played moves, most played first."
    • changedOutput schema / properties / nature / description
      Previous value: -"Recommended nature, e.g. \"Jolly\"."New value: +"Most-played nature, e.g. \"Timid\"."
    • changedOutput schema / properties / notes / description
      Previous value: -"Curator commentary on how the set is played; absent when the curated set has none."New value: +"The usage figures this set was derived from; absent when the list carries none."
    • addedOutput schema / properties / rank
      Added value: +{
      +  "description": "Position by usage in this list; 1 is the most used.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / regulation / description
      Previous value: -"Display name of the curated list the set came from, e.g. \"Regulation Set M-C\"."New value: +"Display name of the list the set came from, e.g. \"Regulation Set M-C\"."
    • changedOutput schema / properties / role / description
      Previous value: -"Short competitive role, e.g. \"Mega sweeper / wallbreaker\"."New value: +"Role read off the set’s ability and moves, e.g. \"Rain setter\", \"Mega Intimidate pivot\"."
    • changedOutput schema / properties / sourceAsOf / description
      Previous value: -"ISO date that list was last reviewed."New value: +"ISO date of the newest data point behind that list."
    • changedOutput schema / properties / species / description
      Previous value: -"Curated base species name in Showdown spelling, e.g. \"Garchomp\"."New value: +"Base species name in Showdown spelling, e.g. \"Garchomp\"; every form collapses into it because Species Clause is per National Pokédex number."
    • removedOutput schema / properties / teraType
      Removed value: -{
      -  "description": "Recommended Tera type; absent when the curated set does not specify one.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / tier / description
      Previous value: -"Curated tier within the regulation: S (format-defining), A, or B — editorial, not usage data."New value: +"Usage band: S is the top 5 by usage, A the next 7, B the rest of the list."
    • addedOutput schema / properties / usage
      Added value: +{
      +  "description": "Share of the sampled teams carrying this species, in percent.",
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "regulation",
      -  "sourceAsOf",
      -  "species",
      -  "role",
      -  "tier",
      -  "item",
      -  "ability",
      -  "nature",
      -  "evs",
      -  "moves"
      -]New value: +[
      +  "regulation",
      +  "sourceAsOf",
      +  "species",
      +  "role",
      +  "tier",
      +  "rank",
      +  "usage",
      +  "item",
      +  "ability",
      +  "nature",
      +  "moves"
      +]
  3. Addedv1.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this read-only, idempotent, and non-destructive, and the description reinforces and expands that with additional behavioral facts: species matching is case-insensitive and form-resolving, unknown species return an isError, and the data comes from Limitless VGC tournament teams rather than editorial opinion. It also states no network or auth is needed, which is useful context beyond the annotations.

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 long but well organized: core purpose first, then array batching, usage guidance, matching rules, regulation, errors, and provenance. Every section adds operational value, though a few details like "read-only, offline, no network or auth" are repeated in spirit by the annotations and could be trimmed.

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

Completeness5/5

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

Given the output schema exists, the return values need no further explanation. The description covers purpose, when to use it, sibling differences, batching, species normalization, regulation scoping, error behavior, and data provenance. There is no critical gap an agent would need to guess about before calling the tool.

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

Parameters4/5

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

The input schema already covers both parameters at 100%, so the baseline is 3. The description adds value by explaining why to pass an array — "use that rather than calling once per species" — and by clarifying how `regulation` scopes the search. It also provides error behavior for unknown species.

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 opens with a specific verb and resource: "Return one species’ most-played competitive set," and enumerates exactly what the set contains. It also distinguishes itself from siblings by saying `list_threats` gives ranked species and `check_legality` validates teams, so an agent can tell this tool apart without guessing.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance: "Reach for it when asked what a species usually runs." It also names alternatives with contrasting purposes, and even advises batching array calls rather than calling once per species, which is concrete operational guidance.

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