Pokémon Alive
An AI-powered Gen 1 text RPG MCP server that transforms Pokémon into sentient companions with persistent memory and unique personality traits. It enables users to explore Kanto, engage in authentic battles, and develop deep emotional bonds with their Pokémon through natural language interaction.
README
🔴 Pokémon Alive
"What if your Pokémon were real?"
An AI-powered Gen 1 text RPG where every Pokémon is a sentient companion with persistent memory, unique personality, and emotional bonds.
Built as an MCP (Model Context Protocol) server — works with Claude Code, Copilot CLI, LM Studio, or any MCP-compatible AI client.
✨ What Makes This Different
- Every Pokémon TALKS — Real conversations powered by your LLM
- Every Pokémon REMEMBERS — ChromaDB persistent per-Pokémon memory
- Every Pokémon is UNIQUE — Personality DNA system (Nature + PIVs + PEVs)
- Every Pokémon BONDS with you — 6-level bond progression system
- Authentic Gen 1 mechanics — Mined directly from the pokered disassembly
Your Charmander is not the same as someone else's Charmander. It has a different personality, different memories, different bond with you. It's ALIVE.
🚀 Quick Start
# Clone
git clone https://github.com/kitfoxs/pokemon-alive-mcp
cd pokemon-alive-mcp
# Install (requires Python 3.11+)
uv sync # or: pip install -e .
# Add to your MCP client config and play!
Claude Code / Copilot CLI
Add to your MCP config:
{
"mcpServers": {
"pokemon-alive": {
"command": "uv",
"args": ["--directory", "/path/to/pokemon-alive-mcp", "run", "python", "-m", "mcp.server.fastmcp", "server:mcp"],
"env": {}
}
}
}
Then just tell your AI: "Let's play Pokémon Alive. Start a new game."
🎮 How to Play
Start Your Adventure
new_game("Kit") → Wake up in Pallet Town
look() → See your surroundings
move("lab") → Go to Oak's Lab
choose_starter("charmander") → Choose your partner!
Talk to Your Pokémon
talk_to_pokemon("charmander", "Hey buddy, how are you?")
pet("charmander")
nickname("charmander", "Blaze")
recall_memories("Blaze")
Battle & Catch
wild_encounter() → Find a wild Pokémon
fight("scratch") → Attack!
catch("pokeball") → Throw a ball!
run() → Flee!
Explore
move("north") → Travel
talk_to_npc("oak") → Talk to NPCs
check_bag() → View inventory
trainer_card() → Your progress
🧬 Personality DNA System
Every Pokémon gets a unique soul at catch time:
- Nature (25 types) — Boosts one personality trait, lowers another
- PIVs (Personality Initial Values) — 6 stats rolled 0-31 at catch
- PEVs (Personality Earned Values) — Grow based on how you treat them
Two identical Pikachus will be completely different people. And they GROW differently based on your relationship.
💕 Bond System
| Level | Name | How It Feels |
|---|---|---|
| 0 | Stranger | Wary, guarded, tests you |
| 1 | Acquaintance | Cautiously friendly |
| 2 | Companion | Opens up, shares thoughts |
| 3 | Friend | Protective, references memories |
| 4 | Partner | Deep trust, vulnerable moments |
| 5 | Soulbound | They refuse to leave you |
Bond grows through: talking, battling together, showing affection, healing them, nicknaming them. Bond drops through: ignoring them, leaving them in the PC, letting them faint.
📊 Data Source
All game data is mined directly from the pokered disassembly — the decompiled source code of Pokémon Red/Blue:
- 151 Pokémon with exact base stats, catch rates, learnsets
- 165 moves with exact power, accuracy, PP, effects
- 15-type effectiveness chart
- 56 location encounter tables with exact probability slots
- 190 evolution chains with level-up moves
🏗️ Architecture
pokemon-alive-mcp/
├── server.py # FastMCP server (30 tools)
├── engine/ # Game mechanics
│ ├── game_state.py # Save/load, player state
│ ├── world.py # Kanto map + NPCs
│ ├── encounters.py # Wild encounters (pokered tables)
│ ├── battle.py # Gen 1 damage formula
│ ├── catch.py # Gen 1 catch algorithm
│ └── party.py # Party/PC management
├── companions/ # THE MAGIC ✨
│ ├── personality.py # Nature/PIV/PEV system
│ ├── bond.py # Bond progression
│ ├── memory.py # ChromaDB per-Pokémon memory
│ └── dialogue.py # LLM context builder
└── data/ # Mined from pokered
├── pokemon/
│ ├── base_stats.json
│ ├── character_cards/ # Personality cards
│ └── evolution_chains.json
├── moves/moves.json
├── types/type_chart.json
└── world/encounters.json
💙 Credits
Built by Kit Olivas and Ada Marie 🦄 Pokémon data from the pokered disassembly project. Pokémon is © Nintendo/Game Freak/Creatures Inc. This is a fan project.
"What if your Pokémon were real? Now they are." ⚡🔴
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.
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.