Skip to main content
Glama
szyzgz
by szyzgz

PIXEL FLIPPERS 🦭

Ein MCP-Server, der Claude Hände, Augen und ein Tagebuch für Pokémon gibt – damit ein Claude in der Claude-Desktop-App (oder einem beliebigen MCP-Client) ein Game-Boy-/Game-Boy-Advance-Spiel oder sogar eine echte Nintendo Switch spielen kann, während du zuschaust.

┌──────────────┐   MCP (stdio)   ┌──────────────────┐        ┌─────────────┐
│ Claude       │ ──────────────► │ PIXEL FLIPPERS    │ ─────► │ Emulator    │ ← you watch this
│ Desktop app  │  press_buttons  │  server           │        └─────────────┘
│              │  read_game_state│                   │ ─────► ┌─────────────┐
└──────────────┘  write_note ... │                   │        │ Obsidian    │ ← ...and this
                                 └──────────────────┘         │ vault (.md) │
                                                              └─────────────┘

Warum es so aufgebaut ist:

  • Die Sandbox spielt keine Rolle. Claude kann keinen Emulator ausführen, aber es kann Tools aufrufen. Der Emulator läuft auf deinem Rechner; Claude spielt über MCP.

  • RAM-Zustand statt Screenshots. Auf der Game-Boy-Ebene werden Position, Team, KP, Geld, Orden und Kampfzustand direkt aus dem Pokémon-Rot/Blau-WRAM in ein paar Hundert Text-Token dekodiert. Screenshots gibt es zwar, sind aber rationiert – sie sind teuer und sie beschleunigen die Kontext-Kompaktierung.

  • Die Kompaktierung ist die unzuverlässige Erzählerin; der Vault ist die Quelle der Wahrheit. Lange Chats werden automatisch kompaktiert (verlustbehaftet!). Die Tagebuch-Werkzeuge schreiben einfaches Markdown in einen Ordner – richte Obsidian darauf aus, und Claudes Notizen überleben alles, während du zusiehst, wie ein Tagebuch live geschrieben wird.

  • Speicherstände machen Mut günstig. Benannte Schnappschüsse vor jeder Arena.

Are you in the game?

Erforderlich sind Python 3.12 und uv.

git clone https://github.com/szyzgz/pixel-flippers && cd pixel-flippers
uv sync --extra emulator --extra dev
uv run pytest          # everything should pass, no ROM needed

Füge dann Folgendes zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu (macOS; passe den Pfad für dein Betriebssystem an):

{
  "mcpServers": {
    "pixel-flippers": {
      "command": "uv",
      "args": ["run", "--directory", "/ABSOLUTE/PATH/TO/pixel-flippers", "--extra", "emulator", "pixel-flippers"],
      "env": {
        "PIXEL_FLIPPERS_ROM": "/path/to/your/pokemon-red.gb",
        "PIXEL_FLIPPERS_VAULT": "/path/to/YourObsidianVault/Pokemon",
        "PIXEL_FLIPPERS_SAVES": "/path/to/somewhere/saves"
      }
    }
  }
}

Starte Claude Desktop neu. Beim Neustart gehen Unterhaltungen nicht verloren – öffne einen bestehenden Chat wieder, und die Tools sind einfach da. Das Emulator-Fenster öffnet sich auf deinem Bildschirm; platziere es neben Obsidian (mit dem zuvor geöffneten Vault) und genieße die Show. Dann füge prompts/play-guide-gb.md in den Chat ein, um die Steuerung zu übergeben.

macOS-Tipp: Bewahre ROM, Vault und Speicherstände außerhalb von ~/Documents, ~/Desktop und ~/Downloads auf – macOS blockiert den Zugriff der Unterprozesse von Claude Desktop auf diese Ordner, es sei denn, du erteilst ihn.

Konfigurations-Referenz (Umgebungsvariablen)

Variable

Standard

Bedeutung

PIXEL_FLIPPERS_BACKEND

pyboy

pyboy (GB/GBC), gba (Game Boy Advance), switch (echte Hardware), mock

PIXEL_FLIPPERS_ROM

– (für pyboy/gba erforderlich)

Pfad zu deinem eigenen ROM-Dump (.gb/.gbc oder .gba)

PIXEL_FLIPPERS_VAULT

nicht gesetzt

Ordner für Markdown-Notizen (innerhalb eines Obsidian-Vaults anlegen)

