Skip to main content
Glama

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

Installation

  1. Clone this repository:

    git clone https://github.com/ChiragAgg5k/poke-mcp.git
    cd poke-mcp
  2. Install 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.py

Connecting with Claude

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.

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 tools
get_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
ParametersJSON Schema
NameRequiredDescriptionDefault
pokemon_nameYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
pokemon1Yes
pokemon2Yes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.1/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.

Latest Blog Posts

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