此 MCP 可以做什么
Looks up Pokémon, moves, abilities, items, natures, evolution data, and type effectiveness from PokéAPI.
工具
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'type': {'type': 'string', 'description': 'Type name (e.g. "fire", "psychic"). Filters to Pokémon of this type.'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 9007199254740991, 'description': 'Maximum results to return. Positive integer; defaults to 50.', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'maxLength': 100, 'description': 'Strict token match on name. "chu" matches "pikachu" and "raichu". Case-insensitive. At most 100 characters; whitespace separates tokens, and every token must match.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Offset into the filtered result set for pagination. Non-negative integer; defaults to 0.'}, 'pokedex': {'type': 'string', 'description': 'Regional pokédex name (e.g. "kanto", "hoenn", "galar"). Filters to entries in that dex.'}, 'egg_group': {'type': 'string', 'description': 'Egg group name (e.g. "monster", "fairy", "dragon"). Filters to Pokémon in this egg group.'}, 'generation': {'type': 'string', 'description': 'Generation name (e.g. "generation-i", "generation-iii"). Filters to Pokémon introduced in this generation.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['pokemon', 'totalCount', 'shown', 'appliedFilters']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['invalid_filter'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'shown': {'type': 'number', 'description': 'Number of results in this response.'}, 'notice': {'type': 'string', 'description': 'Guidance for missing category filters, zero matches, or an offset beyond the results.'}, 'pokemon': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'number', 'description': '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.'}, 'name': {'type': 'string', 'description': 'Pokémon name.'}}, 'description': 'Pokémon entry with PokéAPI ID and name.', 'additionalProperties': False}, 'description': 'Matching Pokémon entries.'}, 'totalCount': {'type': 'number', 'description': 'Total matching Pokémon before limit/offset.'}, 'appliedFilters': {'type': 'object', 'required': ['limit', 'offset'], 'properties': {'type': {'type': 'string', 'description': 'Normalized type filter, when applied.'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Accepted page size, including the default of 50.', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'description': 'Applied lowercase query tokens joined with single spaces. Omitted without a category filter.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Accepted page offset, including the default of 0.'}, 'pokedex': {'type': 'string', 'description': 'Normalized pokédex filter, when applied.'}, 'egg_group': {'type': 'string', 'description': 'Normalized egg-group filter, when applied.'}, 'generation': {'type': 'string', 'description': 'Normalized generation filter, when applied.'}}, 'description': 'Effective nonblank filters and pagination controls for this response.', 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'description': 'Ability name in lowercase hyphenated form (e.g. "overgrow", "speed-boost") or numeric ID as a string.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['id', 'name', 'effectText', 'shortEffectText', 'generation', 'pokemon']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'number', 'description': 'Ability ID.'}, 'name': {'type': 'string', 'description': 'Ability name in hyphenated lowercase.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'pokemon': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'isHidden', 'slot'], 'properties': {'name': {'type': 'string', 'description': 'Pokémon name.'}, 'slot': {'type': 'number', 'description': 'Ability slot (1, 2, or 3).'}, 'isHidden': {'type': 'boolean', 'description': 'True when this is the hidden ability for the Pokémon.'}}, 'description': 'Pokémon entry with ability slot and hidden-ability flag.', 'additionalProperties': False}, 'description': 'Pokémon that have this ability.'}, 'effectText': {'type': ['string', 'null'], 'description': 'Full English effect description. Null when unavailable.'}, 'generation': {'type': 'string', 'description': 'Generation in which the ability was introduced.'}, 'shortEffectText': {'type': ['string', 'null'], 'description': 'Short English effect summary. Null when unavailable.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'description': 'Item name in lowercase hyphenated form (e.g. "choice-specs", "leftovers") or numeric ID as a string.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['id', 'name', 'category', 'cost', 'prices', 'flingPower', 'effectText', 'shortEffectText', 'attributes', 'heldByPokemon', 'spriteUrl']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'number', 'description': 'Item ID.'}, 'cost': {'type': ['number', 'null'], 'description': 'Legacy Pokédollar cost when supplied. Null when unavailable; zero is a literal amount. Independent of versioned prices.'}, 'name': {'type': 'string', 'description': 'Item name in hyphenated lowercase.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['versionGroup', 'currency', 'purchasePrice', 'sellPrice'], 'properties': {'currency': {'type': 'string', 'description': 'Currency name for both prices.'}, 'sellPrice': {'type': ['number', 'null'], 'description': 'Sell price in this currency and version group. Null means not sellable; zero is a literal amount.'}, 'versionGroup': {'type': 'string', 'description': 'Version group these prices apply to.'}, 'purchasePrice': {'type': ['number', 'null'], 'description': 'Purchase price in this currency and version group. Null means not purchasable; zero is a literal amount.'}}, 'description': 'One version and currency price record.', 'additionalProperties': False}, 'description': 'All supplied price records in upstream order. Empty when no records are available.'}, 'category': {'type': 'string', 'description': 'Item category (e.g. "held-items", "medicine").'}, 'spriteUrl': {'type': ['string', 'null'], 'description': 'Item sprite URL. Null when no sprite is available.'}, 'attributes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Item attributes (e.g. "holdable", "consumable", "usable-in-battle").'}, 'effectText': {'type': ['string', 'null'], 'description': 'Full English effect description. Null when unavailable.'}, 'flingPower': {'type': ['number', 'null'], 'description': 'Fling move base power when this item is flung. Null if not throwable.'}, 'heldByPokemon': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Pokémon that commonly hold this item in the wild.'}, 'shortEffectText': {'type': ['string', 'null'], 'description': 'Short English effect summary. Null when unavailable.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'description': 'Move name in lowercase hyphenated form (e.g. "flamethrower", "close-combat") or numeric ID as a string.'}, 'include_learners': {'type': 'boolean', 'default': False, 'description': 'Include the list of Pokémon that can learn this move. Defaults to false as the list can be large.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['id', 'name', 'type', 'damageClass', 'power', 'accuracy', 'pp', 'priority', 'effectChance', 'effectText', 'shortEffectText', 'target', 'statChanges', 'learnedByPokemon', 'learnersIncluded']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'number', 'description': 'Move ID.'}, 'pp': {'type': ['number', 'null'], 'description': 'Base PP. Null when unavailable.'}, 'name': {'type': 'string', 'description': 'Move name in hyphenated lowercase.'}, 'type': {'type': 'string', 'description': 'Elemental type (e.g. "fire").'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'power': {'type': ['number', 'null'], 'description': 'Base power. Null for status moves.'}, 'target': {'type': 'string', 'description': 'Target selection (e.g. "selected-pokemon", "all-opponents").'}, 'accuracy': {'type': ['number', 'null'], 'description': 'Accuracy percentage (0â\x80\x93100). Null for moves that always hit.'}, 'priority': {'type': 'number', 'description': 'Priority bracket (positive = higher priority, negative = lower).'}, 'effectText': {'type': ['string', 'null'], 'description': 'Full English effect description. Null when unavailable.'}, 'damageClass': {'type': ['string', 'null'], 'description': 'Damage class: physical, special, or status. Null when unavailable.'}, 'statChanges': {'type': 'array', 'items': {'type': 'object', 'required': ['stat', 'change'], 'properties': {'stat': {'type': 'string', 'description': 'Stat name.'}, 'change': {'type': 'number', 'description': 'Stat stage change (positive = buff, negative = debuff).'}}, 'description': 'Stat stage change entry â\x80\x94 affected stat and magnitude.', 'additionalProperties': False}, 'description': 'Stat stage changes caused by this move.'}, 'effectChance': {'type': ['number', 'null'], 'description': 'Secondary effect chance percentage. Null when not applicable.'}, 'shortEffectText': {'type': ['string', 'null'], 'description': 'Short English effect summary. Null when unavailable.'}, 'learnedByPokemon': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Pokémon names that can learn this move (populated when include_learners=true).'}, 'learnersIncluded': {'type': 'boolean', 'description': 'True when the learner list was requested, including when no learners are known.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'identifier': {'type': 'string', 'description': 'Nature name (e.g. "modest", "jolly") or ID 1â\x80\x9325 as a string. Omit to list all 25 natures.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['natures', 'isListAll']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'natures': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'increasedStat', 'decreasedStat', 'likesFlavor', 'hatesFlavor'], 'properties': {'id': {'type': 'number', 'description': 'Nature ID (1â\x80\x9325).'}, 'name': {'type': 'string', 'description': 'Nature name (e.g. "modest").'}, 'hatesFlavor': {'type': ['string', 'null'], 'description': 'Berry flavor the Pokémon dislikes. Null for neutral natures.'}, 'likesFlavor': {'type': ['string', 'null'], 'description': 'Berry flavor the Pokémon prefers. Null for neutral natures.'}, 'decreasedStat': {'type': ['string', 'null'], 'description': 'Stat reduced by 10%. Null for neutral natures.'}, 'increasedStat': {'type': ['string', 'null'], 'description': 'Stat boosted by 10%. Null for neutral natures.'}}, 'description': 'Nature entry with stat modifiers and flavor preferences.', 'additionalProperties': False}, 'description': 'One or all 25 natures depending on whether identifier was provided.'}, 'isListAll': {'type': 'boolean', 'description': 'True when all 25 natures are returned (no identifier provided).'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['identifier'], 'properties': {'identifier': {'type': 'string', 'description': '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.'}, 'game_version': {'type': 'string', 'description': 'Poké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_moves': {'type': 'boolean', 'default': False, 'description': 'Include the full learnable-move summary. Defaults to false because the list is large (100â\x80\x93200+ moves).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$defs': {'__schema0': {'type': 'object', 'required': ['species', 'trigger', 'minLevel', 'item', 'condition', 'evolutionDetails', 'evolvesTo'], 'properties': {'item': {'type': ['string', 'null'], 'description': 'First alternative evolution item. Null when unspecified.'}, 'species': {'type': 'string', 'description': 'Species name.'}, 'trigger': {'type': 'string', 'description': 'First alternative trigger, or base for the root stage.'}, 'minLevel': {'type': ['number', 'null'], 'description': 'First alternative minimum level. Null when unspecified.'}, 'condition': {'type': ['string', 'null'], 'description': 'Compatibility summary of the first alternative; evolutionDetails contains the complete methods.'}, 'evolvesTo': {'type': 'array', 'items': {'$ref': '#/$defs/__schema0'}, 'description': 'Further evolutions from this stage.'}, 'evolutionDetails': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'item': {'type': ['string', 'null'], 'description': 'Item used for evolution. Null when unspecified.'}, 'gender': {'type': ['number', 'null'], 'description': 'Required gender ID. Null when unspecified.'}, 'region': {'type': ['string', 'null'], 'description': 'Required region. Null when unspecified.'}, 'trigger': {'type': 'string', 'description': 'Event that triggers this alternative.'}, 'heldItem': {'type': ['string', 'null'], 'description': 'Required held item. Null when unspecified.'}, 'location': {'type': ['string', 'null'], 'description': 'Required location. Null when unspecified.'}, 'minLevel': {'type': ['number', 'null'], 'description': 'Minimum level. Null when unspecified.'}, 'minSteps': {'type': ['number', 'null'], 'description': 'Minimum steps. Null when unspecified.'}, 'usedMove': {'type': ['string', 'null'], 'description': 'Move that must be used. Null when unspecified.'}, 'isDefault': {'type': ['boolean', 'null'], 'description': 'Whether this is the expected main-series evolution for its variety. Null when unspecified.'}, 'knownMove': {'type': ['string', 'null'], 'description': 'Required known move. Null when unspecified.'}, 'minBeauty': {'type': ['number', 'null'], 'description': 'Minimum beauty. Null when unspecified.'}, 'partyType': {'type': ['string', 'null'], 'description': 'Type required in the party. Null when unspecified.'}, 'timeOfDay': {'type': ['string', 'null'], 'description': 'Required time of day. Empty string is preserved; null when unspecified.'}, 'minAffection': {'type': ['number', 'null'], 'description': 'Minimum affection. Null when unspecified.'}, 'minHappiness': {'type': ['number', 'null'], 'description': 'Minimum happiness. Null when unspecified.'}, 'minMoveCount': {'type': ['number', 'null'], 'description': 'Minimum move uses. Null when unspecified.'}, 'partySpecies': {'type': ['string', 'null'], 'description': 'Species required in the party. Null when unspecified.'}, 'tradeSpecies': {'type': ['string', 'null'], 'description': 'Species to trade for. Null when unspecified.'}, 'versionGroup': {'type': ['string', 'null'], 'description': 'Version group that introduced this method. Null when unspecified.'}, 'knownMoveType': {'type': ['string', 'null'], 'description': 'Type of a required known move. Null when unspecified.'}, 'allowedNatures': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'description': 'Allowed nature names. Empty lists are preserved; null when unspecified.'}, 'minDamageTaken': {'type': ['number', 'null'], 'description': 'Minimum damage taken. Null when unspecified.'}, 'turnUpsideDown': {'type': ['boolean', 'null'], 'description': 'Whether the device must be upside down. Null when unspecified.'}, 'nearSpecialRock': {'type': ['boolean', 'null'], 'description': 'Whether proximity to a Moss Rock or Icy Rock is required. Null when unspecified.'}, 'needsMultiplayer': {'type': ['boolean', 'null'], 'description': 'Whether multiplayer link play is required. Null when unspecified.'}, 'evolvedPokemonForm': {'type': ['string', 'null'], 'description': 'Resulting form. Null when unspecified.'}, 'needsOverworldRain': {'type': ['boolean', 'null'], 'description': 'Whether overworld rain is required. Null when unspecified.'}, 'conditionExpression': {'anyOf': [{'type': 'object', 'required': ['expression', 'percentageChance', 'variables'], 'properties': {'variables': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Names of expression variables in upstream order.'}, 'expression': {'type': 'string', 'description': 'Verbatim upstream RPN condition expression; not evaluated.'}, 'percentageChance': {'type': 'number', 'description': 'Upstream chance percentage, including zero.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Variable-dependent condition supplied by PokéAPI. Null when unspecified.'}, 'requiredPokemonForm': {'type': ['string', 'null'], 'description': 'Required starting form. Null when unspecified.'}, 'relativePhysicalStats': {'type': ['number', 'null'], 'description': 'Required Attack relative to Defense: 1 greater, 0 equal, -1 less. Null when unspecified.'}}, 'description': 'One complete alternative evolution method.', 'additionalProperties': False}, 'description': 'All alternative methods in upstream order; empty for a base stage. Requirements apply within each method, never across alternatives.'}}, 'additionalProperties': False}}, 'anyOf': [{'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']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'number', 'description': 'PokéAPI Pokémon-record ID. Form IDs are not National Pokédex numbers.'}, 'name': {'type': 'string', 'description': 'Canonical Pokémon name in hyphenated lowercase.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'genus': {'type': ['string', 'null'], 'description': 'English genus (e.g. "Seed Pokémon"). Null when unavailable.'}, 'moves': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'learnMethod', 'levelLearnedAt'], 'properties': {'name': {'type': 'string', 'description': 'Move name.'}, 'learnMethod': {'type': 'string', 'description': 'How the move is learned (level-up, machine, egg, tutor).'}, 'levelLearnedAt': {'type': 'number', 'description': 'Level at which the move is learned. Zero for non-level-up methods.'}}, 'description': 'Move summary entry â\x80\x94 name, learn method, and level.', 'additionalProperties': False}, 'description': 'Learnable moves (populated when include_moves=true, empty otherwise).'}, 'stats': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'baseStat', 'effort'], 'properties': {'name': {'type': 'string', 'description': 'Stat name (hp, attack, defense, special-attack, special-defense, speed).'}, 'effort': {'type': 'number', 'description': 'Effort value (EV) yield.'}, 'baseStat': {'type': 'number', 'description': 'Base stat value.'}}, 'description': 'Individual base stat entry.', 'additionalProperties': False}, 'description': 'Base stats.'}, 'types': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Type names ordered by slot (e.g. ["fire", "flying"]).'}, 'sprites': {'type': 'object', 'required': ['frontDefault', 'frontShiny', 'officialArtwork'], 'properties': {'frontShiny': {'type': ['string', 'null'], 'description': 'Front shiny sprite URL.'}, 'frontDefault': {'type': ['string', 'null'], 'description': 'Front default sprite URL.'}, 'officialArtwork': {'type': ['string', 'null'], 'description': 'High-quality official artwork URL.'}}, 'description': 'Sprite URLs.', 'additionalProperties': False}, 'heightDm': {'type': 'number', 'description': 'Height in decimetres.'}, 'weightHg': {'type': 'number', 'description': 'Weight in hectograms.'}, 'abilities': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'isHidden', 'slot', 'effectText', 'shortEffectText'], 'properties': {'name': {'type': 'string', 'description': 'Ability name in hyphenated lowercase (e.g. "overgrow").'}, 'slot': {'type': 'number', 'description': 'Ability slot (1, 2, or 3).'}, 'isHidden': {'type': 'boolean', 'description': 'True when this is the hidden ability.'}, 'effectText': {'type': ['string', 'null'], 'description': 'Full English effect description. Null when unavailable.'}, 'shortEffectText': {'type': ['string', 'null'], 'description': 'Short English effect description. Null when unavailable.'}}, 'description': 'Ability entry with effect text and hidden-ability flag.', 'additionalProperties': False}, 'description': 'Abilities with full effect text.'}, 'eggGroups': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Egg group names.'}, 'moveCount': {'type': 'number', 'description': 'Total number of learnable moves regardless of include_moves.'}, 'varieties': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'isDefault'], 'properties': {'name': {'type': 'string', 'description': 'Variety/form name (e.g. "pikachu-alola-cap").'}, 'isDefault': {'type': 'boolean', 'description': 'True for the canonical form.'}}, 'description': 'Form or variant entry with name and default flag.', 'additionalProperties': False}, 'description': 'All forms and variants of this species.'}, 'genderRate': {'type': 'number', 'description': 'Gender ratio: -1 genderless, 0 always male, 8 always female, 1â\x80\x937 fraction (eighths) female.'}, 'generation': {'type': 'string', 'description': 'Generation introduced (e.g. "generation-i").'}, 'growthRate': {'type': 'string', 'description': 'Growth rate name (e.g. "medium-slow").'}, 'isMythical': {'type': 'boolean', 'description': 'True for mythical Pokémon.'}, 'captureRate': {'type': 'number', 'description': 'Base capture rate (0â\x80\x93255).'}, 'isLegendary': {'type': 'boolean', 'description': 'True for legendary Pokémon.'}, 'evolutionChain': {'anyOf': [{'$ref': '#/$defs/__schema0'}, {'type': 'null'}], 'description': 'Evolution tree rooted at the base species.'}, 'speciesFlavorText': {'type': ['string', 'null'], 'description': 'Flavor text from the selected (or most recent) game version. Null when none available.'}, 'resolvedFromSpecies': {'type': ['string', 'null'], '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.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'type': {'type': 'string', 'description': 'Type name in lowercase (e.g. "fire", "water", "psychic"). Provide this or pokemon, not both.'}, 'pokemon': {'type': 'string', 'description': 'Pokémon name or PokéAPI Pokémon-record ID. The server resolves the types automatically. Provide this or type, not both.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['queryType', 'resolvedTypes', 'offensiveRelations', 'defensiveMatchups', 'composedMultipliers']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found', 'invalid_input'], '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'queryType': {'type': 'string', 'description': 'How the query was resolved: "type" for a direct type query, "pokemon" for a Pokémon lookup.'}, 'resolvedTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The type name(s) the query resolved to.'}, 'defensiveMatchups': {'type': 'object', 'required': ['weakTo', 'resists', 'immuneTo'], 'properties': {'weakTo': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Attacking types that deal 2Ã\x97 or more damage.'}, 'resists': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Attacking types that deal 0.5Ã\x97 or less damage (but not immune).'}, 'immuneTo': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Attacking types that deal 0Ã\x97 damage.'}}, 'description': 'Defensive matchups â\x80\x94 composed correctly for dual-type Pokémon.', 'additionalProperties': False}, 'offensiveRelations': {'anyOf': [{'type': 'object', 'required': ['superEffectiveTo', 'notVeryEffectiveTo', 'noEffectTo'], 'properties': {'noEffectTo': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Types this type deals 0Ã\x97 damage to (immune).'}, 'superEffectiveTo': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Types this type deals 2Ã\x97 damage to.'}, 'notVeryEffectiveTo': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Types this type deals 0.5Ã\x97 damage to.'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Offensive effectiveness (populated for single-type queries; null for dual-type Pokémon where per-type breakdown does not compose cleanly).'}, 'composedMultipliers': {'type': 'object', 'description': '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Ã\x97 entries where a dual type composes to a cancellation (e.g. Fire/Flying vs Ice: 0.5Ã\x97 then 2Ã\x97 = 1Ã\x97). A type absent from this map relates to neither defending type and also deals 1Ã\x97 damage.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
Giantbomb
Provides a catalog of video games, platforms, characters, and game companies with searchable metadata from Giant Bomb.
Dnd5e
Looks up Dungeons & Dragons 5th Edition classes, monsters, spells, spell lists, features, and combat statistics.
Igdb
Searches the IGDB catalogue for video games, platforms, developers, publishers, releases, ratings, genres, related content, and g…
MTG Bench
Searches Magic: The Gathering cards and rules and analyzes, validates, upgrades, and finds combos in decks.
Praetorium
Searches verified Warhammer 40K rules and datasheets and supports roster management and turn-based battle tracking.
tibiawiki-mcp
Provides searchable Tibia game data for creatures, items, NPCs, quests, spells, houses, travel, updates, loot, and item sales.
EcoCarbonWiki
Searches and retrieves Eco game wiki content and calculates crafting materials, recipes, rankings, aggregates, and gameplay metri…
VIGuides
Provides curated GTA 6 release information, guides, source references, countdowns, and trending search topics in multiple languag…