PIXEL_FLIPPERS_SAVES

<rom dir>/saves

Verzeichnis für die Speicherstände

PIXEL_FLIPPERS_GAME

pokemon_red

RAM-Dekoder; none deaktiviert ihn (nur Screenshots – Hard-Modus!)

PIXEL_FLIPPERS_WINDOW

SDL2

null für Headless / kein Fenster

PIXEL_FLIPPERS_SCALE

3

Skalierungsfaktor des Fensters

PIXEL_FLIPPERS_SPEED

1

Emulationsgeschwindigkeit (0 = unbegrenzt)

PIXEL_FLIPPERS_MOCK

aus

Simulierter Emulator; kein ROM/PyBoy nötig – für Tests- und Verbindungsprüfungen

GBA-Spiele (Pokémon Emerald & Co.)

Wenn Sie über jeden .gba-ROM mit diesem, um das in stable-retro gebündelte mGBA Core läuft – ohne separate Emulator-Installation:

uv sync --extra gba

Setze PIXEL_FLIPPERS_BACKEND=gba und verweise PIXEL_FLIPPERS_ROM auf deine .gba-Datei. Ein Zuschauer-Fenster zeigt das Spiel, während Claude spielt. Diese Stufe ist vorerst rein visuell (die Generation 3 ist verschlüsselt und nur über Pointer-Schnüffelung erschlossen – ein vollständiger Dekoder ist Zukunftsmusik), aber die den Speicherstände funktionieren, also bleiben riskante Kämpfe günstig. Übergib die Steuerung mit prompts/play-guide-gba.md.

Ohne ROM ausprobieren

Setze PIXEL_FLIPPERS_MOCK=1 (und lasse --extra emulator weg): Alle Tools funktionieren gegen einen simulierten Game Boy mit einem plausiblen Pokémon-Rot-Zustand. Gut geeignet, um die Claude-Desktop-Verbindung Ende-zu-Ende zu überprüfen, bevor die erste ROM-Nacht beginnt.

Tools

Tool

Beschreibung

press_buttons

Hände – Abfolge von up/down/A/B/Start/Select (auf GBA zusätzlich)

read_game_state

Günstiger Textbericht direct aus der, mit WRAM dekodiert (Standort, Team, KP, Geld, Orden, Beutel, Kampf)

get_screenshot

Augen – ein 2× hochskaliertes PNG, sparsam einsetzen

wait

N Frames verstreichen lassen (Dialoge, Animationen)

save_state / load_state / list_states

Benannte vollständige Spiel-Snapshots

write_note / append_note / read_note / list_notes / search_notes

Das Tagebuch – Markdown im Vault

read_last_session

Aufwach-Ritual: Status + Ziele + letztes Journal + aktueller Zustand, zur Orientierung nach Kompaktierung

set_goal / complete_goal / current_goals

Persistente Ziel-Checkliste (eine Goals.md-Notiz)

read_memory

Der rohe Hex-Blick auf eine beliebige Adresse, für Neugierige

freeze / resume / move_stick

Nur eigene Hardware – Pausen-Puffern im »Bullet-Time«-Stil und der analoge Stick

Die Tools werden nach den Möglichkeiten des jeweiligen Backends registriert, sodass Claude nur das sieht, was die aktuelle Ebene wirklich kann.

Kampfberichte markieren ✨ Retro-Shiny-Begegnungen (Gen 1 hat keine, aber DVs entscheiden über Shiny-Gen 2 – das Testdoppelt prüft die Übertragungsregel) und enthalten zusätzlich die aktuelle Musik-Track-ID für die passende Untermalung.

Zudem werden Tastendrücke und Speichern/Laden automatisch in Journal/Log <date>.md im Vault protokolliert – ein vollständiges Spiel-Protokoll, das du in Obsidian durchscrollen kannst.

Fuhrplan

*Red/Blue (PyBoy, Volles RAM-Dekodierung) → Emerald (GBA, nur visuell) → Crystal (PyBoy, echtes Shiny + Creaturas) → HeartGold/SoulSilver (DS-Stufe – stable-retro bündelt auch einem melonDS-Kern) → Ultra Sun/Ultra Moon (3DS von Azhar

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.

  • Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/szyzgz/pixel-flippers'

If you have feedback or need assistance with the MCP directory API, please join our Discord server