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.
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
- Clone this repository:
git clone https://github.com/thesidshah/pokemon-mcp.git
cd pokemon-mcp-server
- Install dependencies:
npm install
- Build the TypeScript code:
npm run build
Server Architecture
The server implements the MCP protocol with the following tools:
Available Tools
-
get_random_pokemon- Generate a random Pokemon with stats and moves- Optional:
level(1-100)
- Optional:
-
get_pokemon_by_name- Retrieve a specific Pokemon- Required:
name(string) - Optional:
level(1-100)
- Required:
-
list_all_pokemon- List all available Pokemon in the database -
start_battle- Initialize a battle between two Pokemon- Required:
pokemon1_name,pokemon2_name(strings) - Optional:
pokemon1_level,pokemon2_level(1-100)
- Required:
-
attack- Execute an attack in the current battle- Required:
attacker_name,move_name(strings)
- Required:
-
get_battle_status- Check the current battle state -
get_type_effectiveness- Query type effectiveness chart- Required:
attacking_type(string) - Optional:
defending_type(string)
- Required:
Interview Task
Part 1: Basic Integration (30 minutes)
- Configure the MCP server in your chosen client (Claude Desktop or ChatGPT-compatible)
- Test basic functionality:
- List all available Pokemon
- Generate a random Pokemon
- Get a specific Pokemon by name
Part 2: Battle Implementation (45 minutes)
-
Start a battle between two Pokemon
-
Implement a full battle sequence:
- Check initial battle status
- Execute attacks from both Pokemon
- Handle type effectiveness
- Determine the winner
-
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
-
Locate your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the server configuration:
{
"mcpServers": {
"pokemon-server": {
"command": "node",
"args": ["path/to/built/index.js"],
"cwd": "path/to/pokemon-mcp-server"
}
}
}
- 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:
-
Successful Integration (25%)
- Server properly configured and running
- All tools accessible from the AI client
-
Feature Implementation (35%)
- Core battle mechanics working correctly
- Proper error handling
- Creative use of available tools
-
Code Quality (20%)
- Clear, well-documented prompts
- Logical conversation flow
- Effective use of AI capabilities
-
Problem Solving (20%)
- How you handle limitations or issues
- Creative solutions to challenges
- Understanding of the MCP protocol
Submission Requirements
Please provide:
-
Configuration files - Your client configuration
-
Conversation logs - Export of your AI conversations demonstrating functionality
-
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
-
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:
- Server not connecting: Check file paths in configuration
- Tools not appearing: Ensure server is built and path points to compiled JS
- Battle state issues: Remember only one battle can be active
- 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
E2B
Using MCP to run code via e2b.