mcpField
M
MiSTerClaw

MiSTerClaw

ローカル
github.com/catalloゲーム・エンタメ92 週間前に更新

MiSTerClaw について

MiSTerClawは、ネットワーク経由でMiSTer-FPGAを操作するMCPサーバーです。AIエージェントやコマンドラインから利用でき、ゲーム検索と起動、コア設定の読み書き、スクリーンショットやシステム情報の取得、ROMシステムの自動検出に対応します。

主な機能

  1. 01ROMとアーケードゲームの検索・起動
  2. 02スクリーンショットとシステム情報の取得
  3. 03コア設定とDIPスイッチの読み書き
  4. 04利用可能なシステムのスキャンと検出
  5. 05Tailscale VPNの管理
  6. 06コマンドラインクライアントの利用

活用シーン

  1. 01エージェントからゲームを検索して起動
  2. 02実行中のゲームのスクリーンショットを確認
  3. 03コア設定を変更して再読み込み
  4. 04MiSTer-FPGAへのリモートアクセス

MCP 対応

MCPサーバーはTCP経由でクライアントをMiSTer上のサーバーに接続し、ゲーム起動、ROM検索、スクリーンショット、システム情報の照会、設定管理、VPN管理のツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

👾🦀 MiSTerClaw — MiSTer-FPGA用MCPリモートコントロール

MiSTerClawは、MiSTer-FPGA向けの初めてのMCPサーバーです。あらゆるAIエージェントからMiSTerを操作できます。

バージョン Go ライセンス プラットフォーム GlamaのMiSTerClaw

(バッジの提案:ありがとうございます、punkpeye。)

v0.8.1では、検証済みのネイティブZIPメンバー起動機能と、独立したGBA2Pプロファイルが追加されました。ダウンロードとチェックサムについては、リリースノートとハードウェアテストの制限、ZIPメンバーの使用方法、およびGitHub Releasesをご覧ください。

これは何ですか?

MiSTerClawを使うと、Claude、ChatGPT、OpenClaw、Hermes、CursorなどのAIエージェントから、ネットワーク経由でMiSTer-FPGAを操作できます。ゲームの起動、ROMライブラリの検索、スクリーンショットの撮影、コア設定やDIPスイッチの読み取りと変更、conf_strベースの位置計算によるOSDメニューの操作(実験的な機能で、すべてのコアで安定して動作するわけではありません)、詳細なシステム情報の照会、システムの管理ができるほか、どこからでも安全にリモートアクセスできるようTailscale VPNを設定することもできます。フロッピーディスクコア(PC8801、MSXなど)は、ゲームをシームレスに読み込むためのPostLaunch自動リセットに対応しています。Model Context Protocol (MCP)標準を使用しているため、MCP対応クライアントならすぐに利用できます。MCPに対応していないエージェント向けに、CLIクライアントも含まれています。

アーケードゲーム

アーケードゲームは.mra記述子からインデックス化され、直接起動できます(初期対応にご協力いただいたsttに感謝します)。MAME ZIPフォルダーやシステム全体で単一のRBFとしては扱われません。SDとUSBでは、再帰的な正規フォルダーおよび_alternativesに対応しています。同じルートに正規の記述子がある場合、生成された_Organizedビューは除外されます。_Organizedのみのコレクションはフォールバックとして引き続き使用できます。バイト単位で同一のフォールバック記述子は重複排除されますが、異なるバリアントは保持されます。件数は、ユニークなゲームシリーズではなく、インデックス化された記述子/バリアントを示します。キャッシュスキーマv3では、無関係なキャッシュ済みシステムを保持したまま、古いv1/v2のアーケードおよびMAMEエントリーをその場でアップグレードします。アップグレード時にROM全体を再スキャンする必要はありません。

場所を指定したSDの再スキャンでは、_Arcadeも更新されます。また、既存のSD/USBアーケードフォルダーは置き換えずに統合されます。場所を指定した再スキャンは、すぐにstatus: pendingを返すようになりました。systems.scanningがfalseになるまでポーリングしてください。更新中も既存の結果は引き続き利用できます。重複するスキャン要求や無効な場所は、明示的に失敗します。MRAの起動時にはファイルを検証し、仮想入力デバイスを再作成して、記述子で要求された<rbf>をcore_nameで返します。この応答だけでは、FPGAの読み込み完了は確認できません。

MCPのセットアップ

MCPクライアントの設定にMiSTerClawを追加します。

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_searchROM ライブラリを検索します
mister_systemsROM 数とともに、利用可能なシステムをすべて一覧表示します
mister_screenshotスクリーンショットを撮影します(PNG 画像を返します)
mister_infoシステム情報を表示します(ホスト名、IP、温度、RAM、ディスク、稼働時間)
mister_inputキーボード入力を送信します(OSD の操作、名前付きキー)
mister_osd_infoCONF_STR データベースから OSD メニュー構造を照会します
mister_osd_visible現在の設定に基づき、表示されている OSD メニュー項目のみを表示します
mister_cfg_readコア設定を読み取ります(オプションと DIP スイッチ)
mister_cfg_write自動バックアップ付きでコア設定を変更します
mister_reload設定変更を適用するため、現在のコアを再読み込みします
mister_osd_navigate名前を指定して、特定の OSD メニュー項目に移動します
mister_system_infoシステムの設定、メモ、OSD メニューを取得します
mister_rescanROM ライブラリを再スキャンします(特定のドライブを指定することもできます)
mister_tailscaleTailscale VPN を管理します
mister_shellシェルコマンドを実行します(初期の出力処理の修正に感謝します:stt)

会話例

設定が完了したら、エージェントに話しかけるだけです。

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 クライアント

OpenClaw、Codex、Claude Code など、シェルアクセスが可能なエージェントには、MCP より CLI クライアントのほうが効率的な場合があります。コンテキストにツールスキーマを含める必要がなく、必要なときに呼び出すだけです。シェルスクリプトや自動化にも便利です。

# 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 に対応しています。

インストール

バイナリは 3 種類あります。

バイナリ実行環境用途
misterclawMiSTer(ARM7)サーバー — MiSTer 本体で実行します
misterclaw-sendどこでもコマンドを直接実行する CLI クライアント
misterclaw-mcpお使いのマシンMCP サーバー — AI エージェントと 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 へのアクセスを LAN 内に限定してください
  • ポート 9900 をルーターやファイアウォール経由で転送することは絶対にしないでください

アーキテクチャ

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

MCP サーバーと CLI クライアントは、ClawExec プロトコル(TCP 経由の改行区切り JSON、ポート 9900)を使って MiSTer と通信します。

システムの動的検出

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。