@el4cteo/rbx-studio-mcp 0.7.8 → 0.8.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.
Files changed (50) hide show
  1. package/README.md +175 -175
  2. package/dist/bridge/harness.js +14 -5
  3. package/dist/bridge/harness.js.map +1 -1
  4. package/dist/index.js +5 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/apidump.js +38 -23
  7. package/dist/lib/apidump.js.map +1 -1
  8. package/dist/lib/format.js +43 -4
  9. package/dist/lib/format.js.map +1 -1
  10. package/dist/lib/pluginbuild.js +10 -0
  11. package/dist/lib/pluginbuild.js.map +1 -1
  12. package/dist/lib/png.js +104 -0
  13. package/dist/lib/png.js.map +1 -1
  14. package/dist/resources.js +3 -2
  15. package/dist/resources.js.map +1 -1
  16. package/dist/tools/api.js +4 -3
  17. package/dist/tools/api.js.map +1 -1
  18. package/dist/tools/debug.js +2 -2
  19. package/dist/tools/debug.js.map +1 -1
  20. package/dist/tools/device.js +2 -2
  21. package/dist/tools/device.js.map +1 -1
  22. package/dist/tools/discover.js +7 -3
  23. package/dist/tools/discover.js.map +1 -1
  24. package/dist/tools/exec.js +4 -4
  25. package/dist/tools/exec.js.map +1 -1
  26. package/dist/tools/instances.js +32 -7
  27. package/dist/tools/instances.js.map +1 -1
  28. package/dist/tools/screenshot.js +55 -11
  29. package/dist/tools/screenshot.js.map +1 -1
  30. package/dist/tools/scripts.js +4 -4
  31. package/dist/tools/scripts.js.map +1 -1
  32. package/dist/tools/terrain.js +3 -3
  33. package/dist/tools/terrain.js.map +1 -1
  34. package/dist/tools/world.js +8 -8
  35. package/dist/tools/world.js.map +1 -1
  36. package/package.json +75 -75
  37. package/plugin/src/Config.luau +1 -1
  38. package/plugin/src/LogBuffer.luau +7 -0
  39. package/plugin/src/Paths.luau +15 -4
  40. package/plugin/src/Phrase.luau +1 -20
  41. package/plugin/src/ScriptEdit.luau +14 -0
  42. package/plugin/src/Serialize.luau +17 -0
  43. package/plugin/src/TextEdit.luau +6 -0
  44. package/plugin/src/handlers/Api.luau +8 -0
  45. package/plugin/src/handlers/Capture.luau +219 -3
  46. package/plugin/src/init.server.luau +0 -2
  47. package/scripts/test-tools.mjs +259 -216
  48. package/dist/tools/anim.js +0 -159
  49. package/dist/tools/anim.js.map +0 -1
  50. package/plugin/src/handlers/Anim.luau +0 -897
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { grantAssets, publishPlace, uploadAsset } from "../lib/cloudassets.js";
3
3
  import { ToolError } from "../lib/errors.js";
4
- import { json, table, text, textOf } from "../lib/format.js";
4
+ import { errorText, json, table, text, textOf } from "../lib/format.js";
5
5
  import { assetQuotas, restartServers } from "../lib/liveops.js";
6
6
  import { requireCredentials, requirePlace, requireUniverse } from "../lib/opencloud.js";
7
7
  import { defineTool } from "../lib/tool.js";
