Skip to main content
Glama

Tripwire

alibolly 제작

npm CI MCP Registry License: MIT

AI 코딩 에이전트에게 Roblox Studio와 Roblox Open Cloud에 대한 실제 제어 권한을 부여하는 MCP 서버로, 다른 Studio MCP에는 없는 테스트 및 보안 계층을 제공합니다.

Tripwire를 사용하면 어시스턴트가 데이터 모델을 읽고, 쓰고, 편집하고, 시뮬레이션된 입력으로 플레이테스트를 실행하고, 실제 엔진에서 헤드리스로 코드 형태의 테스트를 실행하고, 게임 코드의 클라이언트 신뢰 취약점을 표시하고, Open Cloud API(DataStores, MessagingService, Memory Stores 등)를 호출할 수 있습니다. Studio 도구에는 API 키가 필요 없으며, 헤드리스 테스트, 에셋, Open Cloud 도구는 Open Cloud 키를 사용합니다.


요구 사항

  • MCP 클라이언트: Claude Code, Codex, Gemini, 또는 stdio를 통해 MCP를 지원하는 모든 클라이언트.

  • Studio 도구용 Roblox Studio. API 키가 필요 없습니다.

  • Node.js: npx로 서버를 실행하는 경우에만 필요합니다. 사전 빌드된 바이너리는 Node가 필요 없습니다.

  • 헤드리스 테스트, 에셋, Open Cloud 도구: 게시된 장소와 Roblox Open Cloud API 키. Open Cloud 설정 참조.

Related MCP server: Roblox Studio Ultimate MCP Server

빠른 시작

