get_item
Look up held item effects for Pokemon Showdown battles. Enter an item name to get its full battle description and strategic information.
Instructions
Look up a held item by name. Returns full description of what the item does in battle.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Item name (e.g., 'choice-scarf', 'leftovers', 'life-orb') |
Implementation Reference
- mcpkmn_showdown/pokemon_server.py:227-240 (registration)Registration of the 'get_item' tool in the list_tools() function, including name, description, and input schema definition.Tool( name="get_item", description="Look up a held item by name. Returns full description of what the item does in battle.", inputSchema={ "type": "object", "properties": { "name": { "type": "string", "description": "Item name (e.g., 'choice-scarf', 'leftovers', 'life-orb')" } }, "required": ["name"] } ),
- Execution handler for the 'get_item' tool within the call_tool function: calls loader.get_item, formats the response if found, or returns 'not found' message.elif name == "get_item": item = loader.get_item(arguments["name"]) if item: return [TextContent(type="text", text=format_item_response(item))] return [TextContent(type="text", text=f"Item '{arguments['name']}' not found.")]
- mcpkmn_showdown/data_loader.py:154-167 (handler)Core implementation of get_item in PokemonDataLoader: loads data if needed, normalizes item name, and retrieves from items dictionary.def get_item(self, name: str) -> dict | None: """ Get item data by name. Args: name: Item name (case-insensitive) Returns: Item data dict or None if not found """ self.load_all() key = self._normalize_name(name) return self.items.get(key)
- Helper function to format item data into a markdown-formatted text response used by the get_item handler.def format_item_response(item: dict) -> str: """Format item data into a readable response.""" name = item.get("name", "Unknown") desc = item.get("desc", item.get("shortDesc", "No description.")) short_desc = item.get("shortDesc", "") response = f"""## {name} ### Effect {desc} """ if short_desc and short_desc != desc: response += f"\n### Summary\n{short_desc}\n" return response