robloxstudio-mcp 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +295 -279
- package/dist/index.js +254 -13
- package/dist/index.js.map +1 -1
- package/dist/tools/index.d.ts +67 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +159 -2
- package/dist/tools/index.js.map +1 -1
- package/package.json +1 -1
- package/studio-plugin/INSTALLATION.md +149 -133
- package/studio-plugin/MCPPlugin.rbxmx +212 -118
- package/studio-plugin/plugin.luau +3083 -2276
package/README.md
CHANGED
|
@@ -1,280 +1,296 @@
|
|
|
1
|
-
# Roblox Studio MCP Server
|
|
2
|
-
|
|
3
|
-
MCP server for AI-powered Roblox Studio integration. 18 specialized tools for exploring projects, analyzing scripts, and performing bulk operations.
|
|
4
|
-
|
|
5
|
-
<a href="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp">
|
|
6
|
-
<img width="380" height="200" src="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp/badge" alt="Roblox Studio Server MCP server" />
|
|
7
|
-
</a>
|
|
8
|
-
|
|
9
|
-
## Quick Start
|
|
10
|
-
|
|
11
|
-
**For Claude Code users:**
|
|
12
|
-
```bash
|
|
13
|
-
claude mcp add robloxstudio -- npx -y robloxstudio-mcp
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**For other MCP clients (Claude Desktop, etc.):**
|
|
17
|
-
```json
|
|
18
|
-
{
|
|
19
|
-
"mcpServers": {
|
|
20
|
-
"robloxstudio-mcp": {
|
|
21
|
-
"command": "npx",
|
|
22
|
-
"args": ["-y", "robloxstudio-mcp"],
|
|
23
|
-
"description": "Advanced Roblox Studio integration for AI assistants"
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
- `
|
|
137
|
-
- `
|
|
138
|
-
|
|
139
|
-
###
|
|
140
|
-
- `
|
|
141
|
-
- `
|
|
142
|
-
- `
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
- `
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
###
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
1
|
+
# Roblox Studio MCP Server
|
|
2
|
+
|
|
3
|
+
MCP server for AI-powered Roblox Studio integration. 18 specialized tools for exploring projects, analyzing scripts, and performing bulk operations.
|
|
4
|
+
|
|
5
|
+
<a href="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp">
|
|
6
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp/badge" alt="Roblox Studio Server MCP server" />
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
**For Claude Code users:**
|
|
12
|
+
```bash
|
|
13
|
+
claude mcp add robloxstudio -- npx -y robloxstudio-mcp
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**For other MCP clients (Claude Desktop, etc.):**
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"mcpServers": {
|
|
20
|
+
"robloxstudio-mcp": {
|
|
21
|
+
"command": "npx",
|
|
22
|
+
"args": ["-y", "robloxstudio-mcp"],
|
|
23
|
+
"description": "Advanced Roblox Studio integration for AI assistants"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<details>
|
|
30
|
+
<summary>Note for native Windows users</summary>
|
|
31
|
+
If you encounter issues, you may need to run it through `cmd`. Update your configuration like this:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"mcpServers": {
|
|
36
|
+
"robloxstudio-mcp": {
|
|
37
|
+
"command": "cmd",
|
|
38
|
+
"args": ["/c", "npx", "-y", "robloxstudio-mcp@latest"]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
</details>
|
|
44
|
+
|
|
45
|
+
## Studio Plugin Setup (Required)
|
|
46
|
+
|
|
47
|
+
The MCP server requires a companion Roblox Studio plugin:
|
|
48
|
+
|
|
49
|
+
1. **Roblox Creator Store**:
|
|
50
|
+
- Install from: https://create.roblox.com/store/asset/75577477776988
|
|
51
|
+
- Click "Install" - Opens in Studio automatically
|
|
52
|
+
|
|
53
|
+
2. **Manual download**:
|
|
54
|
+
- Download [MCPPlugin.rbxmx](https://github.com/boshyxd/robloxstudio-mcp/releases/latest/download/MCPPlugin.rbxmx)
|
|
55
|
+
- Save to your `%LOCALAPPDATA%/Roblox/Plugins` folder
|
|
56
|
+
|
|
57
|
+
3. **Advanced setup**:
|
|
58
|
+
- See [studio-plugin/INSTALLATION.md](studio-plugin/INSTALLATION.md) for other methods
|
|
59
|
+
|
|
60
|
+
**After installation:**
|
|
61
|
+
- Enable "Allow HTTP Requests" in Game Settings > Security
|
|
62
|
+
- Click the "MCP Server" button in the Plugins toolbar
|
|
63
|
+
- Status should show "Connected" when working
|
|
64
|
+
|
|
65
|
+
## Architecture Overview
|
|
66
|
+
|
|
67
|
+
Dual-component system bridging Roblox Studio with AI assistants:
|
|
68
|
+
|
|
69
|
+
```mermaid
|
|
70
|
+
%%{init: {'theme':'dark', 'themeVariables': {'primaryColor':'#2d3748', 'primaryTextColor':'#ffffff', 'primaryBorderColor':'#4a5568', 'lineColor':'#718096', 'sectionBkgColor':'#1a202c', 'altSectionBkgColor':'#2d3748', 'gridColor':'#4a5568', 'secondaryColor':'#2b6cb0', 'tertiaryColor':'#319795'}}}%%
|
|
71
|
+
graph TB
|
|
72
|
+
subgraph AI_ENV ["AI Environment"]
|
|
73
|
+
AI["AI Assistant<br/>Claude Code/Desktop"]
|
|
74
|
+
MCP["MCP Server<br/>Node.js + TypeScript"]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
subgraph COMM_LAYER ["Communication Layer"]
|
|
78
|
+
HTTP["HTTP Bridge<br/>localhost:3002"]
|
|
79
|
+
QUEUE["Request Queue<br/>UUID tracking"]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
subgraph STUDIO_ENV ["Roblox Studio Environment"]
|
|
83
|
+
PLUGIN["Studio Plugin<br/>Luau Script"]
|
|
84
|
+
STUDIO["Roblox Studio<br/>APIs & Data"]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
subgraph TOOLS ["18 AI Tools"]
|
|
88
|
+
FILE["File System<br/>Trees, Search"]
|
|
89
|
+
CONTEXT["Studio Context<br/>Services, Objects"]
|
|
90
|
+
PROPS["Properties<br/>Get, Set, Mass Ops"]
|
|
91
|
+
CREATE["Object Creation<br/>Single, Mass, Properties"]
|
|
92
|
+
PROJECT["Project Analysis<br/>Smart Structure"]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
AI -->|stdio| MCP
|
|
96
|
+
MCP -->|HTTP POST| HTTP
|
|
97
|
+
HTTP -->|Queue Request| QUEUE
|
|
98
|
+
PLUGIN -->|Poll every 500ms| HTTP
|
|
99
|
+
HTTP -->|Pending Work| PLUGIN
|
|
100
|
+
PLUGIN -->|Execute APIs| STUDIO
|
|
101
|
+
STUDIO -->|Return Data| PLUGIN
|
|
102
|
+
PLUGIN -->|HTTP Response| HTTP
|
|
103
|
+
HTTP -->|Resolve Promise| MCP
|
|
104
|
+
MCP -->|Tool Result| AI
|
|
105
|
+
|
|
106
|
+
MCP -.->|Exposes| FILE
|
|
107
|
+
MCP -.->|Exposes| CONTEXT
|
|
108
|
+
MCP -.->|Exposes| PROPS
|
|
109
|
+
MCP -.->|Exposes| CREATE
|
|
110
|
+
MCP -.->|Exposes| PROJECT
|
|
111
|
+
|
|
112
|
+
classDef aiStyle fill:#1e40af,stroke:#3b82f6,stroke-width:2px,color:#ffffff
|
|
113
|
+
classDef mcpStyle fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:#ffffff
|
|
114
|
+
classDef httpStyle fill:#ea580c,stroke:#f97316,stroke-width:2px,color:#ffffff
|
|
115
|
+
classDef pluginStyle fill:#059669,stroke:#10b981,stroke-width:2px,color:#ffffff
|
|
116
|
+
classDef studioStyle fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#ffffff
|
|
117
|
+
classDef toolStyle fill:#0891b2,stroke:#06b6d4,stroke-width:2px,color:#ffffff
|
|
118
|
+
|
|
119
|
+
class AI aiStyle
|
|
120
|
+
class MCP mcpStyle
|
|
121
|
+
class HTTP,QUEUE httpStyle
|
|
122
|
+
class PLUGIN pluginStyle
|
|
123
|
+
class STUDIO studioStyle
|
|
124
|
+
class FILE,CONTEXT,PROPS,CREATE,PROJECT toolStyle
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Key Components:
|
|
128
|
+
- MCP Server (Node.js/TypeScript) - Exposes 18 tools via stdio
|
|
129
|
+
- HTTP Bridge - Request/response queue on localhost:3002
|
|
130
|
+
- Studio Plugin (Luau) - Polls server and executes API calls
|
|
131
|
+
- Smart Caching - Efficient data transfer
|
|
132
|
+
|
|
133
|
+
## 18 AI Tools
|
|
134
|
+
|
|
135
|
+
### File System Tools
|
|
136
|
+
- `get_file_tree` - Complete project hierarchy with scripts, models, folders
|
|
137
|
+
- `search_files` - Find files by name, type, or content patterns
|
|
138
|
+
|
|
139
|
+
### Studio Context Tools
|
|
140
|
+
- `get_place_info` - Place ID, name, game settings, workspace info
|
|
141
|
+
- `get_services` - All Roblox services and their child counts
|
|
142
|
+
- `search_objects` - Find instances by name, class, or properties
|
|
143
|
+
|
|
144
|
+
### Instance & Property Tools
|
|
145
|
+
- `get_instance_properties` - Complete property dump for any object
|
|
146
|
+
- `get_instance_children` - Child objects with metadata
|
|
147
|
+
- `search_by_property` - Find objects with specific property values
|
|
148
|
+
- `get_class_info` - Available properties/methods for Roblox classes
|
|
149
|
+
|
|
150
|
+
### Property Modification Tools
|
|
151
|
+
- `set_property` - Set a property on any Roblox instance
|
|
152
|
+
- `mass_set_property` - Set the same property on multiple instances
|
|
153
|
+
- `mass_get_property` - Get the same property from multiple instances
|
|
154
|
+
|
|
155
|
+
### Object Creation Tools
|
|
156
|
+
- `create_object` - Create a new Roblox object instance
|
|
157
|
+
- `create_object_with_properties` - Create objects with initial properties
|
|
158
|
+
- `mass_create_objects` - Create multiple objects at once
|
|
159
|
+
- `mass_create_objects_with_properties` - Create multiple objects with properties
|
|
160
|
+
- `delete_object` - Delete a Roblox object instance
|
|
161
|
+
|
|
162
|
+
### Project Analysis Tools
|
|
163
|
+
- `get_project_structure` - Smart hierarchy with depth control (recommended: 5-10)
|
|
164
|
+
|
|
165
|
+
> Note: Previous tools removed: `get_file_content`, `get_file_properties`, `get_selection`, `get_dependencies`, `validate_references`. Use Rojo/Argon workflows instead.
|
|
166
|
+
|
|
167
|
+
## AI-Optimized Features
|
|
168
|
+
|
|
169
|
+
### Mass Operations (v1.3.0)
|
|
170
|
+
- Bulk property editing
|
|
171
|
+
- Mass object creation
|
|
172
|
+
- Batch property reading
|
|
173
|
+
- Atomic undo/redo operations
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
// Example: Set multiple parts to red
|
|
177
|
+
mass_set_property(["game.Workspace.Part1", "game.Workspace.Part2"], "BrickColor", "Really red")
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Smart Project Structure
|
|
181
|
+
- Service overview with child counts
|
|
182
|
+
- Path-based exploration: `get_project_structure("game.ServerStorage", maxDepth=5)`
|
|
183
|
+
- Script-only filtering for code analysis
|
|
184
|
+
- Intelligent grouping for large folders
|
|
185
|
+
- Recommended maxDepth=5-10
|
|
186
|
+
|
|
187
|
+
### Rich Metadata
|
|
188
|
+
- Script status tracking
|
|
189
|
+
- GUI intelligence
|
|
190
|
+
- Performance optimized
|
|
191
|
+
|
|
192
|
+
## Development & Testing
|
|
193
|
+
|
|
194
|
+
### Commands
|
|
195
|
+
```bash
|
|
196
|
+
npm run dev # Development server with hot reload
|
|
197
|
+
npm run build # Production build
|
|
198
|
+
npm start # Run built server
|
|
199
|
+
npm run lint # ESLint code quality
|
|
200
|
+
npm run typecheck # TypeScript validation
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Plugin Development
|
|
204
|
+
- Live reload
|
|
205
|
+
- Robust error handling
|
|
206
|
+
- Debug logging
|
|
207
|
+
- Visual status indicators
|
|
208
|
+
|
|
209
|
+
## Communication Protocol
|
|
210
|
+
|
|
211
|
+
```mermaid
|
|
212
|
+
%%{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'}}}%%
|
|
213
|
+
sequenceDiagram
|
|
214
|
+
participant AI as AI Assistant
|
|
215
|
+
participant MCP as MCP Server
|
|
216
|
+
participant HTTP as HTTP Bridge
|
|
217
|
+
participant PLUGIN as Studio Plugin
|
|
218
|
+
participant STUDIO as Roblox Studio
|
|
219
|
+
|
|
220
|
+
Note over AI,STUDIO: Tool Request Flow
|
|
221
|
+
|
|
222
|
+
AI->>+MCP: Call tool (e.g., get_file_tree)
|
|
223
|
+
MCP->>+HTTP: Queue request with UUID
|
|
224
|
+
HTTP->>HTTP: Store in pending requests map
|
|
225
|
+
HTTP-->>-MCP: Request queued
|
|
226
|
+
|
|
227
|
+
Note over PLUGIN: Polling every 500ms
|
|
228
|
+
PLUGIN->>+HTTP: GET /poll
|
|
229
|
+
HTTP->>-PLUGIN: Return pending request + UUID
|
|
230
|
+
|
|
231
|
+
PLUGIN->>+STUDIO: Execute Studio APIs
|
|
232
|
+
Note over STUDIO: game.ServerStorage<br/>Selection:Get()<br/>Instance properties
|
|
233
|
+
STUDIO->>-PLUGIN: Return Studio data
|
|
234
|
+
|
|
235
|
+
PLUGIN->>+HTTP: POST /response with UUID + data
|
|
236
|
+
HTTP->>-MCP: Resolve promise with data
|
|
237
|
+
MCP->>-AI: Return tool result
|
|
238
|
+
|
|
239
|
+
Note over AI,STUDIO: Error Handling
|
|
240
|
+
|
|
241
|
+
alt Request Timeout (30s)
|
|
242
|
+
HTTP->>MCP: Reject promise with timeout
|
|
243
|
+
MCP->>AI: Return error message
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
alt Plugin Disconnected
|
|
247
|
+
PLUGIN->>HTTP: Connection lost
|
|
248
|
+
HTTP->>HTTP: Exponential backoff retry
|
|
249
|
+
Note over PLUGIN: Status: "Waiting for server..."
|
|
250
|
+
end
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Features:**
|
|
254
|
+
- 30-second timeouts with exponential backoff
|
|
255
|
+
- Automatic retries
|
|
256
|
+
- Response limiting
|
|
257
|
+
- Request deduplication
|
|
258
|
+
|
|
259
|
+
## Example Usage
|
|
260
|
+
|
|
261
|
+
```javascript
|
|
262
|
+
// Get service overview
|
|
263
|
+
get_project_structure()
|
|
264
|
+
|
|
265
|
+
// Explore weapons folder
|
|
266
|
+
get_project_structure("game.ServerStorage.Weapons", maxDepth=2)
|
|
267
|
+
|
|
268
|
+
// Find all Sound objects
|
|
269
|
+
search_by_property("ClassName", "Sound")
|
|
270
|
+
|
|
271
|
+
// Check script dependencies
|
|
272
|
+
get_dependencies("game.ServerScriptService.MainScript")
|
|
273
|
+
|
|
274
|
+
// Find broken references
|
|
275
|
+
validate_references()
|
|
276
|
+
|
|
277
|
+
// Get UI component details
|
|
278
|
+
get_instance_properties("game.StarterGui.MainMenu.SettingsFrame")
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Configuration
|
|
282
|
+
|
|
283
|
+
**Environment Variables:**
|
|
284
|
+
- `MCP_SERVER_PORT` - MCP server port (default: stdio)
|
|
285
|
+
- `HTTP_SERVER_PORT` - HTTP bridge port (default: 3002)
|
|
286
|
+
- `PLUGIN_POLL_INTERVAL` - Plugin poll frequency (default: 500ms)
|
|
287
|
+
- `REQUEST_TIMEOUT` - Request timeout (default: 30000ms)
|
|
288
|
+
|
|
289
|
+
**Studio Settings:**
|
|
290
|
+
- **Allow HTTP Requests** (Game Settings > Security)
|
|
291
|
+
- **HttpService.HttpEnabled = true**
|
|
292
|
+
- **Plugin activated** via toolbar button
|
|
293
|
+
|
|
294
|
+
## License
|
|
295
|
+
|
|
280
296
|
MIT License - Feel free to use in commercial and personal projects!
|