Skip to main content
Glama

Tripwire

сделано alibolly

npm CI MCP Registry License: MIT

MCP-сервер, который даёт ИИ-агенту кодирования реальный контроль над Roblox Studio и Roblox Open Cloud, с уровнем тестирования и безопасности, которого нет ни у одного другого Studio MCP.

Tripwire позволяет ассистенту читать, записывать и редактировать модель данных, запускать плейтесты с имитацией ввода, выполнять тесты-как-код без головы в реальном движке, выявлять эксплойты клиентского доверия в игровом коде и вызывать API Open Cloud (DataStores, MessagingService, Memory Stores и другие). Инструменты Studio не требуют API-ключа; инструменты безголовых тестов, ассетов и Open Cloud используют ключ Open Cloud.


Требования

  • MCP-клиент: Claude Code, Codex, Gemini или любой клиент, поддерживающий MCP через stdio.

  • Roblox Studio для инструментов Studio. Они не требуют API-ключа.

  • Node.js, только если вы запускаете сервер через npx. Предварительно собранный бинарник не требует Node.

  • Для безголовых тестов, ассетов и инструментов Open Cloud: опубликованное место и API-ключ Roblox Open Cloud. См. Настройка Open Cloud.

Related MCP server: Roblox Studio Ultimate MCP Server

Быстрый старт

Tripwire предназначен для разработчиков Roblox, которые управляют Studio через ИИ-агента кодирования.

  1. Подключите сервер к вашему MCP-клиенту (одна команда или небольшой конфигурационный блок, см. Установка ниже).

  2. Установите плагин Studio, чтобы инструменты Studio могли получить доступ к Studio (см. шаг плагина в Установке).

  3. Откройте ваше место в Studio, включите Game Settings > Security > Allow HTTP Requests, затем нажмите кнопку панели Tripwire и нажмите Connect в панели. Панель покажет Connected, а Output выведет [Tripwire v...] connected.

  4. Попросите агента выполнить studio_status. Подключённый Studio подтверждает работу моста.

  5. Необязательно: добавьте ключ Open Cloud для безголовых тестов, ассетов и инструментов Open Cloud (см. Настройка Open Cloud).


Установка

Сервер Tripwire — это один бинарник. Самый простой способ запустить его — через npx, который загружает предварительно собранный бинарник для вашей платформы, так что устанавливать Rust-тулчейн не нужно. Предпочитаете ручной бинарник или сборку из исходников? См. Альтернативы в конце этого раздела.

Одна команда:

claude mcp add --transport stdio tripwire -- npx -y tripwire-roblox

Или добавьте в проектный .mcp.json (или ~/.claude.json):

{
  "mcpServers": {
    "tripwire": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "tripwire-roblox"]
    }
  }
}

Добавьте в ~/.codex/config.toml:

[mcp_servers.tripwire]
command = "npx"
args = ["-y", "tripwire-roblox"]

Или: codex mcp add tripwire -- npx -y tripwire-roblox

Добавьте в ~/.gemini/settings.json (или в проектный .gemini/settings.json):

{
  "mcpServers": {
    "tripwire": {
      "command": "npx",
      "args": ["-y", "tripwire-roblox"]
    }
  }
}

Или: gemini mcp add tripwire npx -y tripwire-roblox

Любой клиент, поддерживающий MCP через stdio, может запустить его:

command: npx
args:    ["-y", "tripwire-roblox"]

Предварительно собранный бинарник (без Node). Скачайте архив для вашей платформы со страницы Releases (например, tripwire-server-vX.Y.Z-aarch64-apple-darwin.tar.gz), распакуйте его и укажите в клиенте command на извлечённый tripwire-server с пустыми args.

Сборка из исходников (требуется Rust):

git clone https://github.com/aliboIly/Tripwire.git
cd Tripwire/server
cargo build --release   # produces server/target/release/tripwire-server

Затем укажите в клиенте command на путь к этому бинарнику.

Инструменты Studio обращаются к Studio через небольшой плагин, который опрашивает локальный сервер. Возьмите Tripwire.rbxmx со страницы Releases или соберите его:

cd Tripwire/plugin
npm install
npx rbxtsc
rojo build --output Tripwire.rbxmx
cp Tripwire.rbxmx ~/Documents/Roblox/Plugins/   # macOS; Windows: %LOCALAPPDATA%\Roblox\Plugins

Перезапустите Studio, включите Game Settings > Security > Allow HTTP Requests, затем нажмите кнопку Tripwire на панели инструментов и нажмите Connect в панели. Панель покажет Connected, а Output выведет [Tripwire v...] connected.

