Skip to main content
Glama

VGC Teambuilder

Check a team against the most-used Pokémon

check_team_threats
Read-onlyIdempotent

Check a team against the Pokémon it is most likely to face in a regulation. For each threat (the most used Pokémon by default, or the ones named) it reports the team's hardest hit into it, its hardest hit into the team, and which team members outspeed it. Each threat uses its most common set in the regulation's usage statistics. Results are single hits with no screens or stat changes, under the weather or terrain the attacker's own ability sets if any. This is not a battle simulation; use calculate_damage to examine one matchup under specific conditions.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "team": "<team>"
    },
    "name": "check_team_threats"
  }
}

Input Schema

NameRequiredDescriptionDefault
teamYesThe team, one to six Pokémon
limitNoHow many of the most used Pokémon to check (1–10). Defaults to 8
formatNoRegulation id from list_formats. Defaults to "champions-regmc" (Pokémon Champions — Regulation M-C).
threatsNoPokémon to check against. Defaults to the most used in the regulation.

Output Schema

NameRequiredDescriptionDefault
teamYes
formatYesRegulation id the result applies to
threatsYes
formatNameYesDisplay name of the regulation
assumptionsYesEverything the calculation assumed, including any part of a set that was filled in because it was not given. Tell the user about these.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them by disclosing the calculation model: single hits, no screens or stat changes, weather or terrain only from the attacker's own ability, and each threat using its most common regulation set. These are exactly the assumptions an agent needs to interpret results correctly rather than misreading them as full battle simulation.

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?

Four sentences, front-loaded with what the tool produces and followed by methodology caveats and the alternative tool. The long 'single hits with no screens or stat changes...' sentence is dense but earns its place as an assumption disclosure; a slightly tighter phrasing could split it without loss.

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 four-parameter tool with a full output schema and complete annotation coverage, the description covers purpose, defaults, calculation assumptions, and the boundary with calculate_damage. Nothing an agent needs to call it correctly or interpret its output is missing.

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?

With 100% schema coverage the baseline is 3, but the description adds real meaning beyond the schema by explaining that omitted set fields (item, moves, ability, spread) fall back to the regulation's most-common usage data, and that limit vs threats are two alternative ways to select opponents. It does not clarify the format parameter's relationship to list_formats beyond the schema's own note, keeping it below a 5.

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 states a specific verb and resource — checking a team against the Pokémon it is most likely to face in a regulation — and immediately enumerates the three outputs per threat (team's hardest hit in, threat's hardest hit back, which members outspeed). This is clearly distinguishable from calculate_damage, which it names explicitly as the single-matchup alternative.

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?

It gives an explicit exclusion plus the alternative that replaces it: 'This is not a battle simulation; use calculate_damage to examine one matchup under specific conditions.' It also implies the default case (no threats named → most-used Pokémon). It does not position itself against other team-level siblings such as get_checks_and_counters or analyze_team_types, so selection guidance is clear but not exhaustive.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.