mcpField
M
MiSTerClaw

MiSTerClaw

本地服务
github.com/catallo游戏娱乐92 周前更新

关于 MiSTerClaw

MiSTerClaw 是用于通过网络控制 MiSTer-FPGA 的 MCP 服务,面向希望用 AI Agent 或命令行操作设备的用户。它可搜索并启动游戏、读取和修改核心设置、查看截图及系统信息,并自动发现 ROM 系统。

主要功能

  1. 01搜索并启动 ROM 与街机游戏
  2. 02获取游戏截图和系统信息
  3. 03读取或修改核心设置与 DIP 开关
  4. 04扫描并发现可用系统
  5. 05管理 Tailscale VPN
  6. 06提供命令行客户端

适用场景

  1. 01通过 Agent 搜索并启动游戏
  2. 02查看运行中的游戏截图
  3. 03调整核心设置并重新加载
  4. 04远程访问 MiSTer-FPGA

MCP 相关

MCP 服务通过 TCP 将 MCP 客户端连接到 MiSTer 上运行的服务端,提供游戏启动、ROM 搜索、截图、系统查询、设置管理和 VPN 管理等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

👾🦀 MiSTerClaw — MiSTer-FPGA 的 MCP 远程控制

MiSTerClaw 是首个适用于 MiSTer-FPGA 的 MCP 服务。通过任意 AI Agent 控制你的 MiSTer。

版本 Go 许可证 平台 Glama 上的 MiSTerClaw

(徽章建议:感谢 punkpeye。)

v0.8.1 新增了经过验证的原生 ZIP 成员启动功能,以及独立的 GBA2P 配置文件。有关下载和校验和,请参阅发布说明和硬件测试限制、ZIP 成员用法和 GitHub Releases。

这是什么?

MiSTerClaw 让 AI Agent(Claude、ChatGPT、OpenClaw、Hermes、Cursor 等)能够通过网络控制 MiSTer-FPGA。启动游戏、搜索 ROM 库、截取屏幕截图、读取和修改核心设置及 DIP 开关、使用基于 conf_str 的位置计算导航 OSD 菜单(实验性功能,目前对所有核心都不可靠)、查询详细的系统信息、管理系统,甚至设置 Tailscale VPN,以便从任何地方安全地远程访问。软盘核心(PC8801、MSX 等)支持 PostLaunch 自动重置,从而无缝加载游戏。它采用 Model Context Protocol(MCP)标准,因此任何兼容 MCP 的客户端都能开箱即用。对于不支持 MCP 的 Agent,也提供了 CLI 客户端。

街机游戏

街机游戏根据 .mra 描述文件建立索引并直接启动(初步支持:感谢 stt);它们 不会显示为 MAME ZIP 文件夹或单个全系统 RBF。SD 卡和 USB 上支持递归 规范文件夹及 _alternatives。当同一根目录中存在规范描述文件时,会省略生成的 _Organized 视图;仅包含整理后内容的集合仍可作为备用方案使用。相同字节内容的 备用描述文件会去重,而不同变体则会保留。数量表示已建立索引的描述文件/变体数, 而非唯一游戏系列数。缓存架构 v3 会原地升级旧版 v1/v2 街机和 MAME 条目,同时保留 无关的已缓存系统;升级时无需完整重新扫描 ROM。

针对特定位置的 SD 卡重新扫描也会刷新 _Arcade,并合并现有的 SD/USB 街机文件夹,而不是将其替换。位置重新扫描现在会立即返回 status: pending;请轮询 systems.scanning,直到其变为 false。 刷新期间仍可使用现有结果。对于重叠扫描或无效位置的请求会明确失败。MRA 启动会验证文件、 重新创建虚拟输入设备,并在 core_name 中报告描述文件指定的 <rbf>;此响应本身并不能证明 FPGA 已完成加载。

MCP 设置

将 MiSTerClaw 添加到 MCP 客户端配置中:

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "misterclaw": {
      "command": "/path/to/misterclaw-mcp",
      "args": ["--host", "mister-fpga"]
    }
  }
}

Cursor(.cursor/mcp.json):