Инструментам Studio ключ не нужен. Инструментам Open Cloud — нужен. См. Настройка Open Cloud ниже для полного руководства.


Настройка Open Cloud

Большинству функций Tripwire не нужны учётные данные. Эти инструменты нуждаются в них, потому что они вызывают Roblox Open Cloud: run_luau, безголовые тесты (run_tests, run_test_file, list_tests) и каждый инструмент в разделах Open Cloud ниже (ассеты, публикация, хранилища данных, обмен сообщениями, память, вселенная и серверы, Engine Instance API, модерация, секреты, монетизация, Creator Store, группы, аналитика, платформа и open_cloud_request). Они аутентифицируются с помощью API-ключа Roblox Open Cloud.

Используйте на свой страх и риск. Ключ Open Cloud — это реальные учётные данные с реальной властью над вашим опытом. В зависимости от предоставленных областей он может читать и перезаписывать ваши живые DataStores, публиковать новые версии вашего места, загружать ассеты в ваш аккаунт и отправлять сообщения вашим серверам. Относитесь к нему как к паролю: предоставляйте только те области, которые вы действительно используете, ограничьте его вашим IP, никогда не коммитьте его и отзывайте при утечке. Вы несёте ответственность за то, что делаете с ним. Tripwire не аффилирован с Roblox и не одобрен им.

1. Создайте ключ

  1. Перейдите на create.roblox.com/dashboard/credentials и войдите.

  2. Нажмите Create API Key и назовите его (например, Tripwire).

  3. В разделе Access Permissions добавьте только те API-системы, которые нужны для нужных вам инструментов, и предоставьте каждой операции, которая ей требуется, с областью действия на ваш опыт. Каждая система, предлагаемая панелью управления, имеет инструмент; карта приведена в разделе Разрешения к инструментам ниже. Краткая версия:

    • Luau Execution (write): run_luau и безголовые тесты.

    • universe-places (write): publish_place.

    • Assets (read + write) и Asset Permissions: инструменты ассетов.

    • DataStores и Ordered DataStores: инструменты хранилищ данных.

    • Messaging Service (publish) и Memory Stores: эти инструменты.

    • Universe, Place, Instance, User Restrictions, Secrets, Analytics: инструменты вселенной, серверов, инстансов, модерации, секретов и аналитики.

    • Developer Products, Game Passes, Creator Store: инструменты монетизации и магазина.

    • User/Group/Inventory/Subscription/Notification: инструменты платформы, групп и вовлечённости.

    • Всё остальное (устаревшие и экспериментальные системы): open_cloud_request.

  4. В разделе Security установите Accepted IP Addresses на IP вашей машины или 0.0.0.0/0, чтобы разрешить любой (проще всего для локального использования). При желании установите срок действия.

  5. Нажмите Save & Generate Key и скопируйте строку ключа. Она показывается только один раз.

2. Найдите ID вселенной и места

В командной строке Studio (View, затем Command Bar) выполните:

print("universe", game.GameId, "place", game.PlaceId)

GameId — это ваш ROBLOX_UNIVERSE_ID; PlaceId — ваш ROBLOX_PLACE_ID. Место должно быть опубликовано в Roblox, чтобы Open Cloud мог с ним работать.

3. Передайте Tripwire учётные данные

Создайте .env в корне репозитория. Он игнорируется git, и сервер загружает его автоматически:

ROBLOX_OPEN_CLOUD_KEY=paste_the_key_here
ROBLOX_UNIVERSE_ID=000000
ROBLOX_PLACE_ID=000000
ROBLOX_CREATOR_USER_ID=000000   # only for upload_asset (your user id)

Или поместите те же переменные в блок env вашего MCP-клиента (они имеют приоритет). Переподключите MCP-сервер после изменения любого из них. Каждый инструмент работает, когда ключ предоставляет его область, и возвращает собственную ошибку Roblox, если область отсутствует, так что вы можете добавлять области по мере необходимости.


Инструменты

Подключение

Чтение и проверка

Пространственные (только чтение)

Редактирование (каждый шаг — одна операция отмены)

Плейтест и ввод

Тесты и выполнение без интерфейса (Open Cloud)

Проверка безопасности (статический анализ, без ключа)

Ассеты и публикация (Open Cloud)

Хранилища данных (Open Cloud)

Обмен сообщениями и память (Open Cloud)

Вселенная, место и серверы (Open Cloud)

