studio-plugin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited studio-plugin (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Bridge AI assistants to Roblox Studio — 51 tools for exploring, editing, and automating your game.
Works with Claude Code, Claude Desktop, Cursor, Gemini, Codex, and any MCP-compatible client.
An MCP (Model Context Protocol) server that gives AI full access to your Roblox Studio session. Explore game hierarchies, read and edit scripts, manipulate properties, create instances, build terrain, run playtests — all locally via HTTP polling. No external servers, no data collection.
Option A — Creator Store (easiest): Install from Roblox Creator Store
Option B — Manual: Download MCPPlugin.rbxmx from Releases and drop it into your Plugins folder:
%LOCALAPPDATA%/Roblox/Plugins/~/Documents/Roblox/Plugins/Game Settings > Security > Allow HTTP Requests = ON
Claude Code:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp@latestCodex:
codex mcp add robloxstudio -- npx -y robloxstudio-mcp@latestGemini:
gemini mcp add robloxstudio npx --trust -- -y robloxstudio-mcp@latest<details> <summary>Claude Desktop, Cursor, Windsurf, or other MCP clients</summary>
Add to your MCP config file:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp@latest"]
}
}
}Windows users — if you encounter issues, wrap with cmd:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "cmd",
"args": ["/c", "npx", "-y", "robloxstudio-mcp@latest"]
}
}
}</details>
Plugin shows "Connected" when ready.
| Tool | Description |
|---|---|
get_file_tree | Browse instance hierarchy as a tree |
search_files | Search instances by name, class, or script content |
get_place_info | Get place ID, name, and game settings |
get_services | List available Roblox services |
search_objects | Find instances by name, class, or property |
search_by_property | Find instances with specific property values |
get_instance_properties | Get all properties of an instance |
get_instance_children | List children with class types |
get_class_info | Get available properties/methods for a class |
get_project_structure | Full hierarchy with configurable depth |
| Tool | Description |
|---|---|
create_object | Create a new instance |
create_object_with_properties | Create instance with initial properties |
mass_create_objects | Bulk create instances |
mass_create_objects_with_properties | Bulk create with properties |
delete_object | Delete an instance |
smart_duplicate | Duplicate with naming, positioning, property variations |
mass_duplicate | Multiple duplication operations at once |
reparent_instance | Move instance to a new parent (no delete/recreate) |
| Tool | Description |
|---|---|
clone_instance | Deep copy an instance to a different parent |
insert_asset | Insert a Roblox asset by ID (models, meshes, images) |
| Tool | Description |
|---|---|
set_property | Set any property on an instance |
mass_set_property | Set same property on multiple instances |
mass_get_property | Read same property from multiple instances |
set_calculated_property | Set properties via math formulas |
set_relative_property | Modify properties relative to current values |
| Tool | Description |
|---|---|
get_script_source | Read script source (supports line ranges) |
set_script_source | Replace entire script source |
edit_script_lines | Replace specific lines |
insert_script_lines | Insert lines at a position |
delete_script_lines | Delete specific lines |
search_replace_scripts | Find/replace text across all scripts |
| Tool | Description |
|---|---|
create_ui | Batch-create UI elements with proper UDim2 sizing |
| Tool | Description |
|---|---|
fill_terrain | Fill rectangular region with terrain material |
fill_terrain_sphere | Fill spherical region with material |
clear_terrain | Clear terrain (region or all) |
get_terrain_materials | List available terrain materials |
| Tool | Description |
|---|---|
get_attribute / set_attribute | Read/write instance attributes |
get_attributes | Get all attributes on an instance |
delete_attribute | Remove an attribute |
get_tags / add_tag / remove_tag | Manage CollectionService tags |
get_tagged | Find all instances with a specific tag |
| Tool | Description |
|---|---|
undo | Undo last action (Ctrl+Z) |
redo | Redo last undone action (Ctrl+Y) |
| Tool | Description |
|---|---|
execute_luau | Run arbitrary Luau code in Studio |
get_selection | Get currently selected objects |
start_playtest | Start play/run session with log capture |
stop_playtest | Stop session and return output |
get_playtest_output | Poll logs without stopping |
AI Assistant <--stdio--> MCP Server (Node.js)
<--HTTP--> Bridge (Express on port 58741)
<--polling--> Studio Plugin (roblox-ts)
<--API--> Roblox Studionpm install # Install dependencies
npm run build:all # Build server + plugin
npm run dev # Dev mode with tsx
npm test # Run tests
npm run build:plugin # Rebuild Studio plugin only| Issue | Fix |
|---|---|
| Plugin missing from toolbar | Verify .rbxmx is in Plugins folder, restart Studio |
| HTTP 403 errors | Enable "Allow HTTP Requests" in Game Settings > Security |
| Plugin shows "Disconnected" | Normal until MCP server is running — start your AI client |
| Connection timeout | Check firewall isn't blocking localhost:58741 |
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.