Skip to main content
Glama
Sujal-py3

Pokémon Battle Simulation MCP Server

by Sujal-py3

Pokémon Battle Simulation – MCP Server

Minimal MCP server exposing:

  • Pokémon data from PokeAPI

  • A simple battle simulator (type effectiveness, status effects, logs)

This document explains install, run, Claude Desktop setup, and how to test.

MCP architecture (overview)

flowchart LR
  subgraph Client[Claude Desktop]
    UI[User prompt]
    MCPClient[MCP client]
  end

  subgraph Server[MCP Pokémon Server]
    Tools[Tools]
    Resources[Resources]
    Engine[BattleEngine]
    API[PokeAPI Client]
  end

  subgraph PokeAPI[PokeAPI]
    DS[(Types\nMoves\nPokémon)]
  end

  UI --> MCPClient
  MCPClient <--> |stdio JSON-RPC| Server
  Server --> Resources
  Server --> Tools
  Tools --> Engine
  Engine --> API
  Resources --> API
  API --> |HTTPS| DS

Related MCP server: Pokémon MCP Server

Prerequisites

  • Node.js 18+ on Windows (recommended via nvm-windows or nodejs.org installer)

  • Internet access (for PokeAPI and first-time dependency install)

  • Claude Desktop installed

Project structure

mcp-pokemon/
├── src/
│   ├── server/            # MCP server (registers resources + tools)
│   ├── data_layer/        # PokeAPI client + caching
│   ├── battle/            # battle engine
│   └── schemas/           # TypeScript interfaces
├── scripts/
│   └── ingest_pokeapi.ts  # optional: pre-fetch data to local JSON
├── data/                  # generated by ingestion (optional)
├── dist/                  # compiled JS
├── package.json
└── tsconfig.json

1) Install

npm install

2) Build

npm run build

This compiles TypeScript to dist/.

3) Run the server (pick one)

  • Development (tsx + TypeScript):

npm run dev
  • Production (compiled JS):

node dist/server/index.js

Expected output: Pokémon MCP Server running on stdio.

4) Configure Claude Desktop (Windows)

Edit the file:

C:\Users\<YourUser>\AppData\Roaming\Claude\claude_desktop_config.json

Add this entry (adjust paths if needed):

{
  "mcpServers": {
    "pokemon": {
      "command": "node",
      "args": ["C:\\Users\\Sujal\\mcp-pokemon\\dist\\server\\index.js"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Notes:

  • Dev alternative: "command": "npx", "args": ["tsx", "src/server/index.ts"].

  • Restart Claude Desktop after editing the config.

5) Optional: Pre-fetch data

Downloads type effectiveness, popular moves, and Gen‑1 Pokémon to data/.

npm run ingest

6) Use from Claude

Example prompts:

  • List the available MCP tools

  • Get detailed information about Pikachu

  • Search for Pokémon with “char” in the name

  • Tell me about the move “thunderbolt”

  • Simulate a battle between Charizard and Blastoise at level 50

Tools:

  • get_pokemon(identifier: string)

  • search_pokemon(query: string)

  • get_move(moveName: string)

  • simulate_battle(pokemon1: string, pokemon2: string, level1?: number, level2?: number)

Resource:

  • pokemon://data – metadata and usage help for the Pokémon data resource

Troubleshooting

  • If Claude shows “Server disconnected”, open logs: “Open Logs Folder” → mcp-server-pokemon.log.

  • Ensure the config path points to the absolute dist/server/index.js.

  • Rebuild after edits: npm run build.

  • Manual test: node dist/server/index.js (expect stdio banner, no errors).

Uninstall / clean

# remove build output
rd /s /q dist

# remove downloaded data (if created by ingest)
rd /s /q data

License

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI models to access comprehensive Pokémon data from PokéAPI and simulate battles between any two Pokémon with realistic mechanics including type effectiveness, stat-based damage calculations, and status effects.
    1
    -
  • F
    license
    C
    quality
    D
    maintenance
    Enables interaction with live Pokémon data through PokeAPI, providing comprehensive Pokémon information, battle calculations, moveset validation, and team analysis. Supports searching Pokémon and moves, calculating stats, checking type effectiveness, and analyzing team synergies with in-memory caching for improved performance.
    9
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to fetch detailed Pokémon data, build tournament squads, and simulate battles using PokéAPI. It also integrates Wikipedia to provide fun comparisons between Pokémon and their real-world animal inspirations.
    -