rct2-agent
rct2-agent
Ein MCP-Server + OpenRCT2-Plugin, das einem Agenten erlaubt, deinen Park im Sidecar-Betrieb zu verwalten, während du spielst: den Zustand auslesen, auf das Geschäft einwirken (Preise, Personal, Marketing, Kredite), den Park betrachten (Screenshots) und die Zeit steuern. Nur Verwaltung — der Agent stimmt das Geschäft ab und kann Bauen empfehlen, baut aber nie selbst.
Wie es zusammenhängt
Claude Code (WSL)
│ stdio (MCP)
▼
MCP server ── dist/server.mjs, run by Windows node.exe
│ TCP 127.0.0.1:7860 (newline-delimited JSON)
▼
Plugin (intransient) ── loaded inside OpenRCT2, LISTENS on the port
│
▼
OpenRCT2 gameDer Server läuft unter Windows node.exe (in WSL gibt es kein node), daher liegen Server und Plugin auf demselben Windows-localhost — kein WSL↔Windows-Netzwerk nötig. Das Plugin lauscht (es ist nicht flüchtig, bleibt also beim Laden von Parks aktiv); der Server wählt sich ein und verbindet sich bei Bedarf neu.
Related MCP server: LÖVE2D MCP Server
Voraussetzungen
OpenRCT2 0.5.4+ (QuickJS-Engine — wird für Promises/ES2023 benötigt).
Windows Node.js (hier zu finden:
C:\Program Files\nodejs\node.exe).
Erstellen und Installieren
Aus WSL, mit der Windows-Toolchain:
# helper wrappers (or just call node.exe / npm-cli.js directly)
NODE="/mnt/c/Program Files/nodejs/node.exe"
NPM=("$NODE" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js")
"${NPM[@]}" install
"${NPM[@]}" run build # builds dist/rct2-agent.plugin.js + dist/server.mjs
"${NPM[@]}" run install:plugin # copies the plugin into your OpenRCT2 plugin folderinstall:plugin kopiert nach
C:\Users\casey\OneDrive\Documents\OpenRCT2\plugin\rct2-agent.plugin.js
(überschreibbar mit RCT2_PLUGIN_DIR).
MCP-Server anbinden
Eine gebrauchsfertige Projektkonfiguration liegt in .mcp.json. In Claude Code wird sie aus dem Projektverzeichnis heraus automatisch erkannt (bei Aufforderung bestätigen) oder du fügst sie explizit hinzu:
claude mcp add rct2-agent --scope project \
-- "/mnt/c/Program Files/nodejs/node.exe" \
"C:\\Users\\casey\\OneDrive\\Desktop\\dead code projects\\rct2-agent\\dist\\server.mjs"Ausführen
Starte OpenRCT2 und lade ein Szenario. Bestätige, dass das Plugin geladen wurde — die In-Game-Verfügung zeigt
[rct2-agent] listening on 127.0.0.1:7860.Starte Claude Code in diesem Ordner. Der MCP-Server stellt die Verbindung beim ersten Werkzeug-Aufruf her.
Bitte den Agenten, den Park zu verwalten. Die zentrale Schleife ist: messen → ausrichten → warten → messen: Ausgangswerte lesen, Änderungen vornehmen,
advance_days(7), erneut messen.
Werkzeuge
Lesen (Augen): get_park_summary, get_finance_report, list_rides, get_ride, list_shops, get_guest_overview, sample_guest_thoughts, list_staff, get_scenario
Ausführen (Hände): set_ride_price, set_shop_price, set_park_entry_fee, open_ride, close_ride, set_inspection_interval, start_marketing_campaign, set_research_funding, hire_staff, fire_staff, set_staff_patrol, set_loan
Anzeigen (Vision): capture_view, capture_ride, find_location
Zeit: get_clock, set_game_speed, pause, resume, advance_days
Fehlgeschlagen: snapshot, list_snapshots
Hinweise zum Verhalten
Geld ist an der Werkzeug-Schnittstelle in einfachen Dollar angegeben; intern speichert OpenRCT2 Behältnisse, umgerechnet in
src/shared/protocol.ts(MONEY_FACTOR). Wenn ein Wert um den Faktor 10 abweicht, ist dort genau die eine Stelle, die du prüfen musst.Koordinaten in
capture_view/set_staff_patrol/find_locationwerden in Kacheln angegeben (intern in Karten-Einheiten umgerechnet).advance_dayshebt die Pause auf, läuft mit maximaler Geschwindigkeit und pausiert automatisch, sobald das Zieldatum erreicht ist — gibt dann die neue Uhrzeit zurück. Es blockiert, bis der Vorgang abgeschlossen ist.Die Snapshots werden unter
save/agent/<play>/<label>.parkgespeichert. Das Wiederherstellen erfolgt amanuelle Anleitung manuelles Laden im Spiel — die Plugin-API kann einen Park speichern, aber nicht laden.Schreibzugriffe laufen über Spiel-Aktionen, sodass die eigenen Grenzen des Spiels gelten (z. B. die Preisobergrenze für FRS). Eine abgerieferte Aktion wird als Werkzeug-Fehler zurückgegeben.
Dev
npm run typecheck— tsc, keine Ausgabe.node scripts/smoke.mjs— lädt das gebaute Plugin in ein Spiel mit Stubs und testet die Handler über einen echten Socket.node scripts/mcp-smoke.mjs— startet den gebauten MCP-Server und treibt ihn über echtes MCP-JSON-RPC gegen ein Fake-Plugin.
Layout
src/shared/protocol.ts wire protocol + money conversion + method names
src/plugin/main.ts the intransient in-game plugin (TCP listener + handlers)
src/server/rct-client.ts reconnecting TCP client to the plugin
src/server/index.ts MCP server: tool definitions -> plugin methods
esbuild.mjs builds both bundles
scripts/ install + smoke testsThis server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
- FensoryOAuthcom.fensory
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceBridges a running OpenRCT2 game to AI agents, enabling them to read park state, optimize parks, and build roller coasters.1MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with running games in real time — introspecting game state, simulating keyboard and mouse input to actually play, capturing screenshots, executing Lua code, hot-reloading files, and receiving push notifications when state changes.8MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and streamers to monitor and control Oxygen Not Included gameplay through MCP, including world editing, colony alerts, building orders, navigation, dupe management, and game speed control.MIT
- AlicenseNot gradedqualityAmaintenanceLets AI agents build, run and live-test FiveM servers by sending server and client console commands over RCON and devcon, driving the game window with keyboard, mouse and screenshot automation, and invoking in-game natives, exports and NUI callbacks through a companion bridge resource.79 npm15MIT