Skip to main content
Glama

Server Details

Look up Pokémon, moves, abilities, items, natures, and type matchups from PokéAPI v2.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 58 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/pokeapi-mcp-server
GitHub Stars
1
Server Listing
@cyanheads/pokeapi-mcp-server

TDQS

A4.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or operation: find_pokemon filters and discovers, get_pokemon returns a full dossier, and the remaining get_* tools each cover a different domain object (ability, item, move, nature, type matchups). The find/get and type/pokemon boundaries are explicitly clarified, so an agent should have no trouble selecting the right tool.

Naming Consistency5/5

All tool names use the same pokeapi_ prefix followed by a consistent verb_noun pattern: find_pokemon, get_ability, get_item, get_move, get_nature, get_pokemon, get_type_matchups. There are no mixed conventions or ambiguous verb styles.

Tool Count5/5

Seven tools is a well-scoped set for a focused PokeAPI MCP server. Each tool covers a meaningful slice of the domain (discovery, detailed lookups, type effectiveness) without obvious redundancy or bloat.

Completeness4/5

The surface covers core Pokémon, ability, item, move, nature, and type-matchup data, including denormalized details that reduce the need for multiple calls. However, there is no discovery/search tool for abilities, items, or moves beyond name/ID lookup, and broader PokeAPI areas like locations, berries, and encounters are absent.

Available Tools

7 tools
pokeapi_find_pokemonFind Pokémon
Read-onlyIdempotent
Inspect

Filter Pokémon by generation, type, regional pokédex, or egg group. Returns names and PokéAPI IDs; every returned name works as a pokeapi_get_pokemon identifier, where a species name resolves to its default variety. At least one of generation, type, pokedex, or egg_group is required; the ones provided are combined with AND logic, and query adds strict token matching on name within them. A call with no category filter, with or without query, returns an empty result and a notice naming the requirement.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoType name (e.g. "fire", "psychic"). Filters to Pokémon of this type.
limitNoMaximum results to return. Positive integer; defaults to 50.
queryNoStrict token match on name. "chu" matches "pikachu" and "raichu". Case-insensitive. At most 100 characters; whitespace separates tokens, and every token must match.
offsetNoOffset into the filtered result set for pagination. Non-negative integer; defaults to 0.
pokedexNoRegional pokédex name (e.g. "kanto", "hoenn", "galar"). Filters to entries in that dex.
egg_groupNoEgg group name (e.g. "monster", "fairy", "dragon"). Filters to Pokémon in this egg group.
generationNoGeneration name (e.g. "generation-i", "generation-iii"). Filters to Pokémon introduced in this generation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
shownNoNumber of results in this response.
noticeNoGuidance for missing category filters, zero matches, or an offset beyond the results.
pokemonNoMatching Pokémon entries.
totalCountNoTotal matching Pokémon before limit/offset.
appliedFiltersNoEffective nonblank filters and pagination controls for this response.
pokeapi_get_abilityGet AbilityA
Read-onlyIdempotent
Inspect

Get ability details by name or numeric ID — full English effect text, short effect text, generation introduced, and the list of Pokémon that have the ability (including hidden-ability flag and slot). Ability names are returned by pokeapi_get_pokemon in the abilities array.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesAbility name in lowercase hyphenated form (e.g. "overgrow", "speed-boost") or numeric ID as a string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoAbility ID.
nameNoAbility name in hyphenated lowercase.
errorNoPresent when the call failed. Absent on success.
pokemonNoPokémon that have this ability.
effectTextNoFull English effect description. Null when unavailable.
generationNoGeneration in which the ability was introduced.
shortEffectTextNoShort English effect summary. Null when unavailable.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety profile. The description adds behavioral context by specifying that effect text is English and that hidden-ability flags are included, and it clarifies the returned payload beyond just saying 'details'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first front-loads the purpose and key returned fields, the second provides a useful cross-reference. Every clause earns its place.

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?

With one well-documented parameter, an output schema present, and annotations covering read-only/idempotent behavior, the description provides sufficient context for correct invocation. The cross-reference to pokeapi_get_pokemon further completes the workflow.

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% and the identifier parameter is already documented with format examples. The description adds value by reiterating the name-or-numeric-ID forms and by explaining that ability names originate from pokeapi_get_pokemon, helping the agent understand where the parameter value would come from.

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 ('Get ability details by name or numeric ID') and enumerates the returned content (English effect text, generation, Pokémon list with hidden-ability flag). It also distinguishes itself from siblings by focusing on abilities and referencing pokeapi_get_pokemon as the source of ability names.

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?

The intended use is clear: call this tool when you have an ability name or ID and need its details. The reference to pokeapi_get_pokemon returning ability names provides useful context for how an agent might obtain the identifier, though it does not explicitly name alternatives or state when not to use this tool.

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

pokeapi_get_itemGet ItemA
Read-onlyIdempotent
Inspect

