Skip to main content
Glama

Get regulation set

get_regulation
Read-onlyIdempotent

Fetch a full Pokémon Champions/VGC regulation: battle rules, team clauses, Mega Evolution rules, eligible count, and optional legal rosters. Use with list_regulations and check_legality.

Instructions

Get one Pokémon Champions / VGC Regulation Set in full: battle rules (level 50 doubles, timers, bring 4 of 6), team clauses (Species, Item, auto-level 50), Mega Evolution rules, and the size of the legal roster. The two name rosters — every legal base species, and every species allowed to Mega Evolve — are about two thirds of the response and come back only with includeRoster; the eligibleCount/megaCount sizes are always there. Accepts the id or name case- and punctuation-insensitively ("M-A", "m-a", "mc", "Regulation Set M-C"); an unknown id is an isError listing the valid names. Use list_regulations to discover ids and check_legality to test a team. Read-only and offline; returns dates, status, counts, clauses, and source.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
regulationYesRegulation Set id or name, matched case- and punctuation-insensitively: "M-A", "m-a", "mc", and "Regulation Set M-C" all resolve to the same set.
includeRosterNoInclude the two name rosters — every legal base species and every species allowed to Mega Evolve — which together are about two thirds of the response. Omitted, the rules and the `eligibleCount`/`megaCount` sizes come back without them; pass true when you actually need the names.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesRegulation id, e.g. "m-a", "m-b", "m-c".
endYesLast day the set is in force, ISO 8601 (inclusive).
gameYesGame the set belongs to ("Pokémon Champions").
nameYesDisplay name, e.g. "Regulation Set M-C".
levelYesLevel every Pokémon is set to (50).
notesYesCurator summary of the format and what it changed over the previous set.
startYesFirst day the set is in force, ISO 8601 (inclusive).
roundsYesTournament round structure, e.g. "BO1/BO3 Swiss, BO3 top cut".
sourceYesURL of the source the rosters were taken from.
statusYesStatus relative to today: "past", "current", or "upcoming".
timersYesMatch clock limits.
clausesYesTeam-construction clauses in force for this set.
bringPickYesTeam preview rule ("4 of 6"): register six Pokémon, pick four for each match.
megaCountYesHow many base species on the roster may Mega Evolve.
battleTypeYesBattle format this set is played in ("Double Battles").
sourceAsOfYesISO date the rosters were last refreshed.
eligibleCountYesHow many base species are on the legal roster.
megaEvolutionYesMega Evolution rules.
eligibleSpeciesNoThe full legal base-species roster; every form of a listed species is legal. Present only when `includeRoster` was set — `eligibleCount` gives the size either way.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv3.2.0
    • addedInput schema / properties / includeRoster
      Added value: +{
      +  "description": "Include the two name rosters — every legal base species and every species allowed to Mega Evolve — which together are about two thirds of the response. Omitted, the rules and the `eligibleCount`/`megaCount` sizes come back without them; pass true when you actually need the names.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / eligibleSpecies / description
      Previous value: -"The full legal base-species roster (large); every form of a listed species is legal."New value: +"The full legal base-species roster; every form of a listed species is legal. Present only when `includeRoster` was set — `eligibleCount` gives the size either way."
    • changedOutput schema / properties / megaEvolution / properties / species / description
      Previous value: -"Base species allowed to Mega Evolve; every form of each is covered."New value: +"Base species allowed to Mega Evolve; every form of each is covered. Present only when `includeRoster` was set — `megaCount` gives the size either way."
    • changedOutput schema / properties / megaEvolution / required
      Previous value: -[
      -  "allowed",
      -  "perBattle",
      -  "species"
      -]New value: +[
      +  "allowed",
      +  "perBattle"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "game",
      -  "status",
      -  "start",
      -  "end",
      -  "eligibleCount",
      -  "megaCount",
      -  "notes",
      -  "battleType",
      -  "level",
      -  "bringPick",
      -  "timers",
      -  "rounds",
      -  "clauses",
      -  "megaEvolution",
      -  "eligibleSpecies",
      -  "source",
      -  "sourceAsOf"
      -]New value: +[
      +  "id",
      +  "name",
      +  "game",
      +  "status",
      +  "start",
      +  "end",
      +  "eligibleCount",
      +  "megaCount",
      +  "notes",
      +  "battleType",
      +  "level",
      +  "bringPick",
      +  "timers",
      +  "rounds",
      +  "clauses",
      +  "megaEvolution",
      +  "source",
      +  "sourceAsOf"
      +]
  2. Changed2 schema fields changedv1.1.1
    • addedInput schema / properties / regulation / description
      Added value: +"Regulation Set id or name, matched case- and punctuation-insensitively: \"M-A\", \"m-a\", \"mc\", and \"Regulation Set M-C\" all resolve to the same set."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "battleType": {
      +      "description": "Battle format this set is played in (\"Double Battles\").",
      +      "type": "string"
      +    },
      +    "bringPick": {
      +      "description": "Team preview rule (\"4 of 6\"): register six Pokémon, pick four for each match.",
      +      "type": "string"
      +    },
      +    "clauses": {
      +      "additionalProperties": false,
      +      "description": "Team-construction clauses in force for this set.",
      +      "properties": {
      +        "anyMoveAbility": {
      +          "description": "True when any move or Ability obtainable through normal gameplay is allowed, including Hidden Abilities.",
      +          "type": "boolean"
      +        },
      +        "autoLevel50": {
      +          "description": "True when Pokémon above or below level 50 are auto-levelled to 50.",
      +          "type": "boolean"
      +        },
      +        "itemClause": {
      +          "description": "True when no two team members may hold the same item.",
      +          "type": "boolean"
      +        },
      +        "speciesClause": {
      +          "description": "True when no two team members may share a National Pokédex number.",
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "speciesClause",
      +        "itemClause",
      +        "autoLevel50",
      +        "anyMoveAbility"
      +      ],
      +      "type": "object"
      +    },
      +    "eligibleCount": {
      +      "description": "How many base species are on the legal roster.",
      +      "type": "number"
      +    },
      +    "eligibleSpecies": {
      +      "description": "The full legal base-species roster (large); every form of a listed species is legal.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "end": {
      +      "description": "Last day the set is in force, ISO 8601 (inclusive).",
      +      "type": "string"
      +    },
      +    "game": {
      +      "description": "Game the set belongs to (\"Pokémon Champions\").",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Regulation id, e.g. \"m-a\", \"m-b\", \"m-c\".",
      +      "type": "string"
      +    },
      +    "level": {
      +      "description": "Level every Pokémon is set to (50).",
      +      "type": "number"
      +    },
      +    "megaCount": {
      +      "description": "How many base species on the roster may Mega Evolve.",
      +      "type": "number"
      +    },
      +    "megaEvolution": {
      +      "additionalProperties": false,
      +      "description": "Mega Evolution rules.",
      +      "properties": {
      +        "allowed": {
      +          "description": "Whether Mega Evolution is legal in this set.",
      +          "type": "boolean"
      +        },
      +        "perBattle": {
      +          "description": "How many times a player may Mega Evolve per battle (1).",
      +          "type": "number"
      +        },
      +        "species": {
      +          "description": "Base species allowed to Mega Evolve; every form of each is covered.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "allowed",
      +        "perBattle",
      +        "species"
      +      ],
      +      "type": "object"
      +    },
      +    "name": {
      +      "description": "Display name, e.g. \"Regulation Set M-C\".",
      +      "type": "string"
      +    },
      +    "notes": {
      +      "description": "Curator summary of the format and what it changed over the previous set.",
      +      "type": "string"
      +    },
      +    "rounds": {
      +      "description": "Tournament round structure, e.g. \"BO1/BO3 Swiss, BO3 top cut\".",
      +      "type": "string"
      +    },
      +    "source": {
      +      "description": "URL of the source the rosters were taken from.",
      +      "type": "string"
      +    },
      +    "sourceAsOf": {
      +      "description": "ISO date the rosters were last refreshed.",
      +      "type": "string"
      +    },
      +    "start": {
      +      "description": "First day the set is in force, ISO 8601 (inclusive).",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Status relative to today: \"past\", \"current\", or \"upcoming\".",
      +      "enum": [
      +        "past",
      +        "current",
      +        "upcoming"
      +      ],
      +      "type": "string"
      +    },
      +    "timers": {
      +      "additionalProperties": false,
      +      "description": "Match clock limits.",
      +      "properties": {
      +        "gameMinutes": {
      +          "description": "Total game clock, in minutes.",
      +          "type": "number"
      +        },
      +        "moveSeconds": {
      +          "description": "Seconds allowed per move.",
      +          "type": "number"
      +        },
      +        "playerMinutes": {
      +          "description": "Each player’s clock, in minutes.",
      +          "type": "number"
      +        },
      +        "previewSeconds": {
      +          "description": "Seconds allowed for team preview.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "gameMinutes",
      +        "playerMinutes",
      +        "moveSeconds",
      +        "previewSeconds"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "name",
      +    "game",
      +    "status",
      +    "start",
      +    "end",
      +    "eligibleCount",
      +    "megaCount",
      +    "notes",
      +    "battleType",
      +    "level",
      +    "bringPick",
      +    "timers",
      +    "rounds",
      +    "clauses",
      +    "megaEvolution",
      +    "eligibleSpecies",
      +    "source",
      +    "sourceAsOf"
      +  ],
      +  "type": "object"
      +}
  3. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description reinforces this ('Read-only and offline') and adds crucial behavioral context: error handling ('unknown id is an isError listing valid names'), the conditional roster inclusion, and that eligibleCount/megaCount are always present. This goes well beyond 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 a single dense paragraph, longer than average, but every sentence contributes: purpose, rosters, error, siblings, read-only. It is front-loaded with the primary purpose and then layers details. Minor verbosity but no filler.

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?

For a moderately complex read tool with an output schema, the description covers the main operational aspects: what is returned, the conditional roster, error behavior, sibling tools, and read-only status. It is fully adequate for an agent to call it correctly.

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?

Schema coverage is 100% with both parameters described in the schema, so the baseline is 3. The description adds value by explaining that rosters are about two thirds of the response and only come with includeRoster, and by re-emphasizing case- and punctuation-insensitivity. It enriches the parameter meaning beyond the schema.

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?

States a specific verb ('Get') and resource ('Regulation Set') with concrete content: battle rules, team clauses, Mega Evolution rules, roster size. It also names the two sibling tools it is not (list_regulations, check_legality) and explains how it differs, so an agent can distinguish it without opening schemas.

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?

Explicitly directs to list_regulations for discovery and check_legality for team testing, and clarifies the read-only, offline nature. It also explains when to pass includeRoster ('when you actually need the names'), which is practical usage guidance.

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