{
  "mcpServers": {
    "misterclaw": {
      "command": "/path/to/misterclaw-mcp",
      "args": ["--host", "mister-fpga"]
    }
  }
}
MCP 工具
工具描述
mister_status当前正在播放的内容
mister_launch按搜索结果或路径启动游戏
mister_search搜索 ROM 库
mister_systems列出所有可用系统及其 ROM 数量
mister_screenshot截取屏幕(返回 PNG 图像)
mister_info系统信息(主机名、IP、温度、RAM、磁盘、运行时间)
mister_input发送键盘输入(OSD 导航、命名按键)
mister_osd_info从 CONF_STR 数据库查询 OSD 菜单结构
mister_osd_visible根据当前配置仅显示可见的 OSD 菜单项
mister_cfg_read读取核心设置(选项 + DIP 开关)
mister_cfg_write修改核心设置并自动备份
mister_reload重新加载当前核心以应用配置更改
mister_osd_navigate按名称导航到特定 OSD 菜单项
mister_system_info获取系统配置、说明和 OSD 菜单
mister_rescan重新扫描 ROM 库(可指定驱动器)
mister_tailscale管理 Tailscale VPN
mister_shell执行 shell 命令(初始输出处理修复:感谢 stt)

对话示例

配置完成后,直接与 Agent 对话即可:

You: "What games do I have for SNES?"
Agent: You have 13,435 SNES ROMs! Here are some highlights...

You: "Launch Street Fighter 2"
Agent: 🎮 Launched Street Fighter II Turbo on SNES!

You: "Take a screenshot and show me"
Agent: [screenshot of the game running]

You: "What systems do I have?"
Agent: Your MiSTer has 70+ systems! Top ones:
  - SNES: 13,435 ROMs
  - C64: 46,736 ROMs
  - Amiga: 55,793 ROMs
  ...

You: "Set up Tailscale so I can reach the MiSTer from anywhere"
Agent: Installing Tailscale... Done!
       Please authenticate: https://login.tailscale.com/a/xxx
       After that your MiSTer is reachable from anywhere.

You: "What settings does R-Type have?"
Agent: R-Type (M72 core) has these settings:
       Core Options:
         - No Death Mode: Off
         - Service Mode: Off
       DIP Switches:
         - Difficulty: Medium
         - Coin A: 1 Coin / 1 Credit
         - Lives: 3
         - Demo Sounds: On
         - Continue: Yes

You: "Enable No Death Mode"
Agent: ⚙️ Set "No Death Mode" to On in R-Type.
       The core reloads automatically — change is live!

You: "Navigate to the Reset option in the OSD"
Agent: Navigated to Reset in the SNES core OSD.

You: "What do I need to know about the PC8801 system?"
Agent: PC8801 uses the PC8801 core with .d88 floppy disk images.
       Notes: After loading a disk, press F12 → Reset to boot.
       OSD Menu: FDD0, FDD1, Reset, CPU Speed, ...

CLI 客户端

对于可访问 shell 的 Agent(如 OpenClaw、Codex 或 Claude Code),CLI 客户端可能比 MCP 更高效——上下文中无需工具架构,需要时直接调用即可。它也适用于 shell 脚本和自动化。

# Check what's playing
misterclaw-send -H mister-fpga status

# Search for games
misterclaw-send -H mister-fpga search "zelda" --limit 5
misterclaw-send -H mister-fpga search "sonic" --system MegaDrive

# Launch a game
misterclaw-send -H mister-fpga launch "super mario world" --system SNES

# List all systems with ROM counts
misterclaw-send -H mister-fpga systems

# Take a screenshot
misterclaw-send -H mister-fpga screenshot -o game.png

# System info (CPU, memory, storage, uptime)
misterclaw-send -H mister-fpga info

# Run shell commands — configure MiSTer.ini, run updates, manage files
misterclaw-send -H mister-fpga shell "cat /media/fat/MiSTer.ini"
misterclaw-send -H mister-fpga shell "/media/fat/Scripts/update_all.sh"

# Send keyboard input (OSD navigation)
misterclaw-send -H mister-fpga input key osd
misterclaw-send -H mister-fpga input combo leftalt f12

# Query OSD menu structure
misterclaw-send -H mister-fpga osd-info
misterclaw-send -H mister-fpga osd-info --core SNES

# Navigate to a specific OSD menu item
misterclaw-send -H mister-fpga osd-navigate Reset
misterclaw-send -H mister-fpga osd-navigate "Aspect ratio"

# Get detailed system info (config, notes, OSD menu)
misterclaw-send -H mister-fpga system-info PC8801
misterclaw-send -H mister-fpga system-info SNES

# Read core settings (options + DIP switches)
misterclaw-send -H mister-fpga cfg-read

