@el4cteo/rbx-studio-mcp 0.5.6 → 0.5.9
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 +141 -139
- package/config/dsh.cordis.yml +45 -0
- package/package.json +74 -68
- package/plugin/src/Commands.luau +562 -524
- package/plugin/src/Config.luau +65 -65
- package/plugin/src/Console.luau +1843 -1831
- package/plugin/src/Prompt.luau +961 -436
- package/plugin/src/init.server.luau +832 -829
package/README.md
CHANGED
|
@@ -1,139 +1,141 @@
|
|
|
1
|
-
# Roblox Studio MCP
|
|
2
|
-
|
|
3
|
-
Let an AI agent drive Roblox Studio: read your place, edit scripts, build geometry, run playtests, take screenshots. 31 tools. MIT.
|
|
4
|
-
|
|
5
|
-

|
|
6
|
-
|
|
7
|
-
## Install
|
|
8
|
-
|
|
9
|
-
**1. The plugin**
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx -y @el4cteo/rbx-studio-mcp --install-plugin
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Or drop `StudioMCP.rbxmx` from [Releases](https://github.com/EL4CTEO/rbx-studio-mcp/releases) into your Studio plugins folder.
|
|
16
|
-
|
|
17
|
-
**2. The server**
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
claude mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
<details>
|
|
24
|
-
<summary>Other clients</summary>
|
|
25
|
-
|
|
26
|
-
Codex CLI:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
codex mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Cursor, Claude Desktop, Gemini CLI, Windsurf — add to their config file:
|
|
33
|
-
|
|
34
|
-
```json
|
|
35
|
-
{
|
|
36
|
-
"mcpServers": {
|
|
37
|
-
"roblox-studio": {
|
|
38
|
-
"command": "npx",
|
|
39
|
-
"args": ["-y", "@el4cteo/rbx-studio-mcp"]
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
VS Code / Copilot (`.vscode/mcp.json`) uses `"servers"` instead of `"mcpServers"`, plus `"type": "stdio"`.
|
|
46
|
-
|
|
47
|
-
opencode (`opencode.json`):
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{
|
|
51
|
-
"mcp": {
|
|
52
|
-
"roblox-studio": {
|
|
53
|
-
"type": "local",
|
|
54
|
-
"command": ["npx", "-y", "@el4cteo/rbx-studio-mcp"],
|
|
55
|
-
"enabled": true
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
</details>
|
|
61
|
-
|
|
62
|
-
**3.** Open Studio and accept the `127.0.0.1` prompt. Check it works with `studio_status`.
|
|
63
|
-
|
|
64
|
-
Something wrong? Run `npx -y @el4cteo/rbx-studio-mcp doctor` — it says what is broken and how to fix it.
|
|
65
|
-
|
|
66
|
-
Port is **44755**, loopback only. Change it with `--port` and match it in the plugin.
|
|
67
|
-
|
|
68
|
-
## Tools
|
|
69
|
-
|
|
70
|
-
| | |
|
|
71
|
-
|---|---|
|
|
72
|
-
| **Session** | `studio_status` `list_studios` `set_active_studio` |
|
|
73
|
-
| **Discover** | `tree` `inspect` `find` `api` |
|
|
74
|
-
| **Scripts** | `script_read` `script_edit` `script_grep` `script_create` |
|
|
75
|
-
| **Instances** | `create` `modify` `delete` `move` |
|
|
76
|
-
| **World** | `geometry` `terrain` `generate` `assets` `collision` `undo` |
|
|
77
|
-
| **Run & debug** | `playtest` `execute_luau` `character` `input` `console` `debug` `performance` |
|
|
78
|
-
| **Look** | `screenshot` `viewport` `device` |
|
|
79
|
-
|
|
80
|
-
Write tools take arrays — ten script edits is one call, one **Ctrl+Z**, and all-or-nothing.
|
|
81
|
-
|
|
82
|
-
Two things to watch: a playtest connects a second session, so pass `studioId` and use the edit one for changes that must last; `device` emulation stays on until `device op="stop"`.
|
|
83
|
-
|
|
84
|
-
## The console panel
|
|
85
|
-
|
|
86
|
-
Every call is logged with how long it took. Below the header is a command line — type a command, or type a sentence and a coding agent answers it.
|
|
87
|
-
|
|
88
|
-
| | |
|
|
89
|
-
|---|---|
|
|
90
|
-
| `help` | list everything |
|
|
91
|
-
| `doctor` | check the setup |
|
|
92
|
-
| `status` `version` `place` `clients` | what this session is |
|
|
93
|
-
| `studios` `use <n>` | which Studio window calls go to |
|
|
94
|
-
| `theme [name]` `visuals` `log [level]` `clear` `copy` | the panel |
|
|
95
|
-
| `port [n]` `reconnect` | the connection |
|
|
96
|
-
| `agent [use <id>\|new]` `stop` | which agent runs your prompts |
|
|
97
|
-
| anything else | sent to that agent |
|
|
98
|
-
|
|
99
|
-
Arrows walk the history, Tab completes.
|
|
100
|
-
|
|
101
|
-
**Prompts start a real agent** — whichever you have on PATH: Claude Code, Codex, opencode, Gemini, Cursor, Amp, Qwen Code, Factory Droid, goose, Copilot CLI, Aider, Crush, DeepSeek Harness. It runs headless, drives the same Studio, and its work appears in the log. It is a separate session from your terminal, billed separately, and allowed the `rbx-studio` tools only. `stop` cancels it.
|
|
102
|
-
|
|
103
|
-
Eight themes behind the tab on the right edge. Your pick is remembered.
|
|
104
|
-
|
|
105
|
-
## Why this one
|
|
106
|
-
|
|
107
|
-
- **Push, not poll** — 13.6 ms per call against 25.8 ms.
|
|
108
|
-
- **Safe script edits** — writes go through the script editor, so unsaved work survives.
|
|
109
|
-
- **Stale edits are refused** — pass back the `rev` from `script_read` and a write lands only if nobody else touched the file.
|
|
110
|
-
- **Property names are checked** against the running engine, so `Anchorred` comes back as a suggestion, not a runtime error.
|
|
111
|
-
|
|
112
|
-
## DeepSeek Harness (dsh)
|
|
113
|
-
|
|
114
|
-
This server registers as a dsh plugin.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
npm
|
|
132
|
-
npm
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
# Roblox Studio MCP
|
|
2
|
+
|
|
3
|
+
Let an AI agent drive Roblox Studio: read your place, edit scripts, build geometry, run playtests, take screenshots. 31 tools. MIT.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
**1. The plugin**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx -y @el4cteo/rbx-studio-mcp --install-plugin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Or drop `StudioMCP.rbxmx` from [Releases](https://github.com/EL4CTEO/rbx-studio-mcp/releases) into your Studio plugins folder.
|
|
16
|
+
|
|
17
|
+
**2. The server**
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
claude mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
<details>
|
|
24
|
+
<summary>Other clients</summary>
|
|
25
|
+
|
|
26
|
+
Codex CLI:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
codex mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Cursor, Claude Desktop, Gemini CLI, Windsurf — add to their config file:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"mcpServers": {
|
|
37
|
+
"roblox-studio": {
|
|
38
|
+
"command": "npx",
|
|
39
|
+
"args": ["-y", "@el4cteo/rbx-studio-mcp"]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
VS Code / Copilot (`.vscode/mcp.json`) uses `"servers"` instead of `"mcpServers"`, plus `"type": "stdio"`.
|
|
46
|
+
|
|
47
|
+
opencode (`opencode.json`):
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcp": {
|
|
52
|
+
"roblox-studio": {
|
|
53
|
+
"type": "local",
|
|
54
|
+
"command": ["npx", "-y", "@el4cteo/rbx-studio-mcp"],
|
|
55
|
+
"enabled": true
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
</details>
|
|
61
|
+
|
|
62
|
+
**3.** Open Studio and accept the `127.0.0.1` prompt. Check it works with `studio_status`.
|
|
63
|
+
|
|
64
|
+
Something wrong? Run `npx -y @el4cteo/rbx-studio-mcp doctor` — it says what is broken and how to fix it.
|
|
65
|
+
|
|
66
|
+
Port is **44755**, loopback only. Change it with `--port` and match it in the plugin.
|
|
67
|
+
|
|
68
|
+
## Tools
|
|
69
|
+
|
|
70
|
+
| | |
|
|
71
|
+
|---|---|
|
|
72
|
+
| **Session** | `studio_status` `list_studios` `set_active_studio` |
|
|
73
|
+
| **Discover** | `tree` `inspect` `find` `api` |
|
|
74
|
+
| **Scripts** | `script_read` `script_edit` `script_grep` `script_create` |
|
|
75
|
+
| **Instances** | `create` `modify` `delete` `move` |
|
|
76
|
+
| **World** | `geometry` `terrain` `generate` `assets` `collision` `undo` |
|
|
77
|
+
| **Run & debug** | `playtest` `execute_luau` `character` `input` `console` `debug` `performance` |
|
|
78
|
+
| **Look** | `screenshot` `viewport` `device` |
|
|
79
|
+
|
|
80
|
+
Write tools take arrays — ten script edits is one call, one **Ctrl+Z**, and all-or-nothing.
|
|
81
|
+
|
|
82
|
+
Two things to watch: a playtest connects a second session, so pass `studioId` and use the edit one for changes that must last; `device` emulation stays on until `device op="stop"`.
|
|
83
|
+
|
|
84
|
+
## The console panel
|
|
85
|
+
|
|
86
|
+
Every call is logged with how long it took. Below the header is a command line — type a command, or type a sentence and a coding agent answers it.
|
|
87
|
+
|
|
88
|
+
| | |
|
|
89
|
+
|---|---|
|
|
90
|
+
| `help` | list everything |
|
|
91
|
+
| `doctor` | check the setup |
|
|
92
|
+
| `status` `version` `place` `clients` | what this session is |
|
|
93
|
+
| `studios` `use <n>` | which Studio window calls go to |
|
|
94
|
+
| `theme [name]` `visuals` `log [level]` `clear` `copy` | the panel |
|
|
95
|
+
| `port [n]` `reconnect` | the connection |
|
|
96
|
+
| `agent [use <id>\|new]` `stop` | which agent runs your prompts |
|
|
97
|
+
| anything else | sent to that agent |
|
|
98
|
+
|
|
99
|
+
Arrows walk the history, Tab completes.
|
|
100
|
+
|
|
101
|
+
**Prompts start a real agent** — whichever you have on PATH: Claude Code, Codex, opencode, Gemini, Cursor, Amp, Qwen Code, Factory Droid, goose, Copilot CLI, Aider, Crush, DeepSeek Harness. It runs headless, drives the same Studio, and its work appears in the log. It is a separate session from your terminal, billed separately, and allowed the `rbx-studio` tools only. `stop` cancels it.
|
|
102
|
+
|
|
103
|
+
Eight themes behind the tab on the right edge. Your pick is remembered.
|
|
104
|
+
|
|
105
|
+
## Why this one
|
|
106
|
+
|
|
107
|
+
- **Push, not poll** — 13.6 ms per call against 25.8 ms.
|
|
108
|
+
- **Safe script edits** — writes go through the script editor, so unsaved work survives.
|
|
109
|
+
- **Stale edits are refused** — pass back the `rev` from `script_read` and a write lands only if nobody else touched the file.
|
|
110
|
+
- **Property names are checked** against the running engine, so `Anchorred` comes back as a suggestion, not a runtime error.
|
|
111
|
+
|
|
112
|
+
## DeepSeek Harness (dsh)
|
|
113
|
+
|
|
114
|
+
This server registers as a dsh plugin. The row ships in the package, at
|
|
115
|
+
`node_modules/@el4cteo/rbx-studio-mcp/config/dsh.cordis.yml`:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
dsh --profile headless --patch <that path> "add a spawn point"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
To keep it, append the row to `$DSH_HOME/profiles/<name>/cordis.patch.yml` for one
|
|
122
|
+
profile, or `$DSH_HOME/cordis.patch.yml` for all of them. Needs `DEEPSEEK_API_KEY`.
|
|
123
|
+
|
|
124
|
+
## Security
|
|
125
|
+
|
|
126
|
+
Loopback only, and requires a header a browser cannot set cross-origin. Your experience's "Allow HTTP Requests" setting is untouched.
|
|
127
|
+
|
|
128
|
+
## Development
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm install
|
|
132
|
+
npm run build # TypeScript -> dist/
|
|
133
|
+
npm run install:plugin # build the plugin and copy it into Studio
|
|
134
|
+
npm test
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Needs `luau`, `luau-compile` and `luau-analyze` from [the Luau releases](https://github.com/luau-lang/luau/releases) on `PATH` or in `tools/`.
|
|
138
|
+
|
|
139
|
+
## Licence
|
|
140
|
+
|
|
141
|
+
MIT.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# rbx-studio for DeepSeek Harness (dsh).
|
|
2
|
+
#
|
|
3
|
+
# dsh is "everything is a plugin", and an MCP server becomes one through the
|
|
4
|
+
# `@deepseek-ai/dsh-mcp-client` bridge: one overlay row per server, and its
|
|
5
|
+
# tools arrive as native tools named `mcp__<serverName>__<tool>`. That is the
|
|
6
|
+
# same naming Claude Code and Codex use, so nothing else in this project has to
|
|
7
|
+
# know which harness is driving it.
|
|
8
|
+
#
|
|
9
|
+
# Use it for one run:
|
|
10
|
+
#
|
|
11
|
+
# dsh --profile headless --patch /path/to/dsh.cordis.yml "add a spawn point"
|
|
12
|
+
#
|
|
13
|
+
# Or keep it, by merging this row into your own patch layer -- append to it
|
|
14
|
+
# rather than overwriting, since it may already hold unrelated patches:
|
|
15
|
+
#
|
|
16
|
+
# $DSH_HOME/profiles/<name>/cordis.patch.yml one profile
|
|
17
|
+
# $DSH_HOME/cordis.patch.yml every profile
|
|
18
|
+
#
|
|
19
|
+
# Studio must be open with the plugin installed; dsh starts the bridge, not the
|
|
20
|
+
# editor. If the port is already held by another agent's server, this one
|
|
21
|
+
# becomes a peer and proxies to it, which is how several agents share one
|
|
22
|
+
# Studio.
|
|
23
|
+
- insert:
|
|
24
|
+
- id: mcp-rbx-studio
|
|
25
|
+
name: '@deepseek-ai/dsh-mcp-client'
|
|
26
|
+
config:
|
|
27
|
+
# Fixes the tool prefix at `mcp__rbx-studio__`. Deliberately not left to
|
|
28
|
+
# the server's own reported name: dsh treats that as untrusted, and a
|
|
29
|
+
# rename would silently invalidate every permission rule and every
|
|
30
|
+
# session history entry that referred to these tools.
|
|
31
|
+
serverName: rbx-studio
|
|
32
|
+
transport: stdio
|
|
33
|
+
command: npx
|
|
34
|
+
args: ['-y', '@el4cteo/rbx-studio-mcp']
|
|
35
|
+
env: {}
|
|
36
|
+
# The place dsh was started from. The bridge itself does not care, but
|
|
37
|
+
# the tools report paths relative to it.
|
|
38
|
+
cwd: !!js process.cwd()
|
|
39
|
+
# Screenshots and script reads are the big payloads here, and a slow
|
|
40
|
+
# Studio round trip on a large place can outrun a shorter budget.
|
|
41
|
+
toolCallTimeoutMs: 60000
|
|
42
|
+
# A missing Studio is not a reason to refuse to start. The tools simply
|
|
43
|
+
# answer NO_STUDIO until the editor is open, which is a better first
|
|
44
|
+
# session than a harness that will not boot.
|
|
45
|
+
failOnStartupError: false
|
package/package.json
CHANGED
|
@@ -1,68 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@el4cteo/rbx-studio-mcp",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "MCP server for Roblox Studio. 31 tools, push-based SSE bridge, editor-safe script edits, one-step undo.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"bin": {
|
|
8
|
-
"rbx-studio-mcp": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist",
|
|
12
|
-
"plugin",
|
|
13
|
-
"scripts",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@el4cteo/rbx-studio-mcp",
|
|
3
|
+
"version": "0.5.9",
|
|
4
|
+
"description": "MCP server for Roblox Studio. 31 tools, push-based SSE bridge, editor-safe script edits, one-step undo.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"bin": {
|
|
8
|
+
"rbx-studio-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"plugin",
|
|
13
|
+
"scripts",
|
|
14
|
+
"config/dsh.cordis.yml",
|
|
15
|
+
"README.md",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
18
|
+
"dsh": {
|
|
19
|
+
"bundle": {
|
|
20
|
+
"patch": "./config/dsh.cordis.yml"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=22.15"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"watch": "tsc --watch",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"start": "node dist/index.js",
|
|
31
|
+
"build:plugin": "node scripts/check-plugin.mjs && node scripts/build-plugin.mjs",
|
|
32
|
+
"sourcemap": "node scripts/sourcemap.mjs",
|
|
33
|
+
"test": "node scripts/test-plugin.mjs && node scripts/test-transport.mjs && node scripts/test-bridge.mjs && node scripts/test-console.mjs && node scripts/test-failover.mjs",
|
|
34
|
+
"build:all": "npm run build && npm run build:plugin",
|
|
35
|
+
"install:plugin": "node scripts/install-plugin.mjs",
|
|
36
|
+
"check:plugin": "node scripts/check-plugin.mjs",
|
|
37
|
+
"doctor": "node dist/index.js doctor",
|
|
38
|
+
"prepack": "npm run build"
|
|
39
|
+
},
|
|
40
|
+
"keywords": [
|
|
41
|
+
"mcp",
|
|
42
|
+
"mcp-server",
|
|
43
|
+
"model-context-protocol",
|
|
44
|
+
"roblox",
|
|
45
|
+
"roblox-studio",
|
|
46
|
+
"roblox-development",
|
|
47
|
+
"luau",
|
|
48
|
+
"claude",
|
|
49
|
+
"claude-code",
|
|
50
|
+
"cursor",
|
|
51
|
+
"ai",
|
|
52
|
+
"ai-agent"
|
|
53
|
+
],
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
56
|
+
"zod": "^4.6.2"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/node": "^26.5.1",
|
|
60
|
+
"typescript": "^7.0.2"
|
|
61
|
+
},
|
|
62
|
+
"author": "EL4CTEO",
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "git+https://github.com/EL4CTEO/rbx-studio-mcp.git"
|
|
66
|
+
},
|
|
67
|
+
"homepage": "https://github.com/EL4CTEO/rbx-studio-mcp#readme",
|
|
68
|
+
"bugs": {
|
|
69
|
+
"url": "https://github.com/EL4CTEO/rbx-studio-mcp/issues"
|
|
70
|
+
},
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"access": "public"
|
|
73
|
+
}
|
|
74
|
+
}
|