使用说明
PokeMCP-AI玩火红色口袋妖怪
一个MCP服务器,让克劳德通过mGBA模拟器玩《口袋妖怪火红》。专为YouTube内容打造——克劳德有自己的个性,给它的口袋妖怪命名,对竞争对手进行垃圾话,并对游戏中发生的一切做出反应。
运作原理
Claude <-> FastMCP Server (Python) <-> TCP Socket <-> Lua Script (inside mGBA)
拆分游戏模式:
- 克劳德处理: 战斗、对话、菜单、命名(训练师/对手/Pokemon)、团队策略
- 人工操作手柄: 环游世界导航(步行到目的地)
- 导航纯粹是视觉上的 --克劳德阅读截图以了解游戏世界
- RAM读取 仅用于派对口袋妖怪统计数据、战斗数据、徽章和金钱
先决条件
- mGBA v0.10+-- mgba.io
- python 3.12+
- 紫外线 —
pip install uv - 口袋妖怪火红色ROM --US v1.0(游戏代码:BPRE)
设置
1.安装依赖项
uv sync
2.在mGBA中加载Lua脚本
- 打开mGBA并加载您的Pokemon Fire Red ROM
- 首选 工具>脚本
- 文件>加载脚本 → 选择
lua/mgba_server.lua - 控制台应显示:
MCP Server listening on 127.0.0.1:5555
3.配置克劳德桌面
添加 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"]
}
}
}
注: 使用完整路径
uv.exe--Claude Desktop可能在PATH中没有它。找到它python -c "import shutil; print(shutil.which('uv'))".
4.玩!
与克劳德开始对话。它会创造一个个性,选择一个教练的名字,然后开始玩。
可用工具
| 工具 | 说明 |
|---|---|
press_button |
按下GBA按钮并获取屏幕截图 |
press_buttons |
按一系列定时按钮 |
get_screenshot |
查看当前游戏屏幕 |
get_game_state |
从RAM读取徽章、金钱、派对口袋妖怪、战斗状态 |
get_party |
详细的政党信息(统计数据、行动、IV) |
get_battle_state |
战斗细节(你/敌人的口袋妖怪、生命值、招式、玩家等级) |
save_state |
保存仿真器状态(插槽1-9) |
load_state |
加载模拟器状态 |
wait_frames |
等待动画/过渡 |
hold_button |
按住按钮可延长行走/滚动时间 |
克劳德从RAM中读取的内容
- 派对口袋妖怪 --种类、等级、HP、PP移动、统计数据、IV、状态条件
- 徽章 --获得了哪些健身房徽章
- 金钱 --流动资金(XOR解密)
- 战斗状态 --敌方口袋妖怪种类、等级、生命值、招式
导航和对话已处理 视觉上 仅通过屏幕截图。
克劳德的性格
每次会议,克劳德都会创造一个独特的角色:
- 选择自己的教练名称和竞争对手名称
- 给每个口袋妖怪起个有创意的绰号
- 对口袋妖怪、动作和角色有强烈的看法
- 投入情感——庆祝胜利,哀悼晕倒
- 为观众讲述其思考过程
- YouTube内容的所有西班牙语评论
项目结构
├── 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
YouTube录制技巧
- 保存状态是你的朋友 --在健身房、重要战斗或冒险接球之前存钱
- 让克劳德失败 --错误和反应是有趣的内容
- 为克劳德导航 --步行到目的地,让克劳德来处理剩下的事情
- 卡住时轻推 --告诉克劳德“我们在口袋妖怪中心”或“前面有教练”
- 游戏是英文的,但克劳德用西班牙语评论 --非常适合双语内容
重要说明
- ROM必须是US v1.0(BPRE)才能使内存地址正常工作
- 在mGBA中加载Lua脚本 之前 启动克劳德桌面
- mGBA在比赛时必须保持开放
- Lua脚本会自动检测ROM并在不匹配时发出警告
许可证
麻省理工学院