Provides detailed Pokémon data and battle simulations by integrating with PokeAPI, offering base stats, types, abilities, moves with effects, evolution chains, and error-handling via the Model Context Protocol (MCP).
Unlock the full potential of PokeMCP through LangDB's AI Gateway. Get enterprise-grade security, analytics, and seamless integration with zero configuration.
Free tier available • No credit card required
PokeMCP is an MCP (Modular Command Platform) server that provides detailed Pokémon information by integrating with the PokeAPI. It exposes a tool to fetch comprehensive data about any Pokémon, including base stats, types, abilities (with effects), moves (with effects), and evolution chain.
git clone https://github.com/ChiragAgg5k/poke-mcp.git cd poke-mcp
uv sync
Run the server using uv (ensure you have the required MCP infrastructure):
uv run mcp dev server.py
Run the following command to connect with Claude:
uv run mcp install server.py
Result should look like this:
Added server 'poke-mcp' to Claude config Successfully installed poke-mcp in Claude app
Now you can use the poke-mcp
MCP tools in Claude:
Get Pokemon Info
Simulate Battle
Learn how to connect the server with other MCP clients like Cursor here.
get_pokemon_info
Fetches detailed information about a Pokémon.
pokemon_name
(str): The name of the Pokémon (case-insensitive)A dictionary with the following structure:
{ "name": "pikachu", "id": 25, "base_stats": { "hp": 35, "attack": 55, ... }, "types": ["electric"], "abilities": [ {"name": "static", "effect": "May paralyze on contact."}, ... ], "moves": [ {"name": "thunder-shock", "effect": "Has a 10% chance to paralyze the target."}, ... ], "evolution_chain": ["pichu", "pikachu", "raichu"] }
If the Pokémon is not found or there is a network error, the response will include an error
key with a descriptive message.
simulate_battle
Simulates a Pokémon battle between two Pokémon using core mechanics (stats, type, and status effects).
pokemon1
(str): Name of the first Pokémon (case-insensitive)pokemon2
(str): Name of the second Pokémon (case-insensitive)A dictionary with the following structure:
{ "pokemon1": "pikachu", "pokemon2": "charizard", "initial_hp": { "pikachu": 35, "charizard": 78 }, "battle_log": [ "Turn 1:", "charizard uses mega-punch and deals 75 damage! (pikachu HP: 0)", "pikachu fainted!", "Winner: charizard!" ], "winner": "charizard" }
If either Pokémon is not found or there is a network error, the response will include an error
key with a descriptive message.
This project uses the PokeAPI and is intended for educational and non-commercial use.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!