rct2-agent
rct2-agent
MCP-сервер и плагин OpenRCT2, который позволяет агенту sidecar-управлять вашим парком, пока вы играете: читать состояние, влиять на бизнес (цены, персонал, маркетинг, кредиты), видеть парк (скриншоты) и управлять временем. Только управление — агент настраивает бизнес и может рекомендовать строительство, но никогда не строит.
Как это устроено
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 gameСервер работает под Windows-node.exe (в WSL node нет), поэтому и сервер, и плагин находятся на одном Windows localhost — никакой сети WSL↔Windows не задействуется. Плагин слушает порт (он долгоживущий, поэтому остаётся активным между загрузками парков); сервер подключается и переподключается по мере необходимости.
Related MCP server: Roblox Executor MCP
Требования
OpenRCT2 0.5.4+ (движок QuickJS — нужен для Promises/ES2023).
Windows Node.js (здесь он находится по пути
C:\Program Files\nodejs\node.exe).
Сборка и установка
Из WSL, используя Windows-тулчейн:
# 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 копирует плагин по пути
C:\Users\casey\OneDrive\Documents\OpenRCT2\plugin\rct2-agent.plugin.js
(путь переопределяется через RCT2_PLUGIN_DIR).
Подключаем MCP-сервер
Готовый конфиг проекта находится в .mcp.json. В Claude Code при запуске из каталога проекта он будет подхвачен автоматически (подтвердите при запросе), либо добавьте его вручную:
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"Запуск
Запустите OpenRCT2: и загрузите сценарий. Проверьте, что плагин загрузился — внутриигровая консоль покажет
[rct2-agent] listening on 127:0.0.1:7860.Запустите Claude Code в этой папке. MCP-сервер подключится при первом вызове инструмента.
Попросите агента управлять парком. Основной цикл — замер → действие → ожидание → замер: считать базовые показатели, внести изменения, вызвать
advance_days(7), замерить заново.
Инструменты
Чтение (глаза): get_park_summary, get_finance_report, list_rides,
get_ride, list_shops, get_guest_overview, sample_guest_thoughts,
list_staff, get_scenario
Действия (руки): 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
Смотреть (зрение): capture_view, capture_ride, find_location
Время: get_clock, set_game_speed, pause, resume, advance_days
Сохранение: snapshot, list_snapshots
Замечания о поведении
Деньги на границе инструментов передаются в обычных долларах; внутри OpenRCT2 хранит десятые, преобразование выполняется в
src/shared/protocol.ts(MONEY_FACTOR). Если значение отличается в 10 раз — это единственное место, которое стоит проверить.Координаты в
capture_view/set_staff_patrol/find_locationзадаются в тайлах (внутри преобразуются в единицы карты).advance_daysснимает паузу, запускает на максимальной скорости и автоматически ставит паузу, когда целевая дата достигнута — а затем возвращает новое время. Он блокирует выполнение, пока не закончит.Снапшоты сохраняются в
save/agent/<play>/<label>.park. Восстановление — это ручная загрузка в игре: API плагина умеет сохранять, но не загружать парк.Изменения проходят через игровые действия: поэтому действуют собственные ограничения игры (например, максимальная цена аттракциона). Отклонённое действие возвращается как ошибка инструмента.
Разработка
npm run typecheck— tsc, без генерации кода.node scripts/smoke.mjs— загружает собранный плагин в заглушку игры и прогоняет обработчики через реальный сокет.node scripts/mcp-smoke.mjs— запускает собранный MCP-сервер и управляет им с помощью реального MCP JSON-RPC против фейкового плагина.
Структура
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceBridges a running OpenRCT2 game to AI agents, enabling them to read park state, optimize parks, and build roller coasters.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with a running Roblox game client to execute Lua code, inspect scripts, spy on remotes, and more.143216MIT
- AlicenseAqualityBmaintenanceEnables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with a running Roblox game client through an MCP interface.8221431MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to validate and run Minecraft commands, read chat and tellraw messages, control player movement and GUI, and capture screenshots from within the game, aiding datapack debugging.1MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Machine-readable utilities and datasets for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/caseyjohnsonwv/rct2-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server