
Roblox Studio
STDIOComprehensive Roblox Studio integration for AI assistants with 18 specialized tools.
Comprehensive Roblox Studio integration for AI assistants with 18 specialized tools.
MCP server for AI-powered Roblox Studio integration. 18 specialized tools for exploring projects, analyzing scripts, and performing bulk operations.
For Claude Code users:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp
For other MCP clients (Claude Desktop, etc.):
{ "mcpServers": { "robloxstudio-mcp": { "command": "npx", "args": ["-y", "robloxstudio-mcp"], "description": "Advanced Roblox Studio integration for AI assistants" } } }
The MCP server requires a companion Roblox Studio plugin:
Roblox Creator Store:
Manual download:
%LOCALAPPDATA%/Roblox/Plugins
folderAdvanced setup:
After installation:
Dual-component system bridging Roblox Studio with AI assistants:
%%{init: {'theme':'dark', 'themeVariables': {'primaryColor':'#2d3748', 'primaryTextColor':'#ffffff', 'primaryBorderColor':'#4a5568', 'lineColor':'#718096', 'sectionBkgColor':'#1a202c', 'altSectionBkgColor':'#2d3748', 'gridColor':'#4a5568', 'secondaryColor':'#2b6cb0', 'tertiaryColor':'#319795'}}}%% graph TB subgraph AI_ENV ["AI Environment"] AI["AI Assistant<br/>Claude Code/Desktop"] MCP["MCP Server<br/>Node.js + TypeScript"] end subgraph COMM_LAYER ["Communication Layer"] HTTP["HTTP Bridge<br/>localhost:3002"] QUEUE["Request Queue<br/>UUID tracking"] end subgraph STUDIO_ENV ["Roblox Studio Environment"] PLUGIN["Studio Plugin<br/>Luau Script"] STUDIO["Roblox Studio<br/>APIs & Data"] end subgraph TOOLS ["18 AI Tools"] FILE["File System<br/>Trees, Search"] CONTEXT["Studio Context<br/>Services, Objects"] PROPS["Properties<br/>Get, Set, Mass Ops"] CREATE["Object Creation<br/>Single, Mass, Properties"] PROJECT["Project Analysis<br/>Smart Structure"] end AI -->|stdio| MCP MCP -->|HTTP POST| HTTP HTTP -->|Queue Request| QUEUE PLUGIN -->|Poll every 500ms| HTTP HTTP -->|Pending Work| PLUGIN PLUGIN -->|Execute APIs| STUDIO STUDIO -->|Return Data| PLUGIN PLUGIN -->|HTTP Response| HTTP HTTP -->|Resolve Promise| MCP MCP -->|Tool Result| AI MCP -.->|Exposes| FILE MCP -.->|Exposes| CONTEXT MCP -.->|Exposes| PROPS MCP -.->|Exposes| CREATE MCP -.->|Exposes| PROJECT classDef aiStyle fill:#1e40af,stroke:#3b82f6,stroke-width:2px,color:#ffffff classDef mcpStyle fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:#ffffff classDef httpStyle fill:#ea580c,stroke:#f97316,stroke-width:2px,color:#ffffff classDef pluginStyle fill:#059669,stroke:#10b981,stroke-width:2px,color:#ffffff classDef studioStyle fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#ffffff classDef toolStyle fill:#0891b2,stroke:#06b6d4,stroke-width:2px,color:#ffffff class AI aiStyle class MCP mcpStyle class HTTP,QUEUE httpStyle class PLUGIN pluginStyle class STUDIO studioStyle class FILE,CONTEXT,PROPS,CREATE,PROJECT toolStyle
get_file_tree
- Complete project hierarchy with scripts, models, folderssearch_files
- Find files by name, type, or content patternsget_place_info
- Place ID, name, game settings, workspace infoget_services
- All Roblox services and their child countssearch_objects
- Find instances by name, class, or propertiesget_instance_properties
- Complete property dump for any objectget_instance_children
- Child objects with metadatasearch_by_property
- Find objects with specific property valuesget_class_info
- Available properties/methods for Roblox classesset_property
- Set a property on any Roblox instancemass_set_property
- Set the same property on multiple instancesmass_get_property
- Get the same property from multiple instancescreate_object
- Create a new Roblox object instancecreate_object_with_properties
- Create objects with initial propertiesmass_create_objects
- Create multiple objects at oncemass_create_objects_with_properties
- Create multiple objects with propertiesdelete_object
- Delete a Roblox object instanceget_project_structure
- Smart hierarchy with depth control (recommended: 5-10)Note: Previous tools removed:
get_file_content
,get_file_properties
,get_selection
,get_dependencies
,validate_references
. Use Rojo/Argon workflows instead.
// Example: Set multiple parts to red mass_set_property(["game.Workspace.Part1", "game.Workspace.Part2"], "BrickColor", "Really red")
get_project_structure("game.ServerStorage", maxDepth=5)
npm run dev # Development server with hot reload npm run build # Production build npm start # Run built server npm run lint # ESLint code quality npm run typecheck # TypeScript validation
%%{init: {'theme':'dark', 'themeVariables': {'primaryColor':'#2d3748', 'primaryTextColor':'#ffffff', 'primaryBorderColor':'#4a5568', 'lineColor':'#10b981', 'sectionBkgColor':'#1a202c', 'altSectionBkgColor':'#2d3748', 'gridColor':'#4a5568', 'secondaryColor':'#3b82f6', 'tertiaryColor':'#8b5cf6', 'background':'#1a202c', 'mainBkg':'#2d3748', 'secondBkg':'#374151', 'tertiaryColor':'#6366f1'}}}%% sequenceDiagram participant AI as AI Assistant participant MCP as MCP Server participant HTTP as HTTP Bridge participant PLUGIN as Studio Plugin participant STUDIO as Roblox Studio Note over AI,STUDIO: Tool Request Flow AI->>+MCP: Call tool (e.g., get_file_tree) MCP->>+HTTP: Queue request with UUID HTTP->>HTTP: Store in pending requests map HTTP-->>-MCP: Request queued Note over PLUGIN: Polling every 500ms PLUGIN->>+HTTP: GET /poll HTTP->>-PLUGIN: Return pending request + UUID PLUGIN->>+STUDIO: Execute Studio APIs Note over STUDIO: game.ServerStorage<br/>Selection:Get()<br/>Instance properties STUDIO->>-PLUGIN: Return Studio data PLUGIN->>+HTTP: POST /response with UUID + data HTTP->>-MCP: Resolve promise with data MCP->>-AI: Return tool result Note over AI,STUDIO: Error Handling alt Request Timeout (30s) HTTP->>MCP: Reject promise with timeout MCP->>AI: Return error message end alt Plugin Disconnected PLUGIN->>HTTP: Connection lost HTTP->>HTTP: Exponential backoff retry Note over PLUGIN: Status: "Waiting for server..." end
Features:
// Get service overview get_project_structure() // Explore weapons folder get_project_structure("game.ServerStorage.Weapons", maxDepth=2) // Find all Sound objects search_by_property("ClassName", "Sound") // Check script dependencies get_dependencies("game.ServerScriptService.MainScript") // Find broken references validate_references() // Get UI component details get_instance_properties("game.StarterGui.MainMenu.SettingsFrame")
Environment Variables:
MCP_SERVER_PORT
- MCP server port (default: stdio)HTTP_SERVER_PORT
- HTTP bridge port (default: 3002)PLUGIN_POLL_INTERVAL
- Plugin poll frequency (default: 500ms)REQUEST_TIMEOUT
- Request timeout (default: 30000ms)Studio Settings:
MIT License - Feel free to use in commercial and personal projects!