AI游戏辅助工具

一个通过AI(Claude)在mGBA模拟器中玩《Pokemon Fire Red》的MCP服务器,用于YouTube内容创作,AI具有独特个性并能与游戏互动。

  • by adamescj
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 adamescj/PokeMCP

使用说明

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脚本

  1. 打开mGBA并加载您的Pokemon Fire Red ROM
  2. 首选 工具>脚本
  3. 文件>加载脚本 → 选择 lua/mgba_server.lua
  4. 控制台应显示: 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并在不匹配时发出警告

许可证

麻省理工学院