getcompetitive 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,17 +7,22 @@
7
7
  [![Glama](https://glama.ai/mcp/servers/mriver15/getcompetitive/badges/score.svg)](https://glama.ai/mcp/servers/mriver15/getcompetitive)
8
8
 
9
9
  A [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server that gives
10
- AI agents everything needed to build, analyze, and validate competitive Pokémon
11
- teams including **Pokémon Champions / VGC** regulations.
10
+ AI agents what they need to build, analyze, and validate **Pokémon Champions**
11
+ teams: the official Regulation Sets, the usage-derived meta, and the battle math
12
+ behind them.
13
+
14
+ Champions is the only game here. The server speaks its terms — doubles, level 50,
15
+ Mega Evolution once per battle, 66 stat points, no Terastallization — and the
16
+ Smogon-tier and archetype surface that used to sit alongside it is gone.
12
17
 
13
18
  ## What it provides
14
19
 
15
- - **25 tools** across five domains: data, team building, meta (usage-derived), battle mechanics, and official regulation sets
20
+ - **21 tools** across five domains: data, team analysis, meta (usage-derived), battle mechanics, and official regulation sets
16
21
  - **Structured, agent-first definitions** — every tool declares MCP annotations and an output schema, returns `structuredContent` alongside JSON text, and documents all of its parameters; the deterministic half of the [TDQS](https://tdqs.dev) checklist is linted in CI
17
- - Full **Pokémon Showdown** competitive dataset — species, alternate forms, stats, moves, items, abilities, natures, learnsets, types, tiers
18
- - **Battle math** from Smogon's calculator — stat calculation and full damage calculation (weather, terrain, boosts, items, Tera)
22
+ - Full **Pokémon Showdown** dataset — species, alternate forms, stats, moves, items, abilities, natures, learnsets, types
23
+ - **Battle math** from Smogon's calculator — stat calculation and full damage calculation (weather, terrain, boosts, items)
24
+ - **Both EV scales** — the 0-252 EVs the calculator takes and Pokémon Champions' own 66 stat points, accepted on input and reported alongside every spread
19
25
  - **Official Regulation Sets** (M-A → M-C) with seasonal legal rosters and team legality checking
20
- - Generation-aware data (1–9, default 9)
21
26
 
22
27
  Built on [`@pkmn/dex`](https://github.com/pkmn/EPOKe) (Showdown data) and
23
28
  [`@smogon/calc`](https://github.com/smogon/calc) (battle math).
@@ -27,7 +32,7 @@ Built on [`@pkmn/dex`](https://github.com/pkmn/EPOKe) (Showdown data) and
27
32
  ### Data
28
33
  | Tool | Purpose |
29
34
  | --- | --- |
30
- | `get_pokemon` | Types, base stats, BST, abilities, tiers, forms, weight, gender, evolutions |
35
+ | `get_pokemon` | Types, base stats, BST, abilities, forms, weight, gender, evolutions |
31
36
  | `list_forms` | All forms of a species (alternate, cosmetic, battle-only) |
32
37
  | `search_dex` | Fuzzy name search across species / moves / items / abilities / natures |
33
38
  | `get_move` | Type, category, power, accuracy, PP, priority, target, secondary effects |
@@ -38,14 +43,10 @@ Built on [`@pkmn/dex`](https://github.com/pkmn/EPOKe) (Showdown data) and
38
43
  | `get_type` | Defensive weaknesses, resistances, immunities |
39
44
  | `get_type_matchup` | Matchup multiplier, offensive coverage, or defensive chart (defender can be a species) |
40
45
 
41
- ### Team building
46
+ ### Team analysis
42
47
  | Tool | Purpose |
43
48
  | --- | --- |
44
- | `list_archetypes` | Recognized archetypes (Hyper Offense, Rain, Stall, Trick Room, …) with roles + members |
45
- | `get_archetype` | Full detail: description, roles, members, strengths, weaknesses, counters, tips |
46
- | `list_tiers` | All legal Pokemon grouped by competitive tier (singles/doubles) |
47
- | `list_speed_tiers` | Speed of every Pokemon in a tier at common investment levels, sorted |
48
- | `analyze_team` | Team synergy: stacked defensive weaknesses, offensive coverage gaps, speed placement, and a heuristic 0-100 score |
49
+ | `analyze_team` | Team synergy: stacked defensive weaknesses, offensive coverage gaps, speed placement, a heuristic score, and with a regulation coverage against the meta's real sets |
49
50
 
50
51
  ### Meta (usage-derived)
51
52
  | Tool | Purpose |
@@ -69,10 +70,6 @@ Built on [`@pkmn/dex`](https://github.com/pkmn/EPOKe) (Showdown data) and
69
70
  | `check_speed` | Final Speed (nature/EV/IV/boost/Scarf) vs a regulation roster's invested/uninvested speeds |
70
71
  | `optimize_evs` | EV spread solver: min EVs to survive / outspeed / guarantee a KO, then maximize a stat |
71
72
 
72
- > **Two taxonomies.** `list_tiers` / `list_speed_tiers` use **Smogon fan tiers**
73
- > (OU/UU/Uber — a community laddering system). The Regulation tools use the
74
- > **official Pokémon Champions / VGC Regulation Sets** (seasonal legal rosters).
75
-
76
73
  ## Install
77
74
 
78
75
  ### npm
package/dist/dex.js CHANGED
@@ -10,7 +10,7 @@ import { Dex, toID } from '@pkmn/dex';
10
10
  import { Generations, Pokemon, Move as CalcMove, Field, Side, calculate, calcStat } from '@smogon/calc';
11
11
  export { toID };
12
12
  export const STATS = ['hp', 'atk', 'def', 'spa', 'spd', 'spe'];
13
- /** The 18 classic types (Stellar is gen-9 Terastal-only; queried separately). */
13
+ /** The 18 classic types; Stellar is Terastal-only and outside them. */
14
14
  export const TYPES18 = [
15
15
  'Normal', 'Fighting', 'Flying', 'Poison', 'Ground', 'Rock', 'Bug', 'Ghost', 'Steel',
16
16
  'Fire', 'Water', 'Grass', 'Electric', 'Psychic', 'Ice', 'Dragon', 'Dark', 'Fairy',
@@ -34,13 +34,6 @@ export function getDex(gen) {
34
34
  export function getCalcGen(gen) {
35
35
  return Generations.get(gen);
36
36
  }
37
- export function normalizeGen(input) {
38
- const n = input ?? 9;
39
- if (!Number.isInteger(n) || n < 1 || n > 9) {
40
- throw new Error(`Unsupported generation ${input}; supported: 1-9 (default 9).`);
41
- }
42
- return n;
43
- }
44
37
  /** Clean, JSON-safe projection of a Species for LLM consumption. */
45
38
  export function speciesToObj(s) {
46
39
  return {
@@ -51,9 +44,6 @@ export function speciesToObj(s) {
51
44
  baseStats: s.baseStats,
52
45
  bst: s.bst,
53
46
  abilities: s.abilities,
54
- tier: s.tier,
55
- doublesTier: s.doublesTier,
56
- natDexTier: s.natDexTier,
57
47
  baseSpecies: s.baseSpecies || undefined,
58
48
  forme: s.forme || undefined,
59
49
  baseForme: s.baseForme || undefined,
@@ -78,7 +68,6 @@ export function speciesToObj(s) {
78
68
  isPrimal: s.isPrimal || undefined,
79
69
  canGigantamax: s.canGigantamax,
80
70
  cannotDynamax: s.cannotDynamax,
81
- requiredTeraType: s.requiredTeraType,
82
71
  isNonstandard: s.isNonstandard,
83
72
  unreleasedHidden: s.unreleasedHidden || undefined,
84
73
  tags: s.tags,
@@ -297,6 +286,72 @@ function normalizeSources(sources) {
297
286
  export function finalStat(gen, stat, base, iv, ev, level, nature) {
298
287
  return calcStat(getCalcGen(gen), stat, base, iv, ev, level, nature);
299
288
  }
289
+ /** Pokémon Champions budgets stat points rather than EVs: 66 total, at most 32 in one stat. */
290
+ export const CHAMPIONS_POINTS_TOTAL = 66;
291
+ export const CHAMPIONS_POINTS_MAX = 32;
292
+ /** One point is worth 8 EVs — the rate that lands 32 points on the 252-EV cap. */
293
+ const EV_PER_CHAMPIONS_POINT = 8;
294
+ /**
295
+ * Convert a Champions stat-point spread (0-32 per stat, 66 points total) into the
296
+ * 0-252 EVs `@smogon/calc` takes.
297
+ *
298
+ * The two systems budget differently — 66 points is 528 EVs at this rate, against
299
+ * the 510 cap the calc enforces — so a converted spread is trimmed from its largest
300
+ * stats, in steps of 4, until it fits. `scripts/build-threats.mjs` applies the same
301
+ * rule to the published spreads; keep the two in step.
302
+ */
303
+ export function championsPointsToEvs(points) {
304
+ let total = 0;
305
+ const evs = {};
306
+ for (const s of STATS) {
307
+ const p = points[s] ?? 0;
308
+ if (!Number.isInteger(p) || p < 0 || p > CHAMPIONS_POINTS_MAX) {
309
+ throw new Error(`Champions points for "${s}" must be a whole number 0-${CHAMPIONS_POINTS_MAX}.`);
310
+ }
311
+ total += p;
312
+ if (p > 0)
313
+ evs[s] = Math.min(252, p * EV_PER_CHAMPIONS_POINT);
314
+ }
315
+ if (total > CHAMPIONS_POINTS_TOTAL) {
316
+ throw new Error(`Champions spread totals ${total} points; the cap is ${CHAMPIONS_POINTS_TOTAL}.`);
317
+ }
318
+ let sum = STATS.reduce((acc, s) => acc + (evs[s] ?? 0), 0);
319
+ while (sum > 510) {
320
+ let largest = STATS[0];
321
+ for (const s of STATS)
322
+ if ((evs[s] ?? 0) > (evs[largest] ?? 0))
323
+ largest = s;
324
+ if (!evs[largest])
325
+ break;
326
+ evs[largest] -= 4;
327
+ sum -= 4;
328
+ }
329
+ return evs;
330
+ }
331
+ /**
332
+ * Read an EV spread back as Champions stat points, for output a player can type
333
+ * into the game. A maxed stat reads 32; because the two budgets differ (510 EVs
334
+ * against 66 points) this is the nearest point spread, not an identity.
335
+ */
336
+ export function evsToChampionsPoints(evs) {
337
+ const points = {};
338
+ for (const s of STATS) {
339
+ const ev = evs[s] ?? 0;
340
+ if (ev > 0)
341
+ points[s] = Math.min(CHAMPIONS_POINTS_MAX, Math.round(ev / EV_PER_CHAMPIONS_POINT));
342
+ }
343
+ return points;
344
+ }
345
+ /**
346
+ * Resolve a set's spread whichever scale it was given in: `evs` (0-252) or
347
+ * `championsPoints` (0-32 each, 66 total). Giving both is an error rather than a
348
+ * silent preference, so a caller can never think it supplied one and get the other.
349
+ */
350
+ export function resolveEvs(evs, championsPoints) {
351
+ if (evs && championsPoints)
352
+ throw new Error('Give either evs or championsPoints, not both.');
353
+ return championsPoints ? championsPointsToEvs(championsPoints) : cleanMap(evs, STATS, 'EV');
354
+ }
300
355
  function cleanMap(map, allowed, label) {
301
356
  const out = {};
302
357
  if (!map)
@@ -317,7 +372,7 @@ export function buildPokemon(gen, input) {
317
372
  if (level < 1 || level > 100)
318
373
  throw new Error('level must be 1-100.');
319
374
  const ivs = cleanMap(input.ivs, STATS, 'IV');
320
- const evs = cleanMap(input.evs, STATS, 'EV');
375
+ const evs = resolveEvs(input.evs, input.championsPoints);
321
376
  for (const stat of STATS) {
322
377
  if (ivs[stat] !== undefined && (ivs[stat] < 0 || ivs[stat] > 31)) {
323
378
  throw new Error(`IV "${stat}" must be 0-31.`);
@@ -347,8 +402,6 @@ export function buildPokemon(gen, input) {
347
402
  options.item = input.item;
348
403
  if (input.ability)
349
404
  options.ability = input.ability;
350
- if (input.teraType)
351
- options.teraType = input.teraType;
352
405
  if (input.status)
353
406
  options.status = input.status;
354
407
  if (input.abilityOn !== undefined)
@@ -398,7 +451,6 @@ export function damageResult(gen, attacker, defender, moveName, fieldInput = {})
398
451
  ? result.range()
399
452
  : [result.damage, result.damage];
400
453
  return {
401
- generation: gen,
402
454
  attacker: {
403
455
  species: atk.name,
404
456
  ...summarizeSet(atk),
@@ -430,10 +482,10 @@ function summarizeSet(p) {
430
482
  level: p.level,
431
483
  nature: p.nature,
432
484
  evs,
485
+ championsPoints: evsToChampionsPoints(evs),
433
486
  ivs: p.ivs,
434
487
  item: p.item,
435
488
  ability: p.ability,
436
- teraType: p.teraType,
437
489
  status: p.status || undefined,
438
490
  boosts: p.boosts,
439
491
  };
package/dist/dex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dex.js","sourceRoot":"","sources":["../src/dex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dex.js","sourceRoot":"","sources":["../src/dex.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,18 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * getcompetitive — MCP server for competitive Pokemon team building.
3
+ * getcompetitive — MCP server for the Pokémon Champions meta.
4
4
  *
5
- * Tools span three domains:
6
- * - data: species, forms, moves, items, abilities, natures, learnsets, types
7
- * - team: archetypes, tier lists, speed tiers
8
- * - calc: stat calculation, full damage calculation
5
+ * Champions is the only game here, so the surface is scoped to it: the official
6
+ * regulation sets, the usage-derived threat list, and the data lookups and
7
+ * battle math a team needs — all in the game's own terms (doubles, level 50,
8
+ * 66 stat points, no Terastallization).
9
9
  */
10
10
  import { readFileSync } from 'node:fs';
11
11
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
12
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
13
13
  import { registerDataTools } from './tools/data.js';
14
14
  import { registerCalcTools } from './tools/calc.js';
15
- import { registerTeamTools } from './tools/team.js';
16
15
  import { registerRegulationTools } from './tools/regulations.js';
17
16
  import { registerAnalyzeTools } from './tools/analyze.js';
18
17
  import { registerMetaTools } from './tools/meta.js';
@@ -23,7 +22,6 @@ const server = new McpServer({
23
22
  });
24
23
  registerDataTools(server);
25
24
  registerCalcTools(server);
26
- registerTeamTools(server);
27
25
  registerRegulationTools(server);
28
26
  registerAnalyzeTools(server);
29
27
  registerMetaTools(server);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAC;AAEzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,gBAAgB;IACtB,OAAO;CACR,CAAC,CAAC;AAEH,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAChC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE1B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAC;AAEzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,gBAAgB;IACtB,OAAO;CACR,CAAC,CAAC;AAEH,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAChC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE1B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
@@ -4,30 +4,38 @@
4
4
  * existing dataset — no external data source.
5
5
  */
6
6
  import { z } from 'zod';
7
- import { getDex, typeEffectiveness, TYPES18 } from '../dex.js';
7
+ import { getDex, typeEffectiveness, TYPES18, finalStat, resolveEvs } from '../dex.js';
8
8
  import { getRegulationSet } from '../regulations.js';
9
+ import { getThreatList } from '../threats.js';
9
10
  import { ok, wrap, requireExists, READ_ONLY_ANNOTATIONS } from '../result.js';
11
+ import { evMap, championsPointsMap } from './schemas.js';
10
12
  export function registerAnalyzeTools(server) {
11
13
  server.registerTool('analyze_team', {
12
14
  title: 'Analyze team synergy',
13
- description: 'Analyze a whole team\u2019s type synergy: per-type weak, resist, and immune counts with the types at risk, super-effective coverage from STAB, Tera type and supplied moves, speed placement, and a transparent 0-100 heuristic score \u2014 a quick signal, not a metagame rating. Use `get_type_matchup` or `get_type` for one matchup. Each entry is a `species` with optional `teraType` and `moves`; unknown moves are collected into `unknownMoves`, unknown species or Tera types error, and `regulation` (e.g. "m-c") adds legal threats that outspeed your fastest member. Read-only and offline over the bundled dataset.',
15
+ description: 'Analyze a whole team\u2019s 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 \u2014 a quick signal, not a metagame rating. With `regulation` it also reports `threatCoverage`: how the team fares against that regulation\u2019s most-used sets, each threat\u2019s real nature, EVs and Mega form included, listing the threats nothing on the team hits super-effectively. Use `get_type_matchup` or `get_type` for one matchup. Each entry is a `species` with optional `moves`, `nature`, `evs`/`championsPoints` and `item`; unknown moves are collected into `unknownMoves`, unknown species error. Read-only and offline over the bundled dataset.',
14
16
  annotations: READ_ONLY_ANNOTATIONS,
15
17
  inputSchema: {
16
18
  team: z
17
19
  .array(z.object({
18
20
  species: z.string().describe('Species name as it appears in Showdown, e.g. "Incineroar", "Garchomp".'),
19
- teraType: z
20
- .string()
21
- .optional()
22
- .describe('Optional Tera type, e.g. "Steel"; when set it replaces the member\u2019s defensive typing in the weakness tally.'),
23
21
  moves: z
24
22
  .array(z.string())
25
23
  .optional()
26
24
  .describe('Optional move names, e.g. ["Knock Off"]; their types widen offensive coverage. Unknown names are reported, not fatal.'),
25
+ nature: z
26
+ .string()
27
+ .optional()
28
+ .describe('Optional nature, e.g. "Jolly"; with a spread it sets the member\u2019s real Speed for the threat coverage, otherwise Speed is left neutral and uninvested.'),
29
+ evs: evMap.describe('Optional spread in the 0-252 scale; only Speed affects this analysis.'),
30
+ championsPoints: championsPointsMap.describe('Optional Champions stat points, e.g. { spe: 32 }; only Speed affects this analysis, and it is an alternative to `evs`.'),
31
+ item: z
32
+ .string()
33
+ .optional()
34
+ .describe('Optional held item, e.g. "Choice Scarf"; Choice Scarf multiplies the member\u2019s Speed by 1.5 in the threat coverage.'),
27
35
  }))
28
36
  .min(1)
29
37
  .max(6)
30
- .describe('Team of up to 6 members, each a species with optional Tera type and moves.'),
38
+ .describe('Team of up to 6 members, each a species with optional moves and a set.'),
31
39
  regulation: z
32
40
  .string()
33
41
  .optional()
@@ -38,10 +46,6 @@ export function registerAnalyzeTools(server) {
38
46
  .array(z.object({
39
47
  species: z.string().describe('Resolved species name, e.g. "Great Tusk".'),
40
48
  types: z.array(z.string()).describe('The species\u2019 types as the dataset defines them, e.g. ["Ground", "Fighting"].'),
41
- teraType: z
42
- .string()
43
- .optional()
44
- .describe('Tera type supplied for this member; when set it replaces the member\u2019s typing defensively and is added to its attacking types. Absent when none was given.'),
45
49
  baseSpe: z.number().int().describe('Base Speed stat of the species, used for the speed placement below.'),
46
50
  moveTypes: z
47
51
  .array(z.string())
@@ -55,7 +59,7 @@ export function registerAnalyzeTools(server) {
55
59
  immune: z.number().int().describe('How many members are immune to it.'),
56
60
  weakBy: z.array(z.string()).describe('Species names of the members weak to it, in team order; empty when none are.'),
57
61
  }))
58
- .describe('One entry for each of the 18 classic types (keyed by type name, e.g. "Fire"), tallying how the team fares defensively against that type. A member is counted on its Tera type instead of its own types when a Tera type was supplied.'),
62
+ .describe('One entry for each of the 18 classic types (keyed by type name, e.g. "Fire"), tallying how the team fares defensively against that type.'),
59
63
  atRiskTypes: z
60
64
  .array(z.string())
61
65
  .describe('The stacked-weakness types: at least two members weak to it and nobody resisting or immune. Empty means no such hole.'),
@@ -63,7 +67,7 @@ export function registerAnalyzeTools(server) {
63
67
  .object({
64
68
  coveredBy: z
65
69
  .record(z.string(), z.array(z.string()))
66
- .describe('One entry for each of the 18 classic types (keyed by the defending type), listing the team members that hit it super-effectively from STAB, Tera type, or a supplied move type; an empty array means nobody does.'),
70
+ .describe('One entry for each of the 18 classic types (keyed by the defending type), listing the team members that hit it super-effectively from STAB or a supplied move type; an empty array means nobody does.'),
67
71
  uncoveredSuperEffectively: z.array(z.string()).describe('Defending types no member hits super-effectively.'),
68
72
  note: z.string().describe('Reminder of which attacking types this coverage was computed from.'),
69
73
  })
@@ -104,6 +108,27 @@ export function registerAnalyzeTools(server) {
104
108
  .describe('Caveat that threats are base-speed comparisons only; present only when `regulation` was supplied.'),
105
109
  })
106
110
  .describe('Where the team sits on the speed spectrum, plus legal faster threats when a regulation was given.'),
111
+ threatCoverage: z
112
+ .object({
113
+ regulation: z.string().describe('Display name of the regulation whose threat list was used, e.g. "Regulation Set M-C".'),
114
+ sourceAsOf: z.string().describe('ISO date of the newest data point behind that threat list.'),
115
+ threats: z.array(z.object({
116
+ species: z.string().describe('The threat as the meta plays it, e.g. "Salamence-Mega".'),
117
+ usage: z.number().describe('Share of the sampled teams carrying it, in percent.'),
118
+ threatSpeed: z.number().int().describe('Its Speed at level 50 with its own nature, EVs and Mega form.'),
119
+ fastestSpeed: z.number().int().describe('Your fastest member\u2019s Speed at level 50 with the sets you supplied.'),
120
+ outspeed: z.boolean().describe('True when your fastest member moves first.'),
121
+ hitMultiplier: z.number().describe('Best type multiplier your team has against it, from STAB and supplied moves; 0 when nothing can hit it at all.'),
122
+ hitBy: z.string().optional().describe('The member providing that best hit; absent when nothing hits it super-effectively.'),
123
+ hitVia: z.string().optional().describe('The attacking type providing it; absent when nothing hits it super-effectively.'),
124
+ answered: z.boolean().describe('True when the team has a super-effective (\u22652x) hit on it.'),
125
+ })).describe('One entry per threat in the regulation\u2019s list, most used first.'),
126
+ unanswered: z.array(z.string()).describe('Threats with no super-effective hit from this team \u2014 the coverage holes to fix first.'),
127
+ unansweredCount: z.number().int().describe('How many threats are unanswered.'),
128
+ note: z.string().describe('How the comparison is made, and what it does not model.'),
129
+ })
130
+ .optional()
131
+ .describe('How the team fares against the regulation\u2019s most-used sets; present only when a regulation with a usage-derived threat list was supplied.'),
107
132
  score: z
108
133
  .object({
109
134
  overall: z.number().int().describe('Rounded mean of the component scores, 0-100.'),
@@ -141,14 +166,21 @@ export function registerAnalyzeTools(server) {
141
166
  else
142
167
  unknownMoves.push(mv);
143
168
  }
144
- if (entry.teraType && !dex.types.get(entry.teraType).exists) {
145
- throw new Error(`Unknown Tera type "${entry.teraType}".`);
146
- }
169
+ // Real Speed at level 50 from whatever set was supplied, so the threat
170
+ // comparison below uses the spread the player actually runs rather than a
171
+ // base-stat assumption. Choice Scarf is the only item that changes Speed.
172
+ const nature = entry.nature ?? 'Serious';
173
+ requireExists(dex.natures.get(nature), 'nature', nature);
174
+ const item = entry.item ? dex.items.get(entry.item) : undefined;
175
+ if (item && !item.exists)
176
+ throw new Error(`Unknown item "${entry.item}".`);
177
+ const evs = resolveEvs(entry.evs, entry.championsPoints);
178
+ const baseSpeed = finalStat(9, 'spe', sp.baseStats.spe, 31, evs.spe ?? 0, 50, nature);
147
179
  members.push({
148
180
  species: sp.name,
149
181
  types: [...sp.types],
150
- teraType: entry.teraType,
151
182
  baseSpe: sp.baseStats.spe,
183
+ speed: item?.name === 'Choice Scarf' ? Math.floor(baseSpeed * 1.5) : baseSpeed,
152
184
  moveTypes,
153
185
  });
154
186
  }
@@ -160,9 +192,7 @@ export function registerAnalyzeTools(server) {
160
192
  let immune = 0;
161
193
  const weakBy = [];
162
194
  for (const m of members) {
163
- // Tera replaces defensive typing entirely.
164
- const defTypes = m.teraType ? [m.teraType] : m.types;
165
- const eff = typeEffectiveness(t, defTypes, 9);
195
+ const eff = typeEffectiveness(t, m.types, 9);
166
196
  if (eff === 0)
167
197
  immune++;
168
198
  else if (eff > 1) {
@@ -182,8 +212,6 @@ export function registerAnalyzeTools(server) {
182
212
  const hitters = [];
183
213
  for (const m of members) {
184
214
  const atkTypes = new Set([...m.types, ...m.moveTypes]);
185
- if (m.teraType)
186
- atkTypes.add(m.teraType);
187
215
  for (const atk of atkTypes) {
188
216
  if (typeEffectiveness(atk, [def], 9) > 1) {
189
217
  hitters.push(m.species);
@@ -211,6 +239,35 @@ export function registerAnalyzeTools(server) {
211
239
  }
212
240
  fasterThreats.sort((a, b) => b.baseSpe - a.baseSpe);
213
241
  }
242
+ // --- Threat coverage against the sets the meta actually plays ---
243
+ const threatList = args.regulation ? getThreatList(args.regulation) : undefined;
244
+ const fastestMember = [...members].sort((a, b) => b.speed - a.speed)[0];
245
+ const threatCoverage = threatList?.threats.map((threat) => {
246
+ const form = threat.megaForm ?? threat.form ?? threat.species;
247
+ const threatSpecies = dex.species.get(form);
248
+ const threatSpeed = finalStat(9, 'spe', threatSpecies.baseStats.spe, 31, threat.evs?.spe ?? 0, 50, threat.nature);
249
+ let best;
250
+ for (const m of members) {
251
+ const atkTypes = new Set([...m.types, ...m.moveTypes]);
252
+ for (const atk of atkTypes) {
253
+ const eff = typeEffectiveness(atk, threatSpecies.types, 9);
254
+ if (!best || eff > best.multiplier)
255
+ best = { member: m.species, multiplier: eff, via: atk };
256
+ }
257
+ }
258
+ const multiplier = best?.multiplier ?? 0;
259
+ return {
260
+ species: form,
261
+ usage: threat.usage,
262
+ threatSpeed,
263
+ fastestSpeed: fastestMember.speed,
264
+ outspeed: fastestMember.speed > threatSpeed,
265
+ hitMultiplier: multiplier,
266
+ ...(multiplier > 1 && best ? { hitBy: best.member, hitVia: best.via } : {}),
267
+ answered: multiplier >= 2,
268
+ };
269
+ });
270
+ const unanswered = threatCoverage?.filter((t) => !t.answered).map((t) => t.species) ?? [];
214
271
  // Transparent heuristic score — a quick signal, not a metagame rating.
215
272
  const coverageScore = Math.round(((TYPES18.length - uncovered.length) / TYPES18.length) * 100);
216
273
  let defensiveScore = 100;
@@ -231,7 +288,6 @@ export function registerAnalyzeTools(server) {
231
288
  team: members.map((m) => ({
232
289
  species: m.species,
233
290
  types: m.types,
234
- teraType: m.teraType,
235
291
  baseSpe: m.baseSpe,
236
292
  moveTypes: m.moveTypes,
237
293
  })),
@@ -240,7 +296,7 @@ export function registerAnalyzeTools(server) {
240
296
  offensiveCoverage: {
241
297
  coveredBy: coverage,
242
298
  uncoveredSuperEffectively: uncovered,
243
- note: 'Coverage is computed from STAB types, Tera type, and any provided move types.',
299
+ note: 'Coverage is computed from STAB types and any provided move types.',
244
300
  },
245
301
  speed: {
246
302
  fastest,
@@ -250,10 +306,22 @@ export function registerAnalyzeTools(server) {
250
306
  regulation: set.name,
251
307
  fasterThreatCount: fasterThreats.length,
252
308
  fasterThreats: fasterThreats.slice(0, 20),
253
- note: 'Threats are base-speed comparisons; EVs, natures, and Choice Scarf shift real speed tiers.',
309
+ note: 'Threats are base-speed comparisons; for the real-set comparison see `threatCoverage`, which applies each threat\u2019s actual nature, EVs and Mega form.',
254
310
  }
255
311
  : {}),
256
312
  },
313
+ ...(threatCoverage && threatList
314
+ ? {
315
+ threatCoverage: {
316
+ regulation: threatList.name,
317
+ sourceAsOf: threatList.sourceAsOf,
318
+ threats: threatCoverage,
319
+ unanswered,
320
+ unansweredCount: unanswered.length,
321
+ note: 'Each threat is checked against the set the meta actually plays \u2014 its own nature, EVs, item and Mega form \u2014 so `outspeed` compares real Speed at level 50 rather than base stats. `answered` means the team has a super-effective (\u22652x) hit from STAB or a supplied move; it does not model damage rolls, bulk, or whether you survive the return hit.',
322
+ },
323
+ }
324
+ : {}),
257
325
  score: {
258
326
  overall,
259
327
  defensive: defensiveScore,
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}