getcompetitive
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_pokemonA | Look up one Pokémon and return its competitive profile: types, base stats and BST, abilities by slot, weight, gender ratio, egg groups, and evolutions. Accepts any Showdown name or form, case- and punctuation-insensitive ("garchomp", "Ogerpon-Wellspring", "rotom wash"); unknown names return an isError listing near matches. Use |
| list_formsA | List every form of one species — base, alternate, cosmetic, and battle-only — with each form's types, base stats, abilities, plus the total count. Forms that have no data are returned with a note rather than dropped, so a missing entry is visible. Use it before assuming a form exists; for a single species' full profile use |
| search_dexA | Find species, moves, items, abilities, or natures by case-insensitive substring of name or Showdown id, sorted by National Dex number and truncated to |
| get_moveA | Get one move's battle data: type, damage class, base power, accuracy, PP, priority, target, flags, secondary effect, Z/Max variants, and effect text. Use |
| get_itemA | Get one held item's data: effect text, category flags (Berry, Choice, Mega Stone, …), Z-move, Natural Gift, Fling, and flat stat boosts. Use it to confirm what an item actually does before recommending it; |
| get_abilityA | Get one ability's effect text, flags, and the generations it exists in. Use it before relying on an ability in damage or speed reasoning; the set inputs of |
| get_natureA | Get one nature's stat effect: the stat it raises 10% and the stat it lowers 10%, or a neutral effect for the five natures that change nothing (Hardy, Docile, Serious, Bashful, Quirky). Use it when assembling a set, since |
| get_learnsetA | List every move a Pokémon can learn, grouped by acquisition method (level-up with the level, TM/TR, egg, tutor, event, and so on). This is the species’ own learnset: a move it inherits from a pre-evolution — an egg move such as Grookey’s Fake Out — is filed against that pre-evolution, so use |
| get_typeA | Get the defensive profile of one type: what it is weak to, what it resists, what it is immune to, plus the Hidden Power IVs for that type. Use it for a type's own matchups; for one specific pairing pass attacker and defender to |
| get_type_matchupA | Resolve type effectiveness in the mode the arguments imply: attacker + defender returns the single multiplier (the defender may be a type or a species, whose current-generation typing is used); attacker alone returns that type's offensive coverage against all 18 types; defender alone returns everything the defender takes, including 4x weaknesses and immunities; neither returns the complete 18x18 matrix. Use |
| calculate_statsA | Compute one Pokémon’s final six stats at a level from its nature, IVs, and EVs, returning the stat table plus base stats and BST. Stats only, never a battle: use |
| calculate_damageA | Simulate one attack end to end: one attacker set, one defender set, one named move, optionally under weather, terrain, game type, or side conditions. Use |
| calculate_matchupsA | Run one attacker against 1-30 defenders in a single call, picking the hardest-hitting move per defender from |
| check_speedA | Compute one Pokémon’s final Speed and, given a Regulation Set, rank it against that roster at its fastest (252 EV, +Spe nature) and uninvested reference speeds. Speed only: for damage use |
| optimize_evsA | Derive a minimal EV spread for one Pokémon satisfying up to three goals: survive a named attack, outspeed a target Speed, and guarantee a KO in 1-4 hits. Use it when EVs must come from a goal — |
| list_regulationsA | List every Pokémon Champions / VGC Regulation Set with its id, dates, status, and roster size. Takes no arguments; status is relative to today and the active set is also returned as |
| get_regulationA | 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 |
| check_legalityA | Validate up to 6 team members against a Pokémon Champions / VGC Regulation Set, reporting illegal or unknown species, duplicate National Pokédex numbers (Species Clause), duplicate items (Item Clause), unlearnable moves, team size (must be exactly 6), and who may Mega Evolve (one per battle). Species resolve case-insensitively to base species (any form of a legal base qualifies). A move is legal when any species in the evolution line knows it — the form, its base species, or a pre-evolution — because egg and level-up moves carry up on evolution: Rillaboom may hold Fake Out, which is Grookey’s egg move. |
| analyze_teamA | Analyze a whole team’s type synergy: per-type weak, resist, and immune counts with the types at risk, super-effective coverage from STAB and supplied moves, speed placement, and a transparent 0-100 heuristic score — a quick signal, not a metagame rating. With |
| list_threatsA | List the most-used Pokémon of one Pokémon Champions regulation, ranked by measured usage: each threat’s species, role, tier (S/A/B by usage rank) and usage share, plus the sample and sources the list was derived from; omit |
| get_setA | 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 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Every tool has a clear primary purpose and the descriptions cross-reference the right alternative for each situation, but a few closely related pairs can be confused: get_type vs get_type_matchup both cover defensive effectiveness, and calculate_damage vs calculate_matchups both perform damage rolls. The overlap is well-mitigated by explicit usage guidance, so it is mostly distinct rather than perfectly unambiguous.
All 21 tools follow a predictable verb_noun snake_case pattern: get_* for lookups, list_* for enumerations, calculate_* for simulations, plus check_*, optimize_evs, search_dex, and analyze_team. The verb reliably signals the action and the noun reliably signals the resource, making the naming extremely consistent.
21 tools is on the high side of the typical sweet spot, but the domain is genuinely broad: entity lookups, battle calculations, EV optimization, regulation data, threat lists, team analysis, and legality validation. Each tool maps to a distinct workflow with little redundancy, so the count feels justified rather than bloated.
The tool surface covers the full competitive Pokémon workflow: search to discover names, lookup entities, compute stats and damage, optimize EVs, inspect regulations, fetch usage-based sets, analyze team synergy, and validate legality. Cross-references close gaps, and unknown-name errors return near matches, so agents are unlikely to hit dead ends.