get_move
Retrieve detailed move information for competitive Pokemon battles, including power, accuracy, type, effects, and descriptions.
Instructions
Look up a move by name. Returns power, accuracy, type, category, priority, effects, and full description.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Move name (e.g., 'thunderbolt', 'earthquake', 'swords-dance') |
Implementation Reference
- src/data_loader.py:72-84 (handler)Core handler function that implements the get_move tool: ensures data is loaded, normalizes the input name by lowercasing and removing spaces/hyphens, then retrieves and returns the corresponding move data dictionary or None.def get_move(self, name: str) -> dict | None: """ Get move data by name. Args: name: Move name (case-insensitive) Returns: Move data dict or None if not found """ self.load_all() key = name.lower().replace(" ", "").replace("-", "") return self.moves.get(key)
- src/pokemon_server.py:202-211 (schema)Input schema for the get_move tool, defining a single required string parameter 'name' with description and examples.inputSchema={ "type": "object", "properties": { "name": { "type": "string", "description": "Move name (e.g., 'thunderbolt', 'earthquake', 'swords-dance')" } }, "required": ["name"] }
- src/pokemon_server.py:199-212 (registration)Registration of the 'get_move' tool in the MCP tools list, including name, description, and input schema.Tool( name="get_move", description="Look up a move by name. Returns power, accuracy, type, category, priority, effects, and full description.", inputSchema={ "type": "object", "properties": { "name": { "type": "string", "description": "Move name (e.g., 'thunderbolt', 'earthquake', 'swords-dance')" } }, "required": ["name"] } ),
- src/pokemon_server.py:316-320 (registration)Dispatch logic in the MCP server's call_tool function that handles invocation of get_move by calling the loader method and formatting the response.elif name == "get_move": move = loader.get_move(arguments["name"]) if move: return [TextContent(type="text", text=format_move_response(move))] return [TextContent(type="text", text=f"Move '{arguments['name']}' not found.")]