loading…
Search for a command to run...
loading…
Enables AI assistants to play Pokemon Fire Red through the mGBA emulator by providing tools for button inputs and screenshots. It allows for direct reading of r
Enables AI assistants to play Pokemon Fire Red through the mGBA emulator by providing tools for button inputs and screenshots. It allows for direct reading of real-time game state from RAM, including party information, player location, and battle status.
An MCP server that lets Claude play Pokemon Fire Red through the mGBA emulator. Built for YouTube content — Claude has its own personality, names its Pokemon, trash-talks its rival, and reacts to everything happening in the game.
Claude <-> FastMCP Server (Python) <-> TCP Socket <-> Lua Script (inside mGBA)
Split gameplay model:
pip install uvuv sync
lua/mgba_server.luaMCP Server listening on 127.0.0.1:5555Add to claude_desktop_config.json:
{
"mcpServers": {
"pokemon-firered": {
"command": "C:\\Users\\YOUR_USER\\AppData\\Roaming\\Python\\Python312\\Scripts\\uv.exe",
"args": ["--directory", "C:/path/to/mGba MCP", "run", "mgba-mcp"]
}
}
}
Note: Use the full path to
uv.exe— Claude Desktop may not have it in PATH. Find it withpython -c "import shutil; print(shutil.which('uv'))".
Start a conversation with Claude. It will invent a personality, pick a trainer name, and start playing.
| Tool | Description |
|---|---|
press_button |
Press a GBA button and get a screenshot |
press_buttons |
Press a sequence of buttons with timing |
get_screenshot |
See the current game screen |
get_game_state |
Read badges, money, party Pokemon, battle state from RAM |
get_party |
Detailed party info (stats, moves, IVs) |
get_battle_state |
Battle details (your/enemy Pokemon, HP, moves, PP) |
save_state |
Save emulator state (slots 1-9) |
load_state |
Load emulator state |
wait_frames |
Wait through animations/transitions |
hold_button |
Hold a button for extended walking/scrolling |
Navigation and dialog are handled visually through screenshots only.
Each session, Claude invents a unique persona:
├── pyproject.toml
├── src/mgba_mcp/
│ ├── server.py # FastMCP tools + personality instructions
│ ├── connection.py # TCP client for mGBA communication
│ ├── game_state.py # Pokemon Fire Red RAM parser
│ └── constants.py # Memory addresses and lookup tables
├── lua/
│ └── mgba_server.lua # Lua TCP server loaded into mGBA
└── data/
├── pokemon_species.json
├── pokemon_moves.json
└── map_names.json
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"pokemcp": {
"command": "npx",
"args": []
}
}
}