get_ability
Retrieve detailed battle descriptions for Pokemon abilities by name to understand their in-game effects and strategic applications.
Instructions
Look up an ability by name. Returns full description of what the ability does in battle.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Ability name (e.g., 'truant', 'intimidate', 'levitate') |
Implementation Reference
- The MCP tool handler for get_ability: dispatches to data loader, formats response or handles not found.elif name == "get_ability": ability = loader.get_ability(arguments["name"]) if ability: return [TextContent(type="text", text=format_ability_response(ability))] return [TextContent(type="text", text=f"Ability '{arguments['name']}' not found.")]
- mcpkmn_showdown/pokemon_server.py:213-226 (registration)Registration of the get_ability tool in list_tools(), including schema and description.Tool( name="get_ability", description="Look up an ability by name. Returns full description of what the ability does in battle.", inputSchema={ "type": "object", "properties": { "name": { "type": "string", "description": "Ability name (e.g., 'truant', 'intimidate', 'levitate')" } }, "required": ["name"] } ),
- DataLoader.get_ability(): normalizes ability name and retrieves from loaded JSON data.def get_ability(self, name: str) -> dict | None: """ Get ability data by name. Args: name: Ability name (case-insensitive) Returns: Ability data dict or None if not found """ self.load_all() key = self._normalize_name(name) return self.abilities.get(key)
- Helper function to format the ability data into markdown response text.def format_ability_response(ability: dict) -> str: """Format ability data into a readable response.""" name = ability.get("name", "Unknown") desc = ability.get("desc", ability.get("shortDesc", "No description.")) short_desc = ability.get("shortDesc", "") response = f"""## {name} ### Effect {desc} """ if short_desc and short_desc != desc: response += f"\n### Summary\n{short_desc}\n" return response