Get item details by name or numeric ID — effect text, category, versioned purchase and sell prices, fling power, item attributes (holdable, consumable, etc.), sprite URL, and Pokémon that commonly hold it.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesItem name in lowercase hyphenated form (e.g. "choice-specs", "leftovers") or numeric ID as a string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoItem ID.
costNoLegacy Pokédollar cost when supplied. Null when unavailable; zero is a literal amount. Independent of versioned prices.
nameNoItem name in hyphenated lowercase.
errorNoPresent when the call failed. Absent on success.
pricesNoAll supplied price records in upstream order. Empty when no records are available.
categoryNoItem category (e.g. "held-items", "medicine").
spriteUrlNoItem sprite URL. Null when no sprite is available.
attributesNoItem attributes (e.g. "holdable", "consumable", "usable-in-battle").
effectTextNoFull English effect description. Null when unavailable.
flingPowerNoFling move base power when this item is flung. Null if not throwable.
heldByPokemonNoPokémon that commonly hold this item in the wild.
shortEffectTextNoShort English effect summary. Null when unavailable.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds a field inventory (prices, fling power, holdable/consumable attributes, sprite URL, common holders), but that is return content already conveyed by the output schema, and no behavioral traits (caching, rate limits, missing-item behavior) are disclosed.

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?

One sentence, front-loaded with verb and resource, with zero preamble or filler. The trailing field enumeration is somewhat redundant against the output schema, which slightly dilutes the otherwise tight structure.

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 single-parameter read-only lookup, everything needed to invoke correctly is present: the key format is in the schema, safety semantics are in annotations, and return shape is covered by the output schema. No critical gap remains 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.

Parameters3/5

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

Schema description coverage is 100%, so the single identifier parameter is fully documented in the schema, including the lowercase-hyphenated format and numeric-ID-as-string convention. The description's 'by name or numeric ID' restates the schema rather than adding syntax or edge-case detail.

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 (item details) and makes the lookup key explicit (name or numeric ID). The resource noun alone cleanly separates it from the sibling set (pokemon, ability, move, nature, type matchups), none of which overlap with items.

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

Usage Guidelines2/5

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

The description never says when to reach for this tool, when not to, or what alternative exists if the agent has something other than an item name/ID. Usage is only inferable from the tool name itself, and no prerequisites or exclusions are given.

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

pokeapi_get_moveGet MoveA
Read-onlyIdempotent
Inspect

Get move details by name or numeric ID — type, damage class, power, accuracy, PP, priority, target, stat changes, status-effect chance, and full English effect text. Set include_learners=true to include the list of Pokémon that can learn the move. Move names are available from pokeapi_get_pokemon when include_moves=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesMove name in lowercase hyphenated form (e.g. "flamethrower", "close-combat") or numeric ID as a string.
include_learnersNoInclude the list of Pokémon that can learn this move. Defaults to false as the list can be large.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoMove ID.
ppNoBase PP. Null when unavailable.
nameNoMove name in hyphenated lowercase.
typeNoElemental type (e.g. "fire").
errorNoPresent when the call failed. Absent on success.
powerNoBase power. Null for status moves.
targetNoTarget selection (e.g. "selected-pokemon", "all-opponents").
accuracyNoAccuracy percentage (0–100). Null for moves that always hit.
priorityNoPriority bracket (positive = higher priority, negative = lower).
effectTextNoFull English effect description. Null when unavailable.
damageClassNoDamage class: physical, special, or status. Null when unavailable.
statChangesNoStat stage changes caused by this move.
effectChanceNoSecondary effect chance percentage. Null when not applicable.
shortEffectTextNoShort English effect summary. Null when unavailable.
learnedByPokemonNoPokémon names that can learn this move (populated when include_learners=true).
learnersIncludedNoTrue when the learner list was requested, including when no learners are known.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and open-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond them: the warning that the learners list 'can be large' and a summary of exactly what fields come back. It does not mention rate limits, caching, or failure behavior for unknown identifiers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and payload, then the optional-parameter behavior and the cross-reference to where names come from. No filler or restated title.

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?

An output schema exists, so return values need no explanation, yet the description still orients the agent on payload scope. Identifier format, the optional flag's tradeoff, and the source of valid names are all covered for a simple two-parameter read tool.

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

Parameters3/5

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

Schema coverage is 100% and both parameters carry their own descriptions (identifier format, include_learners default and size caveat), so the schema does the heavy lifting. The description largely restates the include_learners semantics rather than adding format or edge-case detail beyond it.

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 and resource ('Get move details by name or numeric ID') and enumerates the payload categories (type, damage class, power, accuracy, PP, priority, target, stat changes, effect text), so it is unmistakably distinct from the ability/item/nature/pokemon siblings.

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?

Gives a clear conditional for the optional parameter ('Set include_learners=true to include the list of Pokémon that can learn the move') and routes the agent to pokeapi_get_pokemon with include_moves=true as the source of valid move names. It does not state when this tool should be preferred over other get_* tools, but for a lookup-by-name tool that guidance is largely implied.

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

pokeapi_get_natureGet NatureA
Read-onlyIdempotent
Inspect

