Skip to main content
Glama

Pokemon MCP Server

by Pablo-Davila
README.md3.06 kB
# Pokemon MCP Server An MCP (Model Context Protocol) server built with FastMCP that provides Pokemon information including height, weight, and types. ## Features - Get Pokemon information by name or ID - Get random Pokemon by type - Compare two Pokemon side-by-side (Prompt) - No API keys required (uses free PokeAPI) - Provides height, weight, types, and base stats for any Pokemon ## Installation ### Option 1: Local Installation 1. Install dependencies: ```bash pip install -r requirements.txt ``` ### Option 2: Docker Build and run using Docker: ```bash # Build the Docker image docker build -t pokemon-mcp-server . # Run the container docker run -it pokemon-mcp-server ``` ## Usage ### Local Run the MCP server: ```bash python pokemon_server.py ``` ### Docker The Docker container runs the server automatically when started. The server communicates via stdin/stdout as per MCP protocol. ## API ### `get_pokemon(pokemon_name: str)` Get Pokemon information for a specified Pokemon by name or ID. **Parameters:** - `pokemon_name` (str): The name or ID of the Pokemon to look up (case-insensitive) **Returns:** - Formatted string with Pokemon information including: - Pokemon ID - Height (in meters and centimeters) - Weight (in kilograms) - Types **Example:** ``` get_pokemon("pikachu") get_pokemon("charizard") get_pokemon("25") # Can also use ID ``` ### `get_random_pokemons_by_type(type_name: str, n: int = 5)` Get n random Pokemon of a specified type. **Parameters:** - `type_name` (str): The type name (e.g., "fire", "water", "grass", "electric", etc.) - `n` (int): Number of random Pokemon to return (default: 5) **Returns:** - JSON string containing a list of Pokemon names of the specified type **Example:** ``` get_random_pokemons_by_type("fire", 10) get_random_pokemons_by_type("water") ``` ## Prompts ### `compare_pokemon(pokemon1_name: str, pokemon2_name: str)` Compare two Pokemon based on their stats, types, and characteristics. **Parameters:** - `pokemon1_name` (str): The name or ID of the first Pokemon - `pokemon2_name` (str): The name or ID of the second Pokemon **Returns:** - Formatted comparison string including: - Basic information (ID, height, weight, types) for both Pokemon - Base stats comparison (HP, Attack, Defense, Special Attack, Special Defense, Speed) - Total base stats comparison - Summary analysis **Example:** ``` compare_pokemon("pikachu", "charizard") compare_pokemon("25", "6") # Can also use IDs ``` ## How It Works 1. The server queries the PokeAPI endpoint: `https://pokeapi.co/api/v2/pokemon/{name}/` 2. Extracts height, weight, and types from the response 3. Converts height from decimeters to meters/centimeters and weight from hectograms to kilograms 4. Formats and returns the Pokemon information to the client ## Dependencies - `fastmcp`: FastMCP framework for building MCP servers - `requests`: HTTP library for making API requests ## API Reference The server uses the [PokeAPI](https://pokeapi.co/) which is free and doesn't require authentication.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pablo-Davila/pokemon-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server