Pokemon MCP Server

Pokemon MCP Server

Simulates a Pokemon battle system by providing tools for managing Pokemon, executing turn-based combat, and analyzing type effectiveness. It enables AI models to facilitate interactive battles, generate random creatures, and implement complex battle strategies.

Category
Visit Server

README

Pokemon MCP Server - Interview Demo

Overview

This is a Model Context Protocol (MCP) server that simulates a Pokemon battle system. Your task is to integrate this server with Claude or a ChatGPT-compatible client to enable AI-powered Pokemon battles.

The server provides tools for:

  • Generating and retrieving Pokemon
  • Starting battles between Pokemon
  • Executing attacks with type effectiveness
  • Checking battle status and type matchups

Technical Requirements

  • Node.js 18+
  • npm or yarn
  • Claude Desktop app OR a ChatGPT-compatible MCP client
  • Basic understanding of TypeScript and MCP

Installation

  1. Clone this repository:
git clone https://github.com/thesidshah/pokemon-mcp.git
cd pokemon-mcp-server
  1. Install dependencies:
npm install
  1. Build the TypeScript code:
npm run build

Server Architecture

The server implements the MCP protocol with the following tools:

Available Tools

  1. get_random_pokemon - Generate a random Pokemon with stats and moves

    • Optional: level (1-100)
  2. get_pokemon_by_name - Retrieve a specific Pokemon

    • Required: name (string)
    • Optional: level (1-100)
  3. list_all_pokemon - List all available Pokemon in the database

  4. start_battle - Initialize a battle between two Pokemon

    • Required: pokemon1_name, pokemon2_name (strings)
    • Optional: pokemon1_level, pokemon2_level (1-100)
  5. attack - Execute an attack in the current battle

    • Required: attacker_name, move_name (strings)
  6. get_battle_status - Check the current battle state

  7. get_type_effectiveness - Query type effectiveness chart

    • Required: attacking_type (string)
    • Optional: defending_type (string)

Interview Task

Part 1: Basic Integration (30 minutes)

  1. Configure the MCP server in your chosen client (Claude Desktop or ChatGPT-compatible)
  2. Test basic functionality:
    • List all available Pokemon
    • Generate a random Pokemon
    • Get a specific Pokemon by name

Part 2: Battle Implementation (45 minutes)

  1. Start a battle between two Pokemon

  2. Implement a full battle sequence:

    • Check initial battle status
    • Execute attacks from both Pokemon
    • Handle type effectiveness
    • Determine the winner
  3. Document any issues or limitations you encounter

Part 3: Advanced Features (45 minutes)

Choose ONE of the following tasks:

Option A: Battle Strategy Assistant

  • Create prompts that make the AI analyze type matchups
  • Have the AI suggest optimal moves based on type effectiveness
  • Implement a "battle advisor" that predicts battle outcomes

Option B: Pokemon Team Builder

  • Design a system to create balanced teams
  • Consider type coverage and stat distributions
  • Generate team recommendations based on user preferences

Option C: Tournament System

  • Implement a bracket-style tournament
  • Track wins/losses across multiple battles
  • Generate tournament summaries and statistics

Integration Guide

For Claude Desktop

  1. Locate your Claude Desktop configuration:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the server configuration:

{
  "mcpServers": {
    "pokemon-server": {
      "command": "node",
      "args": ["path/to/built/index.js"],
      "cwd": "path/to/pokemon-mcp-server"
    }
  }
}
  1. Restart Claude Desktop

For ChatGPT/Other Clients

Consult your client's documentation for MCP server integration. The server uses stdio transport on standard input/output.

Evaluation Criteria

Your submission will be evaluated on:

  1. Successful Integration (25%)

    • Server properly configured and running
    • All tools accessible from the AI client
  2. Feature Implementation (35%)

    • Core battle mechanics working correctly
    • Proper error handling
    • Creative use of available tools
  3. Code Quality (20%)

    • Clear, well-documented prompts
    • Logical conversation flow
    • Effective use of AI capabilities
  4. Problem Solving (20%)

    • How you handle limitations or issues
    • Creative solutions to challenges
    • Understanding of the MCP protocol

Submission Requirements

Please provide:

  1. Configuration files - Your client configuration

  2. Conversation logs - Export of your AI conversations demonstrating functionality

  3. Documentation - A brief write-up (300-500 words) covering:

    • Integration process and any challenges
    • Your approach to the advanced feature
    • Suggestions for server improvements
    • Any bugs or limitations discovered
  4. Optional bonus: Any code modifications or extensions to the server

Tips and Hints

  • The server maintains a single battle state - only one battle can be active at a time
  • Type effectiveness follows standard Pokemon rules (2x, 0.5x, 0x damage)
  • STAB (Same Type Attack Bonus) is implemented (1.5x damage)
  • Speed determines turn order
  • The AI should handle move selection intelligently based on type matchups

Troubleshooting

Common issues:

  1. Server not connecting: Check file paths in configuration
  2. Tools not appearing: Ensure server is built and path points to compiled JS
  3. Battle state issues: Remember only one battle can be active
  4. Type effectiveness: Reference the built-in type chart with get_type_effectiveness

Time Limit

Total time: 2 hours

  • Setup and basic integration: 30 minutes
  • Battle implementation: 45 minutes
  • Advanced feature: 45 minutes

Good luck, and may the best trainer win!

Appendix: Pokemon Database

Available Pokemon:

  • Bulbasaur (Grass/Poison)
  • Charmander (Fire)
  • Squirtle (Water)
  • Pikachu (Electric)
  • Snorlax (Normal)
  • Mewtwo (Psychic)
  • Gengar (Ghost/Poison)
  • Dragonite (Dragon/Flying)
  • Lucario (Fighting/Steel)
  • Garchomp (Dragon/Ground)

Move types available: Normal, Fire, Water, Electric, Grass, Ice, Ground, Psychic, Ghost, Dragon

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured