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., "@Pokemon MCP Serverstart a battle between Pikachu and Charmander"
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.
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:
Install dependencies:
Build the TypeScript code:
Server Architecture
The server implements the MCP protocol with the following tools:
Available Tools
get_random_pokemon- Generate a random Pokemon with stats and movesOptional:
level(1-100)
get_pokemon_by_name- Retrieve a specific PokemonRequired:
name(string)Optional:
level(1-100)
list_all_pokemon- List all available Pokemon in the databasestart_battle- Initialize a battle between two PokemonRequired:
pokemon1_name,pokemon2_name(strings)Optional:
pokemon1_level,pokemon2_level(1-100)
attack- Execute an attack in the current battleRequired:
attacker_name,move_name(strings)
get_battle_status- Check the current battle stateget_type_effectiveness- Query type effectiveness chartRequired:
attacking_type(string)Optional:
defending_type(string)
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.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration:
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