PokeMCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PokeMCPsimulate a battle between pikachu and charizard"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PokeMCP
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.
Features
Fetches Pokémon base stats, types, and abilities (with effect descriptions)
Retrieves up to 10 moves per Pokémon, including move effects
Provides the full evolution chain for a given Pokémon
Handles errors gracefully and returns informative error messages
Related MCP server: PokéAPI MCP Server
Requirements
Python 3.11.4+
httpx (for async HTTP requests)
mcp.server.fastmcp (for MCP server framework)
Installation
Clone this repository:
git clone https://github.com/ChiragAgg5k/poke-mcp.git cd poke-mcpInstall dependencies using uv:
uv sync
Usage
Development Server
Run the server using uv (ensure you have the required MCP infrastructure):
uv run mcp dev server.pyConnecting with Claude
Run the following command to connect with Claude:
uv run mcp install server.pyResult 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.
API
Tool: get_pokemon_info
Fetches detailed information about a Pokémon.
Arguments
pokemon_name(str): The name of the Pokémon (case-insensitive)
Returns
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"]
}Error Handling
If the Pokémon is not found or there is a network error, the response will include an error key with a descriptive message.
Tool: simulate_battle
Simulates a Pokémon battle between two Pokémon using core mechanics (stats, type, and status effects).
Arguments
pokemon1(str): Name of the first Pokémon (case-insensitive)pokemon2(str): Name of the second Pokémon (case-insensitive)
Returns
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"
}Error Handling
If either Pokémon is not found or there is a network error, the response will include an error key with a descriptive message.
License
This project uses the PokeAPI and is intended for educational and non-commercial use.
Available Tools
2 toolsget_pokemon_infoB
Get comprehensive information about a Pokémon.
Includes base stats, types, abilities, moves (with effects), and evolution information.
Args:
pokemon_name: The name of the Pokémon to get information about.
Returns:
A dictionary containing the Pokémon's information
| Name | Required | Description | Default |
|---|---|---|---|
| pokemon_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions what information is returned, it doesn't address important behavioral aspects like whether this is a read-only operation (implied but not stated), potential rate limits, authentication requirements, error conditions, or data freshness. The description is insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, included information, Args, Returns) and uses minimal, focused sentences. Every sentence contributes meaning. It could be slightly more concise by integrating the purpose and included information more tightly, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving comprehensive Pokémon data), no annotations, no output schema, and 0% schema coverage, the description is minimally adequate. It covers the basic purpose and parameter meaning but lacks behavioral context and detailed return format. The absence of an output schema means the description should ideally explain the return structure more thoroughly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and only one parameter, the description adds significant value by explaining that 'pokemon_name' refers to 'The name of the Pokémon to get information about.' This clarifies the parameter's purpose beyond what the bare schema provides. However, it doesn't specify format requirements (e.g., case sensitivity, special characters) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('comprehensive information about a Pokémon'), and lists the types of information included (base stats, types, abilities, moves, evolution). However, it doesn't explicitly differentiate from the sibling tool 'simulate_battle', which serves a completely different purpose, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While the sibling tool 'simulate_battle' is clearly different (simulation vs. information retrieval), there's no explicit mention of alternatives or context for usage decisions. The description only states what the tool does, not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_battleC
Simulate a Pokémon battle between two Pokémon using core mechanics.
Args:
pokemon1: Name of the first Pokémon
pokemon2: Name of the second Pokémon
Returns:
Battle log and winner
| Name | Required | Description | Default |
|---|---|---|---|
| pokemon1 | Yes | ||
| pokemon2 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool simulates a battle and returns a battle log and winner, which covers basic output. However, it lacks details on behavioral traits such as how the simulation works (e.g., deterministic vs. random, level or stat considerations), error handling for invalid Pokémon names, or any rate limits or side effects. This leaves significant gaps for a simulation tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by bullet points for args and returns. There's no wasted text, and the structure is clear. However, the bullet points could be more integrated into prose for optimal flow, but it remains efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a simulation tool with no annotations, 0% schema description coverage, and no output schema, the description is incomplete. It covers the basic purpose and parameters but lacks details on how the simulation behaves, what the battle log includes, error cases, or prerequisites. For a tool that likely involves game mechanics and potential variability, this leaves too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema: it specifies that parameters are 'Name of the first Pokémon' and 'Name of the second Pokémon', which clarifies their purpose as Pokémon names. However, with 0% schema description coverage and 2 parameters, this doesn't fully compensate for the lack of schema details (e.g., format constraints, valid Pokémon names). It provides basic meaning but leaves gaps, aligning with the baseline for partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Simulate a Pokémon battle between two Pokémon using core mechanics.' It specifies the verb ('simulate'), resource ('Pokémon battle'), and scope ('between two Pokémon'), which is clear and specific. However, it doesn't explicitly distinguish this from the sibling tool 'get_pokemon_info', which appears to be for retrieving information rather than simulation, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'core mechanics' but doesn't explain what that entails or when to choose simulation over other actions like getting Pokémon info. There are no explicit when/when-not statements or named alternatives, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have completely distinct purposes: get_pokemon_info retrieves detailed Pokémon data, while simulate_battle runs battle simulations. There is no overlap or ambiguity between these functions, making tool selection straightforward for an agent.
Both tools follow a consistent verb_noun naming pattern (get_pokemon_info, simulate_battle) with clear, descriptive names that accurately reflect their functions. The naming convention is uniform throughout the tool set.
With only 2 tools, this server feels severely under-scoped for a Pokémon domain. While the tools cover information retrieval and battle simulation, there are obvious gaps in functionality like listing Pokémon, managing teams, or accessing other game mechanics, making the tool count insufficient for comprehensive Pokémon-related tasks.
The tool surface is significantly incomplete for a Pokémon server. It lacks basic operations such as listing Pokémon, searching by criteria, or accessing other game elements like items or locations. The two existing tools provide limited coverage, leaving agents unable to perform many expected Pokémon-related workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server implementation that enables users to interact with the PokeAPI to fetch Pokemon information through natural language queries.
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that provides an interface to access Pokémon data through the PokéAPI, enabling agents to retrieve information about Pokémon species, abilities, moves, and more via natural language.
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides standardized access to Pokemon data, allowing users to search, compare, and retrieve detailed information about Pokemon through natural language tools.5
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive Pokemon data and battle simulation capabilities to AI assistants. It enables users to access detailed stats, types, and moves while simulating battles with realistic mechanics like type effectiveness and status effects.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ChiragAgg5k/poke-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server