get_pokemon_stats
Retrieve base Pokémon statistics including HP, attack, defense, special attack, special defense, and speed by providing a Pokémon name or ID number.
Instructions
ポケモンの基礎ステータス(HP、こうげき、ぼうぎょ、とくこう、とくぼう、すばやさ)を取得
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pokemon | Yes | ポケモン名またはID番号 |
Implementation Reference
- src/index.ts:195-242 (handler)The core handler function that fetches Pokemon data from the PokeAPI, extracts and formats the base stats (HP, attack, defense, special-attack, special-defense, speed), includes additional info like name, id, types, and base_experience, and returns it as MCP-formatted content or an error.private async getPokemonStats(pokemon: string) { try { const data = await this.fetchPokemonData(pokemon); // ステータス情報を初期化 const stats: PokemonStats = { hp: 0, attack: 0, defense: 0, "special-attack": 0, "special-defense": 0, speed: 0 }; // APIから取得したステータスデータを整形 data.stats.forEach(stat => { const statName = stat.stat.name as keyof PokemonStats; if (statName in stats) { stats[statName] = stat.base_stat; } }); return { content: [ { type: "text", text: JSON.stringify({ name: data.name, id: data.id, stats: stats, types: data.types.map(t => t.type.name), base_experience: data.base_experience }, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: `エラー: ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } }
- src/index.ts:83-96 (registration)Tool registration in the listTools response, including name, description, and input schema.{ name: "get_pokemon_stats", description: "ポケモンの基礎ステータス(HP、こうげき、ぼうぎょ、とくこう、とくぼう、すばやさ)を取得", inputSchema: { type: "object", properties: { pokemon: { type: "string", description: "ポケモン名またはID番号", }, }, required: ["pokemon"], }, },
- src/index.ts:86-95 (schema)Input schema definition for the get_pokemon_stats tool, specifying the required 'pokemon' string parameter.inputSchema: { type: "object", properties: { pokemon: { type: "string", description: "ポケモン名またはID番号", }, }, required: ["pokemon"], },
- src/index.ts:17-24 (schema)TypeScript interface defining the structure of Pokemon stats used in the handler.interface PokemonStats { hp: number; // HP(ヒットポイント) attack: number; // こうげき defense: number; // ぼうぎょ "special-attack": number; // とくこう "special-defense": number; // とくぼう speed: number; // すばやさ }
- src/index.ts:182-192 (helper)Helper function to fetch raw Pokemon data from PokeAPI, used by the getPokemonStats handler.private async fetchPokemonData(pokemon: string): Promise<PokemonData> { try { const response = await axios.get(`https://pokeapi.co/api/v2/pokemon/${pokemon.toLowerCase()}`); return response.data; } catch (error) { if (axios.isAxiosError(error) && error.response?.status === 404) { throw new Error(`ポケモン "${pokemon}" が見つかりません`); } throw new Error(`ポケモンデータの取得に失敗しました: ${error instanceof Error ? error.message : String(error)}`); } }