# Modify settings
misterclaw-send -H mister-fpga cfg-write --option "Free Play" --value On

# Reload core to apply changes
misterclaw-send -H mister-fpga reload

# Rescan ROM library (after adding new games)
misterclaw-send -H mister-fpga rescan
misterclaw-send -H mister-fpga rescan --location usb0

# JSON output for scripting
misterclaw-send -H mister-fpga status --json
misterclaw-send -H mister-fpga systems --json

所有命令都支持 --json,可输出机器可读的结果。

安装

共有三个二进制文件:

二进制文件运行位置用途
misterclawMiSTer(ARM7)服务端——在 MiSTer 本机运行
misterclaw-send任意位置用于直接执行命令的 CLI 客户端
misterclaw-mcp你的机器MCP 服务——将 AI Agent 连接到 MiSTer
下载和支持的平台

请从 GitHub Releases 下载可执行文件,而非从源代码仓库下载。发布工作流会构建以下目标:

平台架构下载内容
MiSTerLinux ARMv7misterclaw-linux-arm7 守护进程
Linuxx86-64、ARM64、ARMv7CLI 和 MCP 服务
macOSIntel x86-64、Apple Silicon ARM64CLI 和 MCP 服务
Windowsx86-64CLI 和 MCP 服务(.exe)

Windows 下载从 v0.8.0 开始提供;较早版本可能不包含这些文件。守护进程只能在 MiSTer 上运行,不能在 Windows 或 macOS 上运行。在 Linux/macOS 上,使用 chmod +x <filename> 将下载的客户端设为可执行文件。

在 Windows 上,可在 PowerShell 中使用下载的可执行文件,例如:

.\misterclaw-send-windows-amd64.exe -H mister-fpga status

将 MCP 客户端的 command 指向 misterclaw-mcp-windows-amd64.exe 的绝对路径;JSON 路径中的反斜杠必须转义,例如 C:\\Tools\\misterclaw-mcp-windows-amd64.exe。

发布工作流会构建带标签的版本(初始工作流:感谢 stt)。新的 CI 生成版本包含 SHA256SUMS 和 build-metadata.json,记录源代码提交、编译器版本和目标清单。分支/PR/手动 CI 运行只会生成预览构件。发布要求从 main 历史推送版本标签并通过测试;维护者必须在推送标签前确认发布和许可准备就绪。提交历史包含 main 本身并不能证明已获审查批准。添加 CI 不会创建新版本。

在 MiSTer 上快速安装
scp misterclaw root@<mister-ip>:/media/fat/Scripts/
ssh root@<mister-ip> "/media/fat/Scripts/misterclaw --install"

或者自行安装:将二进制文件复制到 MiSTer,然后运行 misterclaw --install。这会将文件复制到 /media/fat/Scripts/,配置开机自动启动,并且可重复执行。

卸载:/media/fat/Scripts/misterclaw --uninstall

安全

⚠️ 请勿将端口 9900 暴露到互联网。 ClawExec 协议不提供身份验证或加密。

  • Tailscale VPN(推荐)——加密、经过身份验证,可在任何地方使用
  • 仅限本地网络——确保端口 9900 仅在你的局域网内可访问
  • 切勿通过路由器或防火墙转发端口 9900

架构

Agent ←MCP→ misterclaw-mcp ←TCP→ MiSTer:9900 (misterclaw server)
Agent ←CLI→ misterclaw-send ←TCP→ MiSTer:9900 (misterclaw server)

MCP 服务和命令行客户端通过 ClawExec 协议与 MiSTer 通信(通过 TCP 传输以换行符分隔的 JSON,端口为 9900)。

动态系统检测

MiSTerClaw 会扫描 ROM 文件夹、已安装的核心和 MGL 文件,自动检测所有系统。无需配置——设备齐全的 MiSTer 通常包含 70 多个系统。发现结果(包括完整的 ROM 文件列表)会缓存到磁盘。首次启动时会扫描并创建缓存;之后启动时则会立即加载。添加新游戏或驱动器后,请使用 rescan 命令。

从源代码构建

# MiSTer server (ARM7)
GOOS=linux GOARCH=arm GOARM=7 go build -ldflags="-s -w" -o misterclaw ./cmd/misterclaw/

# CLI client
go build -ldflags="-s -w" -o misterclaw-send ./cmd/misterclaw-send/

# MCP server
go build -ldflags="-s -w" -o misterclaw-mcp ./cmd/misterclaw-mcp/

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。