{"name":"io.github.gjlmotea/studio-sidecar-for-roblox-studio-mcp","slug":"gjlmotea-studio-sidecar-for-roblox-studio-mcp","title":"Studio Sidecar","description":"Companion to Roblox Studio's built-in MCP: open places, guard writes, Open Cloud asset uploads.","url":"https://mcp.market/server/gjlmotea-studio-sidecar-for-roblox-studio-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":30,"stars":1,"forks":0,"downloads_week":63,"last_push_at":"2026-10-19T08:22:13.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/gjlmotea/studio-sidecar-mcp","website":"https://github.com/gjlmotea/studio-sidecar-mcp","version":"0.1.1","remotes":[],"packages":[{"registryType":"npm","identifier":"@gjlmotea/studio-sidecar-mcp","version":"0.1.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Open Cloud API key with Asset read and write; only the four Open Cloud tools need it","format":"string","isSecret":true,"name":"ROBLOX_API_KEY"},{"description":"Roblox user ID recorded as the creator of uploaded assets","format":"string","name":"ROBLOX_CREATOR_USER_ID"},{"description":"Folders that uploads may read from, joined with the platform path delimiter: ';' on Windows (C:\\assets\\models;D:\\decals), ':' on macOS (/Users/you/models:/Volumes/art/decals). Uploads are refused when unset","format":"string","name":"ROBLOX_UPLOAD_ROOT"},{"description":"Roblox Studio executable; resolved automatically when unset","format":"filepath","name":"ROBLOX_STUDIO_PATH"}]}],"tools":[{"name":"roblox_archive_asset","description":"Works only on **asset types that support archiving**. Model and Decal have never supported archiving; this tool blocks them up front and explains why,","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_cleanup_stubs","description":"MCP clients do not always reap their own StudioMCP stubs when they exit, so stubs pile up over time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_extract_place","description":"Extract all of a place's scripts and its place settings as plain text into the output folder (src/**, scene/place.json, scene/scripts.json).","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_get_asset","description":"Return revisionId, moderationState, state and creatorUserId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_get_status","description":"Report the resolved Studio executable, whether the Open Cloud key is ready, and the folders uploads are allowed from. Check this before doing anything else.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_list_studios","description":"List the local Roblox Studio processes and the StudioMCP broker and stubs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_luau_safe","description":"Run Luau in the Studio whose placeId matches. Compared with the built-in execute_luau, it adds three guard rails:","write_action":true,"price_micros":0,"input_schema":null},{"name":"roblox_open_place","description":"Start a new Studio process that opens the given place, and wait until it registers with the MCP broker.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_place_guard","description":"Ask each connected Studio in turn, report which one has a `game.PlaceId` equal to the value you want, and give its studio_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"roblox_update_asset","description":"Push new content to the same assetId (this is how the \"Package rather than Model\" strategy is implemented).","write_action":true,"price_micros":0,"input_schema":null},{"name":"roblox_upload_asset","description":"Create a new asset through Open Cloud assets/v1 (Model accepts .fbx only, Decal accepts common image formats, Audio accepts mp3/ogg).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-10-27T18:17:27.198Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-27T18:17:27.094Z","components":{"code":{"score":25,"max":25,"notes":["57 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@gjlmotea/studio-sidecar-mcp","version":"0.1.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-10-19T08:23:56.022Z","repositoryUrl":"git+https://github.com/gjlmotea/studio-sidecar-mcp.git","weeklyDownloads":63}],"repo":{"found":true,"owner":"gjlmotea","repo":"studio-sidecar-mcp","archived":false,"pushedAt":"2026-10-19T08:22:13Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/40420568?v=4","ownerCreatedAt":"2018-06-20T06:55:18Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/40420568?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":63,"license":"MIT","lastPushAt":"2026-10-19T08:22:13.000Z","score":30}}}},"grade_history":[],"reviews":[]}