Get nature details — the stat boosted (+10%), stat reduced (-10%), and preferred/disliked berry flavors. Omit the identifier to list all 25 natures at once. Natures are critical for competitive team-building: every non-neutral nature modifies two stats by ±10%.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierNoNature name (e.g. "modest", "jolly") or ID 1–25 as a string. Omit to list all 25 natures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
naturesNoOne or all 25 natures depending on whether identifier was provided.
isListAllNoTrue when all 25 natures are returned (no identifier provided).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations by explaining what the tool returns (boosted/reduced stats, berry flavors) and the special listing behavior when identifier is omitted, which helps the agent anticipate the response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no fluff. The first sentence states the core purpose, the second covers the optional-parameter behavior, and the third provides useful domain context for competitive team-building. Every sentence earns its place and the key information is front-loaded.

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 simple read-only tool with one optional parameter and a full output schema, the description is complete. It explains the return content (stats, flavors), the listing behavior, and the relevance for team-building. Nothing an agent needs to call this tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the identifier parameter, including examples and the omit-to-list-all behavior. The description adds no new parameter-level semantics beyond what the schema already states, aligning with the baseline score of 3.

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—'Get nature details'—and enumerates the exact outputs: stat boost/reduction percentages and preferred/disliked berry flavors. It also explicitly mentions the list-all behavior when identifier is omitted, clearly distinguishing it from sibling tools like pokeapi_get_pokemon or pokeapi_get_move.

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?

The description provides clear context for when to use the tool (competitive team-building) and explicit instructions for the omit-identifier case to list all natures. It does not name alternative tools, but the domain-specific nature content makes the appropriate use case clear without needing to exclude siblings.

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

pokeapi_get_pokemonGet PokémonA
Read-onlyIdempotent
Inspect

Get a fully denormalized Pokémon dossier in a single call — base stats, types, abilities (with full English effect text), height/weight, resolved evolution chain, sprite URLs including official artwork, species flavor text, variety list, capture rate, growth rate, gender rate, legendary/mythical flags, egg groups, and (optionally) a summarized learnable-move list. Accepts a name (lowercase, hyphens for spaces, e.g. "bulbasaur", "mr-mime") or PokéAPI Pokémon-record ID. A species name with no Pokémon record of its own (e.g. "deoxys") resolves to the default variety of that species ("deoxys-normal"), reported in resolvedFromSpecies. Set include_moves=true to include the move summary (large); defaults to false. Use game_version to select flavor text from a specific game (e.g. "sword", "red"); falls back to the most recent English entry when the version is not found. Use pokeapi_find_pokemon to discover Pokémon by type, generation, or egg group before calling this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesPokémon name (lowercase hyphenated, e.g. "bulbasaur", "charizard-mega-x") or PokéAPI Pokémon-record ID as a string (e.g. "1", "10034"). A species name (e.g. "deoxys") resolves to its default variety.
game_versionNoPokéAPI version name to filter flavor text (e.g. "sword", "red", "scarlet"). Falls back to the most recent English entry when the version is not found.
include_movesNoInclude the full learnable-move summary. Defaults to false because the list is large (100–200+ moves).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoPokéAPI Pokémon-record ID. Form IDs are not National Pokédex numbers.
nameNoCanonical Pokémon name in hyphenated lowercase.
errorNoPresent when the call failed. Absent on success.
genusNoEnglish genus (e.g. "Seed Pokémon"). Null when unavailable.
movesNoLearnable moves (populated when include_moves=true, empty otherwise).
statsNoBase stats.
typesNoType names ordered by slot (e.g. ["fire", "flying"]).
spritesNoSprite URLs.
heightDmNoHeight in decimetres.
weightHgNoWeight in hectograms.
abilitiesNoAbilities with full effect text.
eggGroupsNoEgg group names.
moveCountNoTotal number of learnable moves regardless of include_moves.
varietiesNoAll forms and variants of this species.
genderRateNoGender ratio: -1 genderless, 0 always male, 8 always female, 1–7 fraction (eighths) female.
generationNoGeneration introduced (e.g. "generation-i").
growthRateNoGrowth rate name (e.g. "medium-slow").
isMythicalNoTrue for mythical Pokémon.
captureRateNoBase capture rate (0–255).
isLegendaryNoTrue for legendary Pokémon.
evolutionChainNoEvolution tree rooted at the base species.
speciesFlavorTextNoFlavor text from the selected (or most recent) game version. Null when none available.
resolvedFromSpeciesNoSpecies name the identifier matched when it named no Pokémon record; this dossier is the default variety of that species. Null when the identifier named a Pokémon record directly.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint), and the description adds genuinely non-obvious behavior: species-name resolution to a default variety reported in resolvedFromSpecies, and graceful fallback to the most recent English flavor text when game_version is not found. It also warns that include_moves produces a large response, which is real cost information an agent needs before invoking.

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 dossier inventory is front-loaded and the operational notes follow in logical order, so scanning yields the key facts quickly. It is somewhat long, and the long field list partially duplicates what the output schema already conveys, but no sentence is pure 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?