API экземпляров движка (Open Cloud, Studio не требуется)

Модерация (Open Cloud)

Секреты (Open Cloud)

Монетизация и Creator Store (Open Cloud)

Группы (Open Cloud)

Платформа, вовлечённость и аналитика (Open Cloud)

Всё остальное (Open Cloud)

Разрешения для инструментов

Каждая API-система, которую можно добавить к ключу на Creator Dashboard, и инструменты, которые её используют. Имена областей — те же, что используются в панели управления и сообщениях об ошибках Roblox.

Разрешение (область)

Инструменты

Luau Execution (universe.place.luau-execution-session)

run_luau, run_tests, run_test_file, list_tests

Places (universe-places:write, universe.place)

publish_place, update_place, get_place

Universe (universe:read, universe:write)

update_universe, restart_servers, translate_text, list_game_servers, get_game_server_logs

Instance (universe.place.instance)

cloud_list_instance_children, cloud_get_instance, cloud_update_instance

Data Stores (universe-datastores.control, .objects, .versions)

раздел DataStores: записи, версии, удаление хранилища, снимок

Ordered Data Stores (universe.ordered-data-store.scope.entry)

list/get/set/increment/delete_ordered_entry

Memory Stores (memory-store.sorted-map, .queue, :flush)

инструменты sorted-map и queue, flush_memory_store

Messaging Service (universe-messaging-service:publish)

publish_message

User Restrictions (universe.user-restriction)

list/get/set_user_restriction, list_user_restriction_logs

Secrets (universe.secret)

list/create/update/delete_secret

Assets (asset:read, asset:write)

upload_asset, get_asset, update_asset, list_asset_versions, rollback_asset_version, archive_asset, restore_asset, list_asset_quotas

Asset Permissions (asset-permissions:write)

grant_asset_permissions

Legacy Assets (legacy-asset:manage)

download_asset

Developer Products (developer-product)

list/get/create/update_developer_product

Game Passes (game-pass)

list/get/create/update_game_pass

Creator Store (creator-store-product)

search_creator_store, get_creator_store_asset, get_creator_store_product; создание и обновление через open_cloud_request

Groups (group:read, group:write)

get_group, list_group_memberships, list_group_roles, list_group_join_requests, resolve_group_join_request, set_group_role

Users and Inventory (user.advanced:read, user.social:read, user.inventory-item:read)

get_user, generate_user_thumbnail, list_inventory

Notifications (user.user-notification:write)

send_notification

Subscriptions (universe.subscription-product.subscription:read)

get_subscription

Analytics (universe.analytics:read)

query_analytics

Всё остальное: Ads, Game Events, Thumbnails, Creator Store saves, Legacy Badges, Legacy Develop, Legacy Followings, Legacy Game Internationalization, Legacy Groups, Legacy Localization Tables, Legacy Publish, Legacy Team Collaboration, Legacy Users

open_cloud_request


Что вы можете делать

  • Создавайте сцены по описанию. Создавайте и массово создавайте экземпляры, задавайте типизированные свойства, вставляйте модели и пишите скрипты — каждый как чистый шаг отмены.

  • Тестируйте геймплей в CI. Пишите спецификации, запускайте их в headless-режиме в реальном движке через Open Cloud и блокируйте pull request'ы по результатам.

  • Ловите эксплойты до релиза. Ревьюер безопасности помечает серверные обработчики, которые доверяют клиентскому вводу, и предлагает исправление на стороне сервера; та же проверка автоматически запускается на каждом PR.

  • Управляйте настоящим плейтестом. Войдите в режим Play, отправляйте ввод с клавиатуры и мыши, доведите персонажа до нужного места, прочитайте объединённый вывод сервера/клиента, затем остановите.

  • Инспектируйте живое место. Читайте дерево экземпляров, ищите по имени или свойству, читайте и грепайте скрипты, получайте журнал Output.

  • Автоматизируйте Open Cloud. Заполняйте DataStores тестовыми данными, публикуйте место, рассылайте сообщения в топик MessagingService или ищите пользователей, группы и инвентарь.


Известные ограничения