Tripwire는 AI 코딩 에이전트를 통해 Studio를 제어하는 Roblox 개발자를 위한 것입니다.

  1. MCP 클라이언트에 서버를 연결합니다(명령 하나 또는 작은 구성 블록, 아래 설치 참조).

  2. Studio 도구가 Studio에 도달할 수 있도록 Studio 플러그인을 설치합니다(설치의 플러그인 단계 참조).

  3. Studio에서 장소를 열고, 게임 설정 > 보안 > HTTP 요청 허용을 켠 다음, Tripwire 도구 모음 버튼을 클릭하고 패널에서 연결을 누릅니다. 패널에 연결됨이 표시되고 출력에 [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

stdio를 통해 MCP를 지원하는 모든 클라이언트에서 실행할 수 있습니다:

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

사전 빌드된 바이너리(Node 불필요). 릴리스 페이지에서 플랫폼용 아카이브를 다운로드하고(예: 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를 가져오거나 직접 빌드하세요:

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

Studio를 다시 시작하고, 게임 설정 > 보안 > HTTP 요청 허용을 활성화한 다음, Tripwire 도구 모음 버튼을 클릭하고 패널에서 연결을 누릅니다. 패널에 연결됨이 표시되고 출력에 [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). 이들은 Roblox Open Cloud API 키로 인증합니다.

사용에 따른 책임은 본인에게 있습니다. Open Cloud 키는 실제 자격 증명으로, 경험에 대한 실질적인 권한을 가집니다. 부여한 범위에 따라 라이브 DataStores를 읽고 덮어쓸 수 있고, 장소의 새 버전을 게시하고, 계정에 에셋을 업로드하고, 서버에 메시지를 보낼 수 있습니다. 비밀번호처럼 취급하세요: 실제로 사용하는 범위만 부여하고, 자신의 IP로 제한하고, 절대 커밋하지 말고, 유출되면 폐기하세요. 이 키로 수행하는 작업에 대한 책임은 사용자에게 있습니다. Tripwire는 Roblox와 제휴하거나 보증하지 않습니다.

1. 키 생성

  1. create.roblox.com/dashboard/credentials로 이동하여 로그인합니다.

  2. API 키 생성을 클릭하고 이름을 지정합니다(예: Tripwire).

  3. 액세스 권한에서 사용하려는 도구에 해당하는 API 시스템만 추가하고, 각 시스템에 필요한 작업을 경험 범위로 부여합니다. 대시보드에서 제공하는 모든 시스템에는 도구가 있으며, 매핑은 아래 권한-도구 매핑에 있습니다. 간단히 말하면:

    • Luau 실행(쓰기): run_luau 및 헤드리스 테스트.

    • universe-places(쓰기): publish_place.

    • 에셋(읽기 + 쓰기) 및 에셋 권한: 에셋 도구.

    • DataStoresOrdered DataStores: 데이터 저장소 도구.

    • Messaging Service(게시) 및 Memory Stores: 해당 도구.

    • Universe, Place, Instance, User Restrictions, Secrets, Analytics: 유니버스, 서버, 인스턴스, 중재, 비밀, 분석 도구.

    • Developer Products, Game Passes, Creator Store: 수익화 및 스토어 도구.

    • User/Group/Inventory/Subscription/Notification: 플랫폼, 그룹, 참여 도구.

    • 기타 모든 것(레거시 및 실험 시스템): open_cloud_request.

  4. 보안에서 허용 IP 주소를 사용자 머신의 IP로 설정하거나 0.0.0.0/0으로 설정하여 모든 IP를 허용합니다(로컬 사용에 가장 간단). 원하면 만료일을 설정합니다.

  5. 저장 및 키 생성을 클릭하고 키 문자열을 복사합니다. 한 번만 표시됩니다.

2. 유니버스 및 장소 ID 찾기

Studio 명령 모음(보기, 그런 다음 명령 모음)에서 다음을 실행합니다:

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

GameIdROBLOX_UNIVERSE_ID이고, PlaceIdROBLOX_PLACE_ID입니다. Open Cloud가 작동하려면 장소가 Roblox에 게시되어 있어야 합니다.

3. Tripwire에 자격 증명 제공

저장소 루트에 .env를 만듭니다. gitignore되어 있으며 서버가 자동으로 로드합니다:

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)

또는 동일한 변수를 MCP 클라이언트의 env 블록에 넣을 수 있습니다(우선 적용). 변경 후 MCP 서버를 다시 연결하세요. 각 도구는 키가 해당 범위를 부여할 때 작동하며, 범위가 없으면 Roblox 자체 오류를 반환하므로 필요에 따라 범위를 추가할 수 있습니다.


도구

연결

읽기 및 검사

공간(읽기 전용)

편집(각각 하나의 실행 취소 단계)

플레이테스트 및 입력

테스트 및 헤드리스 실행 (Open Cloud)

보안 검토 (정적 분석, 키 불필요)

에셋 및 게시 (Open Cloud)

DataStores (Open Cloud)

메시징 및 메모리 (Open Cloud)

유니버스, 장소 및 서버 (Open Cloud)

엔진 인스턴스 API (Open Cloud, Studio 불필요)

중재 (Open Cloud)

비밀 (Open Cloud)

수익화 및 크리에이터 스토어 (Open Cloud)

그룹 (Open Cloud)

플랫폼, 참여 및 분석 (Open Cloud)

그 외의 모든 것 (Open Cloud)

도구에 대한 권한

Creator Dashboard에서 키에 추가할 수 있는 모든 API 시스템과 이를 사용하는 도구입니다. 범위 이름은 대시보드와 Roblox의 오류 메시지에서 사용하는 이름입니다.

권한(범위)

도구

Luau 실행 (universe.place.luau-execution-session)

run_luau, run_tests, run_test_file, list_tests

플레이스 (universe-places:write, universe.place)

publish_place, update_place, get_place

유니버스 (universe:read, universe:write)

update_universe, restart_servers, translate_text, list_game_servers, get_game_server_logs

인스턴스 (universe.place.instance)

cloud_list_instance_children, cloud_get_instance, cloud_update_instance

데이터 저장소 (universe-datastores.control, .objects, .versions)

DataStores 섹션: 항목, 개정, 저장소 삭제, 스냅샷

정렬된 데이터 저장소 (universe.ordered-data-store.scope.entry)

list/get/set/increment/delete_ordered_entry

메모리 저장소 (memory-store.sorted-map, .queue, :flush)

sorted-map 및 큐 도구, flush_memory_store

메시징 서비스 (universe-messaging-service:publish)

publish_message

사용자 제한 (universe.user-restriction)

list/get/set_user_restriction, list_user_restriction_logs

시크릿 (universe.secret)

list/create/update/delete_secret

에셋 (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:write)

grant_asset_permissions

레거시 에셋 (legacy-asset:manage)

download_asset

개발자 제품 (developer-product)

list/get/create/update_developer_product

게임 패스 (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를 통해

그룹 (group:read, group:write)

get_group, list_group_memberships, list_group_roles, list_group_join_requests, resolve_group_join_request, set_group_role

사용자 및 인벤토리 (user.advanced:read, user.social:read, user.inventory-item:read)

get_user, generate_user_thumbnail, list_inventory

알림 (user.user-notification:write)

send_notification

구독 (universe.subscription-product.subscription:read)

get_subscription

분석 (universe.analytics:read)

query_analytics

그 외의 모든 것: 광고, 게임 이벤트, 썸네일, Creator Store 저장, 레거시 배지, 레거시 개발, 레거시 팔로잉, 레거시 게임 국제화, 레거시 그룹, 레거시 지역화 테이블, 레거시 게시, 레거시 팀 협업, 레거시 사용자

open_cloud_request


할 수 있는 일

  • 프롬프트로 장면을 만듭니다. 인스턴스를 생성하고 대량 생성하며, 유형화된 속성을 설정하고, 모델을 삽입하고, 스크립트를 작성할 수 있습니다. 각각은 하나의 깔끔한 실행 취소 단계로 기록됩니다.

  • CI에서 게임플레이를 테스트합니다. 스펙을 작성하고, Open Cloud를 통해 실제 엔진에서 헤드리스로 실행한 다음, 결과에 따라 풀 리퀘스트를 승인하거나 거부합니다.

  • 출시 전에 익스플로잇을 잡아냅니다. 보안 리뷰어가 클라이언트 입력을 신뢰하는 서버 핸들러를 표시하고 서버 측 수정을 제안합니다. 동일한 검사가 모든 PR에서 자동으로 실행됩니다.

  • 실제 플레이테스트를 실행합니다. Play 모드에 들어가 키보드와 마우스 입력을 보내고, 캐릭터를 특정 지점까지 이동시키고, 결합된 서버/클라이언트 출력을 읽은 다음 중지합니다.

  • 실행 중인 place를 검사합니다. 인스턴스 트리를 읽고, 이름이나 속성으로 검색하고, 스크립트를 읽고 grep하며, Output 로그를 가져옵니다.

  • Open Cloud를 자동화합니다. 테스트 픽스처용 DataStore를 시드하고, place를 게시하고, MessagingService 토픽을 브로드캐스트하거나 사용자, 그룹, 인벤토리를 조회합니다.


알려진 제한 사항

다음은 플랫폼 제한 사항이지 버그가 아닙니다. 시작하기 전에 미리 알 수 있도록 여기에 기록해 둡니다.

  • F5 플레이테스트 중지는 최선 노력(best-effort)입니다. stop_playtest가 적용되지 않을 수 있습니다. 플러그인과 실행 중인 게임은 별도의 DataModel이기 때문입니다. stop_simulation(F8)은 깔끔하게 중지됩니다. F5 플레이테스트가 중지되지 않으면 Studio에서 Stop을 누르세요.

  • 플레이 중 작업은 주입된 러너(injected runner)를 통해 수행됩니다. 플레이테스트 중 입력, 런타임 상태, 중지는 브리지를 통해 중계되며 플러그인에서 직접 호출되지 않습니다.

  • 헤드리스 테스트는 서버 컨텍스트에서 실행됩니다. Open Cloud는 게시된 place를 서버에서 실행하므로 RunService:IsStudio()는 false이고 플러그인 API가 없습니다. 서버 및 게임플레이 로직과 보안 테스트에 사용하고, Studio 플러그인 또는 클라이언트 입력 동작에는 사용하지 마세요.

  • Roblox 기본 제공 Assistant와의 도구 기능 동등성은 수동으로 유지됩니다.

  • 여러 Open Cloud 시스템은 Roblox 측에서 베타 또는 실험 단계입니다(Instance API, 사용자 제한, 시크릿, 게임 서버, 분석, 그리고 open_cloud_request 뒤의 모든 것). 그 형태는 바뀔 수 있으며, open_cloud_request는 정리된 응답이 아닌 원시 응답을 반환합니다.

Tripwire는 한 사람이 여가 시간에 유지 관리합니다. 이슈와 풀 리퀘스트는 보통 약 일주일 안에 답변을 받습니다. 늦은 답변은 거절이 아닙니다.


문제 해결

Studio 도구가 시간 초과되거나 연결된 Studio가 없다고 보고합니다. 플러그인이 연결되지 않은 것입니다. Tripwire.rbxmx를 설치하고, Studio를 다시 시작하고, Tripwire 도구 모음 버튼을 클릭한 다음 패널에서 Connect를 누르세요. 패널 상태와 Output 줄의 [Tripwire v...] connected가 모두 이를 확인해 줍니다.

플러그인이 HTTP가 차단되었다고 보고합니다. 열린 place에서 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가 잘못되었거나, place가 게시되지 않았습니다. Creator Dashboard에서 범위를 추가하고(도구 설명에 이름이 나와 있습니다), id를 확인한 다음 MCP 서버에 다시 연결하세요. 오류 텍스트는 Roblox 자체 메시지이므로 무엇이 누락되었는지 알려줍니다.

run_tests가 최신 변경 사항을 반영하지 않습니다. 게시된 place를 읽기 때문입니다. 먼저 게시하세요. rojo serve는 라이브 편집 세션만 업데이트할 뿐 Open Cloud가 실행하는 대상은 업데이트하지 않습니다.

npx가 서버를 가져오지 못합니다. Node.js가 없거나 첫 다운로드를 위한 네트워크가 없는 것입니다. Node를 설치하거나 Releases 페이지의 사전 빌드 바이너리를 사용하고 command가 그것을 가리키게 하세요(Install의 Alternatives 참조).

서버가 브리지 포트가 사용 중이라고 표시합니다. 이전 서버가 여전히 포트 44331을 점유하고 있습니다. 이전 MCP 세션이나 오래된 프로세스를 종료한 다음 다시 연결하세요.


선행 사례

Studio 런타임 접근 방식(로컬 서버를 롱폴링하는 플러그인, 플레이 중에 주입되는 러너)은 boshyxd/robloxstudio-mcpChrrxs/robloxstudio-mcp의 아이디어를 따릅니다. Tripwire는 독립적으로 처음부터 구현된 것입니다. 헤드리스 테스트 하네스, CI 보안 리뷰어, Open Cloud 도구는 자체 개발된 것입니다.


기여

버그 리포트, 기능 아이디어, 패치를 환영합니다. 설정, 빌드 게이트, 브랜치 및 커밋 규칙은 CONTRIBUTING.md를, 구성 요소들이 어떻게 맞물리는지는 ARCHITECTURE.md를 참조하세요. 참여함으로써 Code of Conduct에 동의하게 됩니다.

보안 문제를 발견하셨나요? 공개 이슈를 열지 마세요. 비공개 신고 절차는 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