With an output schema present, the description need not document return values, yet it still summarizes them for selection purposes. Combined with the identifier-resolution edge case, the game_version fallback, and the alternative-tool pointer, an agent has everything needed to call this correctly on the first try.

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%, so the baseline is 3, but the description adds concrete examples ("bulbasaur", "mr-mime", "deoxys") and the resolution semantics that the schema states only tersely, plus the size rationale behind include_moves. The additions are real but partly echo the schema's own parameter text, so it lands just above baseline.

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 names a specific verb and resource ("Get a fully denormalized Pokémon dossier") and enumerates the exact payload, so it is unmistakably distinct from siblings like pokeapi_get_ability or pokeapi_get_move. It even names pokeapi_find_pokemon as the discovery counterpart, letting an agent separate the two without opening a schema.

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 states when to use this tool versus the alternative ("Use pokeapi_find_pokemon to discover Pokémon by type, generation, or egg group before calling this tool") and gives per-parameter guidance for include_moves (default false, list is large) and game_version (select a game's flavor text). Explicit when-to-use and when-to-set-option coverage with no inference required.

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

pokeapi_get_type_matchupsGet Type Matchups
Read-onlyIdempotent
Inspect

Get the full offensive and defensive type effectiveness breakdown. Provide either a type name (e.g. "fire", "psychic") or a Pokémon identifier (name or PokéAPI Pokémon-record ID; a species name resolves to its default variety). For dual-type Pokémon, the defensive multipliers are correctly composed (e.g. Fire/Flying vs Rock = 4× because both types are weak to Rock). Exactly one of type or pokemon must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoType name in lowercase (e.g. "fire", "water", "psychic"). Provide this or pokemon, not both.
pokemonNoPokémon name or PokéAPI Pokémon-record ID; a species name resolves to its default variety. The server resolves the types automatically. Provide this or type, not both.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
queryTypeNoHow the query was resolved: "type" for a direct type query, "pokemon" for a Pokémon lookup.
resolvedTypesNoThe type name(s) the query resolved to.
resolvedPokemonNoResolved Pokémon record for a pokemon query; null for direct type queries.
defensiveMatchupsNoDefensive matchups — composed correctly for dual-type Pokémon.
offensiveRelationsNoOffensive effectiveness (populated for single-type queries; null for dual-type Pokémon where per-type breakdown does not compose cleanly).
composedMultipliersNoMultiplier (0, 0.25, 0.5, 1, 2, 4) for every attacking type touched by at least one of the resolved defending type(s), including net-neutral 1× entries where a dual type composes to a cancellation (e.g. Fire/Flying vs Ice: 0.5× then 2× = 1×). A type absent from this map relates to neither defending type and also deals 1× damage.
resolvedFromSpeciesNoSpecies name when it resolved to its default variety; null for direct record or type queries.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedpokeapi_find_pokemon1 field changed
      • changedOutput schema / properties / pokemon / items / properties / id / description
        Previous value: -"PokéAPI ID: Pokémon record for type filters, species record for generation, pokedex, or egg_group filters. Form IDs are not National Pokédex numbers."New value: +"PokéAPI ID: Pokémon record for type-only searches, species record whenever generation, pokedex, or egg_group is present. Form IDs are not National Pokédex numbers."
    • Changedpokeapi_get_type_matchups4 fields changed
      • changedInput schema / properties / pokemon / description
        Previous value: -"Pokémon name or PokéAPI Pokémon-record ID. The server resolves the types automatically. Provide this or type, not both."New value: +"Pokémon name or PokéAPI Pokémon-record ID; a species name resolves to its default variety. The server resolves the types automatically. Provide this or type, not both."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "queryType",
        -      "resolvedTypes",
        -      "offensiveRelations",
        -      "defensiveMatchups",
        -      "composedMultipliers"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "queryType",
        +      "resolvedTypes",
        +      "resolvedPokemon",
        +      "resolvedFromSpecies",
        +      "offensiveRelations",
        +      "defensiveMatchups",
        +      "composedMultipliers"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / resolvedFromSpecies
        Added value: +{
        +  "description": "Species name when it resolved to its default variety; null for direct record or type queries.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / resolvedPokemon
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "id": {
        +          "description": "Resolved PokéAPI Pokémon-record ID, including form IDs.",
        +          "type": "number"
        +        },
        +        "name": {
        +          "description": "Resolved Pokémon-record name.",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Resolved Pokémon record for a pokemon query; null for direct type queries."
        +}
  2. 5 tool updates
    • Changedpokeapi_find_pokemon7 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Strict token match on name. \"chu\" matches \"pikachu\" and \"raichu\". Case-insensitive."New value: +"Strict token match on name. \"chu\" matches \"pikachu\" and \"raichu\". Case-insensitive. At most 100 characters; whitespace separates tokens, and every token must match."
      • addedInput schema / properties / query / maxLength
        Added value: +100
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "pokemon",
        -      "totalCount",
        -      "shown"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "pokemon",
        +      "totalCount",
        +      "shown",
        +      "appliedFilters"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / appliedFilters
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Effective nonblank filters and pagination controls for this response.",
        +  "properties": {
        +    "egg_group": {
        +      "description": "Normalized egg-group filter, when applied.",
        +      "type": "string"
        +    },
        +    "generation": {
        +      "description": "Normalized generation filter, when applied.",
        +      "type": "string"
        +    },
        +    "limit": {
        +      "description": "Accepted page size, including the default of 50.",
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    "offset": {
        +      "description": "Accepted page offset, including the default of 0.",
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "pokedex": {
        +      "description": "Normalized pokédex filter, when applied.",
        +      "type": "string"
        +    },
        +    "query": {
        +      "description": "Applied lowercase query tokens joined with single spaces. Omitted without a category filter.",
        +      "type": "string"
        +    },
        +    "type": {
        +      "description": "Normalized type filter, when applied.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "limit",
        +    "offset"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no Pokémon matched the filters."New value: +"Guidance for missing category filters, zero matches, or an offset beyond the results."
      • changedOutput schema / properties / pokemon / items / description
        Previous value: -"Pokémon entry with dex number and name."New value: +"Pokémon entry with PokéAPI ID and name."
      • changedOutput schema / properties / pokemon / items / properties / id / description
        Previous value: -"National Pokédex number."New value: +"PokéAPI ID: Pokémon record for type filters, species record for generation, pokedex, or egg_group filters. Form IDs are not National Pokédex numbers."
    • Changedpokeapi_get_item4 fields changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "id",
        -      "name",
        -      "category",
        -      "cost",
        -      "flingPower",
        -      "effectText",
        -      "shortEffectText",
        -      "attributes",
        -      "heldByPokemon",
        -      "spriteUrl"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "category",
        +      "cost",
        +      "prices",
        +      "flingPower",
        +      "effectText",
        +      "shortEffectText",
        +      "attributes",
        +      "heldByPokemon",
        +      "spriteUrl"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / cost / description
        Previous value: -"Purchase cost in Pokédollars. 0 means not sold in shops."New value: +"Legacy Pokédollar cost when supplied. Null when unavailable; zero is a literal amount. Independent of versioned prices."
      • changedOutput schema / properties / cost / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / properties / prices
        Added value: +{
        +  "description": "All supplied price records in upstream order. Empty when no records are available.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "One version and currency price record.",
        +    "properties": {
        +      "currency": {
        +        "description": "Currency name for both prices.",
        +        "type": "string"
        +      },
        +      "purchasePrice": {
        +        "description": "Purchase price in this currency and version group. Null means not purchasable; zero is a literal amount.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "sellPrice": {
        +        "description": "Sell price in this currency and version group. Null means not sellable; zero is a literal amount.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "versionGroup": {
        +        "description": "Version group these prices apply to.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "versionGroup",
        +      "currency",
        +      "purchasePrice",
        +      "sellPrice"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedpokeapi_get_move2 fields changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "id",
        -      "name",
        -      "type",
        -      "damageClass",
        -      "power",
        -      "accuracy",
        -      "pp",
        -      "priority",
        -      "effectChance",
        -      "effectText",
        -      "shortEffectText",
        -      "target",
        -      "statChanges",
        -      "learnedByPokemon"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "type",
        +      "damageClass",
        +      "power",
        +      "accuracy",
        +      "pp",
        +      "priority",
        +      "effectChance",
        +      "effectText",
        +      "shortEffectText",
        +      "target",
        +      "statChanges",
        +      "learnedByPokemon",
        +      "learnersIncluded"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / learnersIncluded
        Added value: +{
        +  "description": "True when the learner list was requested, including when no learners are known.",
        +  "type": "boolean"
        +}
    • Changedpokeapi_get_pokemon11 fields changed
      • changedInput schema / properties / identifier / description
        Previous value: -"Pokémon name (lowercase hyphenated, e.g. \"bulbasaur\", \"mr-mime\") or Pokédex number as a string (e.g. \"1\", \"25\")."New value: +"Pokémon name (lowercase hyphenated, e.g. \"bulbasaur\", \"charizard-mega-x\") or PokéAPI Pokémon-record ID as a string (e.g. \"1\", \"10034\"). A species name (e.g. \"deoxys\") resolves to its default variety."
      • changedOutput schema / $defs / __schema0 / properties / condition / description
        Previous value: -"Human-readable summary of additional conditions (happiness, time of day, etc.)."New value: +"Compatibility summary of the first alternative; evolutionDetails contains the complete methods."
      • addedOutput schema / $defs / __schema0 / properties / evolutionDetails
        Added value: +{
        +  "description": "All alternative methods in upstream order; empty for a base stage. Requirements apply within each method, never across alternatives.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "One complete alternative evolution method.",
        +    "properties": {
        +      "allowedNatures": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Allowed nature names. Empty lists are preserved; null when unspecified."
        +      },
        +      "conditionExpression": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "expression": {
        +                "description": "Verbatim upstream RPN condition expression; not evaluated.",
        +                "type": "string"
        +              },
        +              "percentageChance": {
        +                "description": "Upstream chance percentage, including zero.",
        +                "type": "number"
        +              },
        +              "variables": {
        +                "description": "Names of expression variables in upstream order.",
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "expression",
        +              "percentageChance",
        +              "variables"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Variable-dependent condition supplied by PokéAPI. Null when unspecified."
        +      },
        +      "evolvedPokemonForm": {
        +        "description": "Resulting form. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "gender": {
        +        "description": "Required gender ID. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "heldItem": {
        +        "description": "Required held item. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "isDefault": {
        +        "description": "Whether this is the expected main-series evolution for its variety. Null when unspecified.",
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "item": {
        +        "description": "Item used for evolution. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "knownMove": {
        +        "description": "Required known move. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "knownMoveType": {
        +        "description": "Type of a required known move. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "location": {
        +        "description": "Required location. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "minAffection": {
        +        "description": "Minimum affection. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minBeauty": {
        +        "description": "Minimum beauty. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minDamageTaken": {
        +        "description": "Minimum damage taken. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minHappiness": {
        +        "description": "Minimum happiness. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minLevel": {
        +        "description": "Minimum level. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minMoveCount": {
        +        "description": "Minimum move uses. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "minSteps": {
        +        "description": "Minimum steps. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "nearSpecialRock": {
        +        "description": "Whether proximity to a Moss Rock or Icy Rock is required. Null when unspecified.",
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "needsMultiplayer": {
        +        "description": "Whether multiplayer link play is required. Null when unspecified.",
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "needsOverworldRain": {
        +        "description": "Whether overworld rain is required. Null when unspecified.",
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "partySpecies": {
        +        "description": "Species required in the party. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "partyType": {
        +        "description": "Type required in the party. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "region": {
        +        "description": "Required region. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "relativePhysicalStats": {
        +        "description": "Required Attack relative to Defense: 1 greater, 0 equal, -1 less. Null when unspecified.",
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "requiredPokemonForm": {
        +        "description": "Required starting form. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "timeOfDay": {
        +        "description": "Required time of day. Empty string is preserved; null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "tradeSpecies": {
        +        "description": "Species to trade for. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "trigger": {
        +        "description": "Event that triggers this alternative.",
        +        "type": "string"
        +      },
        +      "turnUpsideDown": {
        +        "description": "Whether the device must be upside down. Null when unspecified.",
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "usedMove": {
        +        "description": "Move that must be used. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "versionGroup": {
        +        "description": "Version group that introduced this method. Null when unspecified.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "versionGroup",
        +      "isDefault",
        +      "requiredPokemonForm",
        +      "evolvedPokemonForm",
        +      "trigger",
        +      "item",
        +      "gender",
        +      "heldItem",
        +      "knownMove",
        +      "knownMoveType",
        +      "location",
        +      "minLevel",
        +      "minHappiness",
        +      "minBeauty",
        +      "minAffection",
        +      "nearSpecialRock",
        +      "needsMultiplayer",
        +      "needsOverworldRain",
        +      "partySpecies",
        +      "partyType",
        +      "relativePhysicalStats",
        +      "timeOfDay",
        +      "tradeSpecies",
        +      "turnUpsideDown",
        +      "region",
        +      "usedMove",
        +      "minMoveCount",
        +      "minSteps",
        +      "minDamageTaken",
        +      "allowedNatures",
        +      "conditionExpression"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / $defs / __schema0 / properties / item / description
        Previous value: -"Item used in evolution. Null if not applicable."New value: +"First alternative evolution item. Null when unspecified."
      • changedOutput schema / $defs / __schema0 / properties / minLevel / description
        Previous value: -"Minimum level required. Null if not applicable."New value: +"First alternative minimum level. Null when unspecified."
      • changedOutput schema / $defs / __schema0 / properties / trigger / description
        Previous value: -"Evolution trigger (level-up, use-item, trade, shed, base)."New value: +"First alternative trigger, or base for the root stage."
      • changedOutput schema / $defs / __schema0 / required
        Previous value: -[
        -  "species",
        -  "trigger",
        -  "minLevel",
        -  "item",
        -  "condition",
        -  "evolvesTo"
        -]New value: +[
        +  "species",
        +  "trigger",
        +  "minLevel",
        +  "item",
        +  "condition",
        +  "evolutionDetails",
        +  "evolvesTo"
        +]
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "id",
        -      "name",
        -      "heightDm",
        -      "weightHg",
        -      "types",
        -      "stats",
        -      "abilities",
        -      "sprites",
        -      "moves",
        -      "moveCount",
        -      "speciesFlavorText",
        -      "genus",
        -      "captureRate",
        -      "growthRate",
        -      "genderRate",
        -      "isLegendary",
        -      "isMythical",
        -      "evolutionChain",
        -      "varieties",
        -      "generation",
        -      "eggGroups"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "resolvedFromSpecies",
        +      "heightDm",
        +      "weightHg",
        +      "types",
        +      "stats",
        +      "abilities",
        +      "sprites",
        +      "moves",
        +      "moveCount",
        +      "speciesFlavorText",
        +      "genus",
        +      "captureRate",
        +      "growthRate",
        +      "genderRate",
        +      "isLegendary",
        +      "isMythical",
        +      "evolutionChain",
        +      "varieties",
        +      "generation",
        +      "eggGroups"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no PokéAPI entry (HTTP 404). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The identifier matches no Pokémon record and no species. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / id / description
        Previous value: -"National Pokédex number."New value: +"PokéAPI Pokémon-record ID. Form IDs are not National Pokédex numbers."
      • addedOutput schema / properties / resolvedFromSpecies
        Added value: +{
        +  "description": "Species name the identifier matched when it named no Pokémon record; this dossier is the default variety of that species. Null when the identifier named a Pokémon record directly.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedpokeapi_get_type_matchups1 field changed
      • changedInput schema / properties / pokemon / description
        Previous value: -"Pokémon name or Pokédex number. The server resolves the types automatically. Provide this or type, not both."New value: +"Pokémon name or PokéAPI Pokémon-record ID. The server resolves the types automatically. Provide this or type, not both."
  3. 5 tool updates
    • Changedpokeapi_get_ability4 fields changed
      • removedOutput schema / properties / effectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / effectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / shortEffectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / shortEffectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedpokeapi_get_item8 fields changed
      • removedOutput schema / properties / effectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / effectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / flingPower / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / flingPower / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / shortEffectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / shortEffectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / spriteUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / spriteUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedpokeapi_get_move14 fields changed
      • removedOutput schema / properties / accuracy / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / accuracy / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / damageClass / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / damageClass / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / effectChance / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / effectChance / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / effectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / effectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / power / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / power / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / pp / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / pp / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / shortEffectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / shortEffectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedpokeapi_get_nature8 fields changed
      • removedOutput schema / properties / natures / items / properties / decreasedStat / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / natures / items / properties / decreasedStat / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / natures / items / properties / hatesFlavor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / natures / items / properties / hatesFlavor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / natures / items / properties / increasedStat / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / natures / items / properties / increasedStat / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / natures / items / properties / likesFlavor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / natures / items / properties / likesFlavor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedpokeapi_get_pokemon20 fields changed
      • removedOutput schema / $defs / __schema0 / properties / condition / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / condition / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / item / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / item / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / minLevel / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / minLevel / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / abilities / items / properties / effectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / abilities / items / properties / effectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / abilities / items / properties / shortEffectText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / abilities / items / properties / shortEffectText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / genus / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / genus / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / speciesFlavorText / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / speciesFlavorText / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / sprites / properties / frontDefault / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / sprites / properties / frontDefault / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / sprites / properties / frontShiny / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / sprites / properties / frontShiny / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / sprites / properties / officialArtwork / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / sprites / properties / officialArtwork / type
        Added value: +[
        +  "string",
        +  "null"
        +]
  4. 7 tool updates
    • Changedpokeapi_find_pokemon6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "pokemon",
        +      "totalCount",
        +      "shown"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `invalid_filter`: An unrecognized generation, type, pokédex, or egg-group name was provided. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "invalid_filter"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "pokemon",
        -  "totalCount",
        -  "shown"
        -]
    • Changedpokeapi_get_ability6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "effectText",
        +      "shortEffectText",
        +      "generation",
        +      "pokemon"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no ability in PokéAPI. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "name",
        -  "effectText",
        -  "shortEffectText",
        -  "generation",
        -  "pokemon"
        -]
    • Changedpokeapi_get_item6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "category",
        +      "cost",
        +      "flingPower",
        +      "effectText",
        +      "shortEffectText",
        +      "attributes",
        +      "heldByPokemon",
        +      "spriteUrl"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no item in PokéAPI. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "name",
        -  "category",
        -  "cost",
        -  "flingPower",
        -  "effectText",
        -  "shortEffectText",
        -  "attributes",
        -  "heldByPokemon",
        -  "spriteUrl"
        -]
    • Changedpokeapi_get_move6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "type",
        +      "damageClass",
        +      "power",
        +      "accuracy",
        +      "pp",
        +      "priority",
        +      "effectChance",
        +      "effectText",
        +      "shortEffectText",
        +      "target",
        +      "statChanges",
        +      "learnedByPokemon"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no move in PokéAPI. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "name",
        -  "type",
        -  "damageClass",
        -  "power",
        -  "accuracy",
        -  "pp",
        -  "priority",
        -  "effectChance",
        -  "effectText",
        -  "shortEffectText",
        -  "target",
        -  "statChanges",
        -  "learnedByPokemon"
        -]
    • Changedpokeapi_get_nature6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "natures",
        +      "isListAll"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no nature in PokéAPI. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "natures",
        -  "isListAll"
        -]
    • Changedpokeapi_get_pokemon9 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $defs
        Added value: +{
        +  "__schema0": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "condition": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Human-readable summary of additional conditions (happiness, time of day, etc.)."
        +      },
        +      "evolvesTo": {
        +        "description": "Further evolutions from this stage.",
        +        "items": {
        +          "$ref": "#/$defs/__schema0"
        +        },
        +        "type": "array"
        +      },
        +      "item": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Item used in evolution. Null if not applicable."
        +      },
        +      "minLevel": {
        +        "anyOf": [
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Minimum level required. Null if not applicable."
        +      },
        +      "species": {
        +        "description": "Species name.",
        +        "type": "string"
        +      },
        +      "trigger": {
        +        "description": "Evolution trigger (level-up, use-item, trade, shed, base).",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "species",
        +      "trigger",
        +      "minLevel",
        +      "item",
        +      "condition",
        +      "evolvesTo"
        +    ],
        +    "type": "object"
        +  }
        +}
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "heightDm",
        +      "weightHg",
        +      "types",
        +      "stats",
        +      "abilities",
        +      "sprites",
        +      "moves",
        +      "moveCount",
        +      "speciesFlavorText",
        +      "genus",
        +      "captureRate",
        +      "growthRate",
        +      "genderRate",
        +      "isLegendary",
        +      "isMythical",
        +      "evolutionChain",
        +      "varieties",
        +      "generation",
        +      "eggGroups"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • removedOutput schema / definitions
        Removed value: -{
        -  "__schema0": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "condition": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Human-readable summary of additional conditions (happiness, time of day, etc.)."
        -      },
        -      "evolvesTo": {
        -        "description": "Further evolutions from this stage.",
        -        "items": {
        -          "$ref": "#/definitions/__schema0"
        -        },
        -        "type": "array"
        -      },
        -      "item": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Item used in evolution. Null if not applicable."
        -      },
        -      "minLevel": {
        -        "anyOf": [
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Minimum level required. Null if not applicable."
        -      },
        -      "species": {
        -        "description": "Species name.",
        -        "type": "string"
        -      },
        -      "trigger": {
        -        "description": "Evolution trigger (level-up, use-item, trade, shed, base).",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "species",
        -      "trigger",
        -      "minLevel",
        -      "item",
        -      "condition",
        -      "evolvesTo"
        -    ],
        -    "type": "object"
        -  }
        -}
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The identifier resolves to no PokéAPI entry (HTTP 404). Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / evolutionChain / anyOf
        Previous value: -[
        -  {
        -    "$ref": "#/definitions/__schema0"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "$ref": "#/$defs/__schema0"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "name",
        -  "heightDm",
        -  "weightHg",
        -  "types",
        -  "stats",
        -  "abilities",
        -  "sprites",
        -  "moves",
        -  "moveCount",
        -  "speciesFlavorText",
        -  "genus",
        -  "captureRate",
        -  "growthRate",
        -  "genderRate",
        -  "isLegendary",
        -  "isMythical",
        -  "evolutionChain",
        -  "varieties",
        -  "generation",
        -  "eggGroups"
        -]
    • Changedpokeapi_get_type_matchups6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "queryType",
        +      "resolvedTypes",
        +      "offensiveRelations",
        +      "defensiveMatchups",
        +      "composedMultipliers"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The type name or Pokémon identifier was not found in PokéAPI. `invalid_input`: Neither type nor pokemon was provided, or both were provided simultaneously. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found",
        +            "invalid_input"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "queryType",
        -  "resolvedTypes",
        -  "offensiveRelations",
        -  "defensiveMatchups",
        -  "composedMultipliers"
        -]
  5. 2 tool updates
    • Changedpokeapi_find_pokemon8 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results to return. Defaults to 50."New value: +"Maximum results to return. Positive integer; defaults to 50."
      • addedInput schema / properties / limit / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / limit / maximum
        Added value: +9007199254740991
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
      • changedInput schema / properties / offset / description
        Previous value: -"Offset into the filtered result set for pagination. Defaults to 0."New value: +"Offset into the filtered result set for pagination. Non-negative integer; defaults to 0."
      • addedInput schema / properties / offset / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / offset / minimum
        Added value: +0
      • changedInput schema / properties / offset / type
        Previous value: -"number"New value: +"integer"
    • Changedpokeapi_get_type_matchups1 field changed
      • changedOutput schema / properties / composedMultipliers / description
        Previous value: -"Multiplier for each non-neutral attacking type (0, 0.25, 0.5, 1, 2, 4). Types absent from this map deal 1× damage."New value: +"Multiplier (0, 0.25, 0.5, 1, 2, 4) for every attacking type touched by at least one of the resolved defending type(s), including net-neutral 1× entries where a dual type composes to a cancellation (e.g. Fire/Flying vs Ice: 0.5× then 2× = 1×). A type absent from this map relates to neither defending type and also deals 1× damage."
  6. 7 tool updates
    • First observedpokeapi_find_pokemon
    • First observedpokeapi_get_ability
    • First observedpokeapi_get_item
    • First observedpokeapi_get_move
    • First observedpokeapi_get_nature
    • First observedpokeapi_get_pokemon
    • First observedpokeapi_get_type_matchups

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.