Это ограничения платформы, а не баги. Они записаны здесь, чтобы вы знали заранее.

  • Остановка плейтеста через F5 — best-effort. stop_playtest может не сработать, потому что плагин и запущенная игра — это отдельные DataModels. stop_simulation (F8) останавливает чисто. Если плейтест через F5 не останавливается, нажмите Stop в Studio.

  • Действия во время игры проходят через внедрённый раннер. Ввод, состояние выполнения и остановка во время плейтеста передаются через мост, а не вызываются напрямую в плагине.

  • Headless-тесты выполняются в серверном контексте. Open Cloud запускает ваше опубликованное место на сервере, где RunService:IsStudio() возвращает false, а API плагинов отсутствуют. Используйте его для серверной и игровой логики и тестов безопасности, а не для поведения плагинов Studio или клиентского ввода.

  • Паритет инструментов со встроенным Assistant от Roblox поддерживается вручную.

  • Некоторые системы Open Cloud находятся в статусе бета или экспериментальных на стороне Roblox (Instance API, ограничения пользователей, секреты, игровые серверы, аналитика и всё, что стоит за open_cloud_request). Их формы могут меняться, и open_cloud_request возвращает сырой ответ, а не приведённый в порядок.

Tripwire поддерживается одним человеком в свободное время. Issues и pull request'ы обычно получают ответ в течение примерно недели. Медленный ответ — не значит отказ.


Устранение неполадок

Инструменты Studio зависают по таймауту или сообщают, что Studio не подключено. Плагин не подключён. Установите Tripwire.rbxmx, перезапустите Studio, нажмите кнопку Tripwire на панели инструментов и нажмите Connect в панели. Статус панели и строка в Output [Tripwire v...] connected подтверждают это.

Плагин сообщает, что HTTP заблокирован. Включите Game Settings > Security > Allow HTTP Requests для открытого места. Это самая частая ошибка настройки. Без этого Studio не может достучаться до локального моста.

В Output отображается несоответствие версий плагина и сервера. Установленный .rbxmx устарел. Пересоберите его (npx rbxtsc && rojo build --output Tripwire.rbxmx), скопируйте в папку Plugins и перезапустите Studio. Плагин выводит свою скомпилированную версию, так что префикс показывает, что реально установлено; заголовок панели показывает ту же версию.

Инструмент Open Cloud возвращает 401 Invalid API Key. Сам ключ не принимается: он был перегенерирован, истёк или вставлен не полностью. Все инструменты падают одинаково. Создайте или скопируйте ключ заново в Creator Dashboard, замените ROBLOX_OPEN_CLOUD_KEY и переподключите MCP-сервер.

Инструмент Open Cloud возвращает ошибку 403 или ошибку области (scope). Ключу не хватает области, необходимой инструменту, universe или place id указан неверно, или место не опубликовано. Добавьте область в Creator Dashboard (описание инструмента называет её), проверьте id и переподключите MCP-сервер. Текст ошибки принадлежит Roblox, поэтому в нём указано, чего не хватает.

run_tests не видит ваши последние изменения. Он читает опубликованное место. Сначала опубликуйте; rojo serve обновляет только живую сессию редактирования, а не то, что запускает Open Cloud.

npx не может загрузить сервер. У вас нет Node.js или нет сети для первой загрузки. Установите Node или используйте готовый бинарник со страницы Releases и укажите на него command (см. Alternatives в разделе Install).

Сервер сообщает, что порт моста занят. Предыдущий сервер всё ещё удерживает порт 44331. Закройте старую MCP-сессию или устаревший процесс, затем переподключитесь.


Предшествующие работы

Подход к рантайму Studio (плагин, который использует long-polling к локальному серверу, внедрённый раннер для игры) следует идеям из boshyxd/robloxstudio-mcp и Chrrxs/robloxstudio-mcp. Tripwire — независимая реализация с нуля; headless-тестовый харнесс, CI-ревьюер безопасности и инструменты Open Cloud — её собственные.


Участие

Отчёты об ошибках, идеи функций и патчи приветствуются. См. CONTRIBUTING.md о настройке, гейтах сборки и правилах веток и коммитов, а ARCHITECTURE.md — о том, как части соединяются. Участвуя, вы соглашаетесь с Code of Conduct.

Нашли проблему безопасности? Не открывайте публичный issue. См. SECURITY.md о приватном пути раскрытия.

Журнал изменений

Примечания к выпуску для каждой версии находятся на странице Releases.


Лицензия

MIT. См. LICENSE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

0dRelease cycle
5Releases (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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An agentic MCP server for Roblox Studio that provides over 45 tools for script diffing, playtest automation, and bulk instance manipulation. It enables AI agents to manage full development cycles within Roblox, including transaction-safe batch operations and real-time script reviews.
    2
    1
    MIT

View all related MCP servers

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/aliboIly/Tripwire'

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