@@ -289,14 +289,14 @@ export function registerWorldTools(context) {
289
289
  if (args.op === "mirror") {
290
290
  const paths = args.paths ?? (args.path !== undefined ? [args.path] : []);
291
291
  if (paths.length === 0) {
292
- return text("mirror needs `paths` — the instances to flip.");
292
+ return errorText("mirror needs `paths` — the instances to flip.");
293
293
  }
294
294
  return json(await bridge.call("geometry.mirror", { paths, axis: args.axis, about: args.about, copy: args.copy }, { studioId: args.studioId, timeoutMs: 60_000 }));
295
295
  }
296
296
  if (args.op === "mesh") {
297
297
  const paths = args.paths ?? (args.path !== undefined ? [args.path] : []);
298
298
  if (paths.length === 0) {
299
- return text('mesh needs `paths` — the MeshParts to read, e.g. ["Workspace.Tree"].');
299
+ return errorText('mesh needs `paths` — the MeshParts to read, e.g. ["Workspace.Tree"].');
300
300
  }
301
301
  const read = await bridge.call("geometry.mesh", { paths },
302
302
  // Each part is a separate download-and-open, so a batch of twenty is
@@ -608,7 +608,7 @@ export function registerWorldTools(context) {
608
608
  }, async (args) => {
609
609
  if (args.op === "peek") {
610
610
  if (!args.assetId)
611
- return text("peek needs an `assetId`.");
611
+ return errorText("peek needs an `assetId`.");
612
612
  const inside = await bridge.call("assets.peek", { assetId: args.assetId }, { studioId: args.studioId, timeoutMs: 60_000 });
613
613
  const lines = [
614
614
  `Asset ${inside.assetId}: ${inside.descendants} instances, nothing inserted.`,
@@ -626,7 +626,7 @@ export function registerWorldTools(context) {
626
626
  }
627
627
  if (args.op === "search" && args.category === "audio") {
628
628
  if (!args.keyword)
629
- return text("search needs a `keyword`.");
629
+ return errorText("search needs a `keyword`.");
630
630
  const found = await bridge.call("assets.audio", {
631
631
  keyword: args.keyword,
632
632
  limit: args.limit,
@@ -650,7 +650,7 @@ export function registerWorldTools(context) {
650
650
  }
651
651
  if (args.op === "search") {
652
652
  if (!args.keyword)
653
- return text("search needs a `keyword`.");
653
+ return errorText("search needs a `keyword`.");
654
654
  const found = await searchCreatorStore(args.keyword, args.category, args.limit, {
655
655
  excludeScripts: args.excludeScripts,
656
656
  maxTriangles: args.maxTriangles,
@@ -818,7 +818,7 @@ export function registerWorldTools(context) {
818
818
  }
819
819
  if (args.op === "bake") {
820
820
  if (!args.paths || args.paths.length === 0) {
821
- return text("bake needs `paths` — the MeshParts or models to convert.");
821
+ return errorText("bake needs `paths` — the MeshParts or models to convert.");
822
822
  }
823
823
  const baked = await bridge.call("assets.bake", { paths: args.paths },
824
824
  // One conversion per mesh, each a round trip through the engine.
@@ -844,7 +844,7 @@ export function registerWorldTools(context) {
844
844
  return text(lines.join("\n"));
845
845
  }
846
846
  if (!args.assetId)
847
- return text("insert needs an `assetId`. Use `op: \"search\"` to find one.");
847
+ return errorText("insert needs an `assetId`. Use `op: \"search\"` to find one.");
848
848
  const response = await bridge.call("assets.insert", {
849
849
  assetId: args.assetId,
850
850
  parent: args.parent,
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/tools/world.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/tools/world.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,75 +1,75 @@
1
- {
2
- "name": "@el4cteo/rbx-studio-mcp",
3
- "version": "0.7.8",
4
- "description": "MCP server for Roblox Studio. 35 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:live": "node scripts/test-live.mjs",
34
- "test": "node scripts/test-plugin.mjs && node scripts/test-transport.mjs && node scripts/test-server.mjs && node scripts/test-bridge.mjs && node scripts/test-console.mjs && node scripts/test-failover.mjs && node scripts/test-tools.mjs",
35
- "build:all": "npm run build && npm run build:plugin",
36
- "install:plugin": "node scripts/install-plugin.mjs",
37
- "check:plugin": "node scripts/check-plugin.mjs",
38
- "doctor": "node dist/index.js doctor",
39
- "prepack": "npm run build"
40
- },
41
- "keywords": [
42
- "mcp",
43
- "mcp-server",
44
- "model-context-protocol",
45
- "roblox",
46
- "roblox-studio",
47
- "roblox-development",
48
- "luau",
49
- "claude",
50
- "claude-code",
51
- "cursor",
52
- "ai",
53
- "ai-agent"
54
- ],
55
- "dependencies": {
56
- "@modelcontextprotocol/sdk": "^1.30.0",
57
- "zod": "^4.6.5"
58
- },
59
- "devDependencies": {
60
- "@types/node": "^26.6.2",
61
- "typescript": "^7.0.2"
62
- },
63
- "author": "EL4CTEO",
64
- "repository": {
65
- "type": "git",
66
- "url": "git+https://github.com/EL4CTEO/rbx-studio-mcp.git"
67
- },
68
- "homepage": "https://github.com/EL4CTEO/rbx-studio-mcp#readme",
69
- "bugs": {
70
- "url": "https://github.com/EL4CTEO/rbx-studio-mcp/issues"
71
- },
72
- "publishConfig": {
73
- "access": "public"
74
- }
75
- }
1
+ {
2
+ "name": "@el4cteo/rbx-studio-mcp",
3
+ "version": "0.8.0",
4
+ "description": "MCP server for Roblox Studio. 34 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:live": "node scripts/test-live.mjs",
34
+ "test": "node scripts/test-plugin.mjs && node scripts/test-transport.mjs && node scripts/test-server.mjs && node scripts/test-bridge.mjs && node scripts/test-console.mjs && node scripts/test-failover.mjs && node scripts/test-tools.mjs",
35
+ "build:all": "npm run build && npm run build:plugin",
36
+ "install:plugin": "node scripts/install-plugin.mjs",
37
+ "check:plugin": "node scripts/check-plugin.mjs",
38
+ "doctor": "node dist/index.js doctor",
39
+ "prepack": "npm run build"
40
+ },
41
+ "keywords": [
42
+ "mcp",
43
+ "mcp-server",
44
+ "model-context-protocol",
45
+ "roblox",
46
+ "roblox-studio",
47
+ "roblox-development",
48
+ "luau",
49
+ "claude",
50
+ "claude-code",
51
+ "cursor",
52
+ "ai",
53
+ "ai-agent"
54
+ ],
55
+ "dependencies": {
56
+ "@modelcontextprotocol/sdk": "^1.30.1",
57
+ "zod": "^4.6.5"
58
+ },
59
+ "devDependencies": {
60
+ "@types/node": "^26.6.2",
61
+ "typescript": "^7.0.2"
62
+ },
63
+ "author": "EL4CTEO",
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "git+https://github.com/EL4CTEO/rbx-studio-mcp.git"
67
+ },
68
+ "homepage": "https://github.com/EL4CTEO/rbx-studio-mcp#readme",
69
+ "bugs": {
70
+ "url": "https://github.com/EL4CTEO/rbx-studio-mcp/issues"
71
+ },
72
+ "publishConfig": {
73
+ "access": "public"
74
+ }
75
+ }
@@ -9,7 +9,7 @@
9
9
 
10
10
  local Config = {}
11
11
 
12
- Config.PLUGIN_VERSION = "0.7.8"
12
+ Config.PLUGIN_VERSION = "0.8.0"
13
13
 
14
14
  -- Fingerprint of plugin/src, stamped in by scripts/build-plugin.mjs. The server
15
15
  -- computes the same hash from its own copy of the sources and compares, so a
@@ -107,6 +107,13 @@ end
107
107
  -- Each player gets a separate stream and token. Rejoining, reconnecting to a
108
108
  -- different server DataModel, or a plugin reload invalidates old cursors.
109
109
  function LogBuffer.startClient(player: Player)
110
+ -- A relay reinstalled after a respawn is the same player in the same session:
111
+ -- keep its log and cursor. Only a player that left (stopClient) starts fresh.
112
+ local existing = clientBuffers[player]
113
+ if existing then
114
+ existing.ready = false
115
+ return
116
+ end
110
117
  clientBuffers[player] = { token = HttpService:GenerateGUID(false), entries = {}, dropped = 0, sequence = 0, startedAt = os.time(), ready = false, orphan = {} }
111
118
  end
112
119
 
@@ -147,13 +147,19 @@ local function childBySegment(
147
147
 
148
148
  if ordinal then
149
149
  local list = childrenByName(parent, nil)[name]
150
- if list == nil then
151
- return nil, nil
152
- end
153
- local child = list[ordinal]
150
+ local child = if list then list[ordinal] else nil
154
151
  if child then
155
152
  return child, nil
156
153
  end
154
+ -- Not an index after all: a child literally named "x[1]". Typed by hand,
155
+ -- or from a path emitted before `Paths.of` began marking such names.
156
+ local literal = parent:FindFirstChild(segment)
157
+ if literal then
158
+ return literal, nil
159
+ end
160
+ if list == nil then
161
+ return nil, nil
162
+ end
157
163
  return nil,
158
164
  string.format(
159
165
  '"%s" has %d child%s named "%s", so [%d] is past the end. Indexes are '
@@ -343,6 +349,11 @@ function Paths.of(instance: Instance, memo: NameIndex?): string
343
349
  while current ~= nil and current ~= game do
344
350
  local node = current :: Instance
345
351
  local ordinal = siblingIndex(node, memo)
352
+ -- A name that itself ends in "[n]" would read back as an index into a
353
+ -- shorter name. An explicit index keeps it literal: "x[1][1]".
354
+ if ordinal == nil and string.match(node.Name, "%[%d+%]$") then
355
+ ordinal = 1
356
+ end
346
357
  table.insert(
347
358
  segments,
348
359
  1,
@@ -566,29 +566,11 @@ local DESCRIBERS: { [string]: Describer } = {
566
566
 
567
567
  --[[
568
568
  Everything below was added after the first pass over this table, and each
569
- one spent time showing as the fallback -- "Anim preview", "Data set",
569
+ one spent time showing as the fallback -- "Data set",
570
570
  "Terrain fill". That form is honest but says nothing about the subject,
571
571
  which is the whole point of this module: the panel is watched to see WHAT
572
572
  an agent is touching, and 26 of 72 operations were declining to say.
573
573
  ]]
574
- ["anim.read"] = function(params)
575
- local name = leaf(params.assetId)
576
- return if name ~= nil then "Read the animation " .. name else "Read an animation"
577
- end,
578
- ["anim.build"] = function(params)
579
- local frames = count(params.keyframes)
580
- return string.format("Build an animation from %s", plural(frames, "keyframe"))
581
- end,
582
- ["anim.preview"] = function(params)
583
- local rig = leaf(params.rig) or "a rig"
584
- if params.op == "stop" then
585
- return "Clear the pose on " .. rig
586
- end
587
- local at = tonumber(params.at)
588
- return if at ~= nil
589
- then string.format("Pose %s at %.2fs", rig, at)
590
- else "Pose " .. rig
591
- end,
592
574
 
593
575
  ["data.list"] = function(params)
594
576
  local store = params.store
@@ -771,7 +753,6 @@ local KINDS: { [string]: string } = {
771
753
  ]]
772
754
  terrain = "write",
773
755
  generate = "write",
774
- anim = "write",
775
756
  data = "write",
776
757
  }
777
758
 
@@ -67,6 +67,20 @@ local function confirm(target: LuaSourceContainer, produced: string?)
67
67
  return
68
68
  end
69
69
 
70
+ --[[
71
+ No document, no race. The overwrite comes from an editor tab that was
72
+ loading while we wrote; a tab opened afterwards loads the new source. So
73
+ a script nobody has open is confirmed by one read, instead of paying the
74
+ settle -- which cost every written script 200ms, one after another, on
75
+ every script_edit and script_create.
76
+ ]]
77
+ local found, document = pcall(function()
78
+ return ScriptEditorService:FindScriptDocument(target)
79
+ end)
80
+ if found and document == nil and ScriptEdit.read(target) == produced then
81
+ return
82
+ end
83
+
70
84
  -- Three rounds: the race is with one load, so a single rewrite settles it,
71
85
  -- and a script that discards three identical writes is failing for a reason
72
86
  -- repeating will not fix.
@@ -403,6 +403,11 @@ function Serialize.parse(text: any, valueType: string): (boolean, any, string?)
403
403
  return true, Vector2.new(numbers[1], numbers[2]), nil
404
404
  end
405
405
  if valueType == "Color3" then
406
+ -- "#FF8800", the way colours are usually written everywhere else.
407
+ local hex = if kind == "string" then string.match(text, "^%s*#(%x%x%x%x%x%x)%s*$") else nil
408
+ if hex then
409
+ return true, Color3.fromHex(hex), nil
410
+ end
406
411
  if #numbers < 3 then
407
412
  return false, nil, 'expected three 0-1 components, e.g. "1, 0.5, 0"'
408
413
  end
@@ -435,6 +440,18 @@ function Serialize.parse(text: any, valueType: string): (boolean, any, string?)
435
440
  return true, UDim.new(numbers[1], numbers[2]), nil
436
441
  end
437
442
  if valueType == "CFrame" then
443
+ -- Twelve numbers are a full matrix -- what `tostring(cframe)` prints. Read
444
+ -- as "position | rotation" they gave a silently wrong orientation.
445
+ if #numbers == 12 then
446
+ return true,
447
+ CFrame.new(
448
+ numbers[1], numbers[2], numbers[3],
449
+ numbers[4], numbers[5], numbers[6],
450
+ numbers[7], numbers[8], numbers[9],
451
+ numbers[10], numbers[11], numbers[12]
452
+ ),
453
+ nil
454
+ end
438
455
  if #numbers >= 6 then
439
456
  return true,
440
457
  CFrame.new(numbers[1], numbers[2], numbers[3])
@@ -263,6 +263,12 @@ function TextEdit.apply(path: string, source: string, edits: { Edit }): string
263
263
  end
264
264
 
265
265
  local text = table.concat(lines, "\n")
266
+ -- `toLines` drops the final newline, so it is put back here. Without this
267
+ -- every edit -- even a find/replace in the middle -- stripped it silently,
268
+ -- and a `find` that included it could never match.
269
+ if string.sub(source, -1) == "\n" and #lines > 0 then
270
+ text ..= "\n"
271
+ end
266
272
 
267
273
  for _, edit in findEdits do
268
274
  local needle = edit.find :: string
@@ -122,6 +122,14 @@ local function collect(entries: { any }, className: string, wantInherited: boole
122
122
  deprecated += 1
123
123
  continue
124
124
  end
125
+ -- No permits at all means no script can touch it: Part's old `shap` and
126
+ -- `shape` aliases, or engine-only calls like GetPhysicsCost. The engine
127
+ -- does not flag those as deprecated, so they are held back here too.
128
+ local permits = if typeof(entry) == "table" then (entry :: any).Permits else nil
129
+ if typeof(permits) == "table" and next(permits) == nil then
130
+ deprecated += 1
131
+ continue
132
+ end
125
133
  local own = typeof(entry) ~= "table" or tostring((entry :: any).Owner) == className
126
134
  if not own then
127
135
  inherited += 1