roblox-mcp-pro 0.2.2 → 0.2.4

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/dist/index.js CHANGED
@@ -16,6 +16,7 @@ import { BRIDGE_HOST, BRIDGE_PORT } from "./constants.js";
16
16
  import { resolveLicense } from "./licensing/license.js";
17
17
  import { installLicenseGate } from "./licensing/gate.js";
18
18
  import { installPlugin, ensurePluginInstalled } from "./install-plugin.js";
19
+ import { ensureSkillsInstalled } from "./install-skills.js";
19
20
  import { VERSION } from "./version.js";
20
21
  function log(message) {
21
22
  process.stderr.write(`[roblox-mcp-pro] ${message}\n`);
@@ -43,6 +44,13 @@ async function main() {
43
44
  log(`updated Studio plugin → restart Roblox Studio to load the new version`);
44
45
  }
45
46
  }
47
+ // Keep agent skills up to date for skill-capable clients (Claude Code, Codex).
48
+ if (process.env.ROBLOX_MCP_NO_SKILL_AUTOINSTALL !== "1") {
49
+ const skills = await ensureSkillsInstalled();
50
+ if (skills.changed > 0) {
51
+ log(`installed/updated ${skills.changed} agent skill file(s)`);
52
+ }
53
+ }
46
54
  const server = new McpServer({
47
55
  name: "roblox-studio-mcp-server",
48
56
  version: "0.1.0",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Agent-skill distribution. The product skills (guides that teach an agent how
3
+ * to drive the tools well) ship inside this npm package. On server startup we
4
+ * copy them into the skill folders of any skill-capable client present on the
5
+ * machine, so a customer gets them with zero effort, the same way the Studio
6
+ * plugin self-installs.
7
+ *
8
+ * Only Claude Code (~/.claude/skills) and Codex (~/.codex/skills) have a skills
9
+ * mechanism today; other clients still work, just without the extra guidance.
10
+ */
11
+ export interface SkillSyncResult {
12
+ /** Number of skill files newly written or updated. */
13
+ changed: number;
14
+ /** Skill-capable clients that received skills. */
15
+ clients: number;
16
+ }
17
+ /**
18
+ * Copy bundled skills into each present skill-capable client, writing only when
19
+ * a file is missing or different. Best-effort: never throws.
20
+ */
21
+ export declare function ensureSkillsInstalled(): Promise<SkillSyncResult>;
22
+ //# sourceMappingURL=install-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsCH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAiCtE"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Agent-skill distribution. The product skills (guides that teach an agent how
3
+ * to drive the tools well) ship inside this npm package. On server startup we
4
+ * copy them into the skill folders of any skill-capable client present on the
5
+ * machine, so a customer gets them with zero effort, the same way the Studio
6
+ * plugin self-installs.
7
+ *
8
+ * Only Claude Code (~/.claude/skills) and Codex (~/.codex/skills) have a skills
9
+ * mechanism today; other clients still work, just without the extra guidance.
10
+ */
11
+ import os from "node:os";
12
+ import path from "node:path";
13
+ import { fileURLToPath } from "node:url";
14
+ import { promises as fs } from "node:fs";
15
+ /** Product skills bundled in the package (must match package.json `files`). */
16
+ const SKILLS = [
17
+ "roblox-mcp-pro",
18
+ "roblox-studio-plugin",
19
+ "roblox-ui-animation",
20
+ "roblox-ui-from-image",
21
+ ];
22
+ /** Skill-capable clients: parent dir that must exist → its skills/ root. */
23
+ function skillTargets() {
24
+ const h = os.homedir();
25
+ return [
26
+ { parent: path.join(h, ".claude"), skillsDir: path.join(h, ".claude", "skills") },
27
+ { parent: path.join(h, ".codex"), skillsDir: path.join(h, ".codex", "skills") },
28
+ ];
29
+ }
30
+ function skillsSourceDir() {
31
+ // dist/install-skills.js → ../.agents/skills (package root; shipped by npm).
32
+ const here = path.dirname(fileURLToPath(import.meta.url));
33
+ return path.join(here, "..", ".agents", "skills");
34
+ }
35
+ async function readIfPresent(p) {
36
+ try {
37
+ return await fs.readFile(p);
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ /**
44
+ * Copy bundled skills into each present skill-capable client, writing only when
45
+ * a file is missing or different. Best-effort: never throws.
46
+ */
47
+ export async function ensureSkillsInstalled() {
48
+ const result = { changed: 0, clients: 0 };
49
+ const sourceDir = skillsSourceDir();
50
+ for (const target of skillTargets()) {
51
+ try {
52
+ // Only act on clients that are actually installed.
53
+ await fs.access(target.parent);
54
+ }
55
+ catch {
56
+ continue;
57
+ }
58
+ result.clients++;
59
+ for (const skill of SKILLS) {
60
+ try {
61
+ const src = path.join(sourceDir, skill, "SKILL.md");
62
+ const source = await readIfPresent(src);
63
+ if (!source)
64
+ continue; // skill not in package; skip quietly
65
+ const destDir = path.join(target.skillsDir, skill);
66
+ const dest = path.join(destDir, "SKILL.md");
67
+ const existing = await readIfPresent(dest);
68
+ if (existing && existing.equals(source))
69
+ continue;
70
+ await fs.mkdir(destDir, { recursive: true });
71
+ await fs.writeFile(dest, source);
72
+ result.changed++;
73
+ }
74
+ catch {
75
+ // Skip this skill on error; keep going.
76
+ }
77
+ }
78
+ }
79
+ return result;
80
+ }
81
+ //# sourceMappingURL=install-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-skills.js","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,10 @@
2
2
  * Reusable Zod fragments shared across tool schemas.
3
3
  */
4
4
  import { z } from "zod";
5
- import { ResponseFormat } from "../types.js";
6
5
  /** A dotted instance path rooted at `game`, e.g. "game.Workspace.Baseplate". */
7
6
  export declare const InstancePath: z.ZodString;
8
7
  /** A 3-number [x, y, z] vector. */
9
8
  export declare const Vec3: z.ZodArray<z.ZodNumber, "many">;
10
- /** Output format selector (markdown for humans, json for machines). */
11
- export declare const responseFormat: z.ZodDefault<z.ZodNativeEnum<typeof ResponseFormat>>;
12
9
  /** Standard pagination fragment. */
13
10
  export declare const pagination: {
14
11
  limit: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,gFAAgF;AAChF,eAAO,MAAM,YAAY,aAOtB,CAAC;AAEJ,mCAAmC;AACnC,eAAO,MAAM,IAAI,iCAG0B,CAAC;AAE5C,uEAAuE;AACvE,eAAO,MAAM,cAAc,sDAKxB,CAAC;AAEJ,oCAAoC;AACpC,eAAO,MAAM,UAAU;;;CActB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,eAAO,MAAM,YAAY,aAOtB,CAAC;AAEJ,mCAAmC;AACnC,eAAO,MAAM,IAAI,iCAG0B,CAAC;AAE5C,oCAAoC;AACpC,eAAO,MAAM,UAAU;;;CActB,CAAC"}
@@ -2,7 +2,6 @@
2
2
  * Reusable Zod fragments shared across tool schemas.
3
3
  */
4
4
  import { z } from "zod";
5
- import { ResponseFormat } from "../types.js";
6
5
  /** A dotted instance path rooted at `game`, e.g. "game.Workspace.Baseplate". */
7
6
  export const InstancePath = z
8
7
  .string()
@@ -15,11 +14,6 @@ export const Vec3 = z
15
14
  .array(z.number())
16
15
  .length(3)
17
16
  .describe("A 3-number [x, y, z] vector.");
18
- /** Output format selector (markdown for humans, json for machines). */
19
- export const responseFormat = z
20
- .nativeEnum(ResponseFormat)
21
- .default(ResponseFormat.MARKDOWN)
22
- .describe("Output format: 'markdown' for human-readable text or 'json' for machine-readable.");
23
17
  /** Standard pagination fragment. */
24
18
  export const pagination = {
25
19
  limit: z
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;KAChC,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;KAC/C,QAAQ,CACP,2EAA2E;IACzE,2BAA2B,CAC9B,CAAC;AAEJ,mCAAmC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAClB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC;KACT,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE5C,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,UAAU,CAAC,cAAc,CAAC;KAC1B,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;KAChC,QAAQ,CACP,mFAAmF,CACpF,CAAC;AAEJ,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,2DAA2D,CAAC;IACxE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;KAChC,GAAG,CAAC,GAAG,EAAE,qCAAqC,CAAC;KAC/C,QAAQ,CACP,2EAA2E;IACzE,2BAA2B,CAC9B,CAAC;AAEJ,mCAAmC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAClB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC;KACT,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE5C,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,2DAA2D,CAAC;IACxE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -35,11 +35,6 @@ export interface BridgeStatus {
35
35
  inflight: number;
36
36
  lastPollAt: number | null;
37
37
  }
38
- /** Output format shared by many tools. */
39
- export declare enum ResponseFormat {
40
- MARKDOWN = "markdown",
41
- JSON = "json"
42
- }
43
38
  /** A change event pushed from Studio -> server (used by sync). */
44
39
  export interface StudioEvent {
45
40
  /** Event kind, e.g. "added" | "removing" | "changed". */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uEAAuE;AACvE,MAAM,WAAW,OAAO;IACtB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,0CAA0C;AAC1C,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uEAAuE;AACvE,MAAM,WAAW,OAAO;IACtB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
package/dist/types.js CHANGED
@@ -1,10 +1,5 @@
1
1
  /**
2
2
  * Core type definitions shared across the MCP server and the Studio bridge.
3
3
  */
4
- /** Output format shared by many tools. */
5
- export var ResponseFormat;
6
- (function (ResponseFormat) {
7
- ResponseFormat["MARKDOWN"] = "markdown";
8
- ResponseFormat["JSON"] = "json";
9
- })(ResponseFormat || (ResponseFormat = {}));
4
+ export {};
10
5
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuCH,0CAA0C;AAC1C,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roblox-mcp-pro",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "MCP server that lets AI agents control Roblox Studio: live Luau execution, instance query/mutate, UI/terrain/lighting, and bidirectional Studio<->local sync. Paid subscription with a free trial.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Peerapol",
@@ -32,6 +32,10 @@
32
32
  "plugin/src",
33
33
  "plugin/default.project.json",
34
34
  "plugin/RobloxMcpPro.rbxmx",
35
+ ".agents/skills/roblox-mcp-pro",
36
+ ".agents/skills/roblox-studio-plugin",
37
+ ".agents/skills/roblox-ui-animation",
38
+ ".agents/skills/roblox-ui-from-image",
35
39
  "README.md",
36
40
  "LICENSE"
37
41
  ],