@rolexjs/mcp-server 1.6.0 → 1.6.2

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
@@ -20,12 +20,21 @@ var McpState = class {
20
20
  };
21
21
 
22
22
  // src/index.ts
23
- var rolex = await createRoleX(
24
- localPlatform({
25
- bootstrap: ["npm:@rolexjs/genesis"]
26
- })
27
- );
28
- await rolex.genesis();
23
+ var rolex;
24
+ var initPromise = null;
25
+ function ensureInit() {
26
+ if (!initPromise) {
27
+ initPromise = (async () => {
28
+ rolex = await createRoleX(
29
+ localPlatform({
30
+ bootstrap: ["npm:@rolexjs/genesis"]
31
+ })
32
+ );
33
+ await rolex.genesis();
34
+ })();
35
+ }
36
+ return initPromise;
37
+ }
29
38
  var state = new McpState();
30
39
  var server = new FastMCP({
31
40
  name: "rolex",
@@ -39,6 +48,7 @@ server.addTool({
39
48
  roleId: z.string().describe("Role name to activate")
40
49
  }),
41
50
  execute: async ({ roleId }) => {
51
+ await ensureInit();
42
52
  try {
43
53
  const role = await rolex.activate(roleId);
44
54
  state.role = role;
@@ -215,6 +225,7 @@ server.addTool({
215
225
  args: z.record(z.unknown()).optional().describe("Named arguments for the command or resource")
216
226
  }),
217
227
  execute: async ({ locator, args }) => {
228
+ await ensureInit();
218
229
  const result = await rolex.direct(locator, args);
219
230
  if (result == null) return `${locator} done.`;
220
231
  if (typeof result === "string") return result;
@@ -226,6 +237,30 @@ server.addTool({
226
237
  return JSON.stringify(result, null, 2);
227
238
  }
228
239
  });
240
+ server.addResource({
241
+ uri: "rolex://noop",
242
+ name: "_noop",
243
+ description: "",
244
+ async load() {
245
+ return { text: "" };
246
+ }
247
+ });
248
+ server.addResourceTemplate({
249
+ uriTemplate: "rolex://noop/{id}",
250
+ name: "_noop_tpl",
251
+ description: "",
252
+ arguments: [{ name: "id", description: "", required: false }],
253
+ async load() {
254
+ return { text: "" };
255
+ }
256
+ });
257
+ server.addPrompt({
258
+ name: "_noop",
259
+ description: "",
260
+ async load() {
261
+ return "";
262
+ }
263
+ });
229
264
  server.start({
230
265
  transportType: "stdio"
231
266
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/instructions.ts","../src/state.ts"],"sourcesContent":["/**\n * @rolexjs/mcp-server — individual-level MCP tools.\n *\n * Pure pass-through: all rendering happens in rolexjs.\n * MCP only translates protocol calls to API calls.\n */\n\nimport { localPlatform } from \"@rolexjs/local-platform\";\nimport { FastMCP } from \"fastmcp\";\nimport { createRoleX, detail, type ProjectAction, renderProjectResult, type State } from \"rolexjs\";\n\nimport { z } from \"zod\";\nimport { instructions } from \"./instructions.js\";\nimport { McpState } from \"./state.js\";\n\n// ========== Setup ==========\n\nconst rolex = await createRoleX(\n localPlatform({\n bootstrap: [\"npm:@rolexjs/genesis\"],\n })\n);\nawait rolex.genesis();\nconst state = new McpState();\n\n// ========== Server ==========\n\nconst server = new FastMCP({\n name: \"rolex\",\n version: \"0.12.0\",\n instructions,\n});\n\n// ========== Tools: Role ==========\n\nserver.addTool({\n name: \"activate\",\n description: detail(\"activate\"),\n parameters: z.object({\n roleId: z.string().describe(\"Role name to activate\"),\n }),\n execute: async ({ roleId }) => {\n try {\n const role = await rolex.activate(roleId);\n state.role = role;\n return await role.project();\n } catch {\n const census = await rolex.direct<string>(\"!census.list\");\n throw new Error(\n `\"${roleId}\" not found. Available:\\n\\n${census}\\n\\nTry again with the correct id or alias.`\n );\n }\n },\n});\n\nserver.addTool({\n name: \"focus\",\n description: detail(\"focus\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Goal id to switch to. Omit to view current.\"),\n }),\n execute: async ({ id }) => {\n return await state.requireRole().focus(id);\n },\n});\n\n// ========== Tools: Execution ==========\n\nserver.addTool({\n name: \"want\",\n description: detail(\"want\"),\n parameters: z.object({\n id: z.string().describe(\"Goal id (used for focus/reference)\"),\n goal: z.string().describe(\"Gherkin Feature source describing the goal\"),\n }),\n execute: async ({ id, goal }) => {\n return await state.requireRole().want(goal, id);\n },\n});\n\nserver.addTool({\n name: \"plan\",\n description: detail(\"plan\"),\n parameters: z.object({\n id: z.string().describe(\"Plan id — keywords from the plan content joined by hyphens\"),\n plan: z.string().describe(\"Gherkin Feature source describing the plan\"),\n after: z\n .string()\n .optional()\n .describe(\"Plan id this plan follows (sequential/phase relationship)\"),\n fallback: z\n .string()\n .optional()\n .describe(\"Plan id this plan is a backup for (alternative/strategy relationship)\"),\n }),\n execute: async ({ id, plan, after, fallback }) => {\n return await state.requireRole().plan(plan, id, after, fallback);\n },\n});\n\nserver.addTool({\n name: \"todo\",\n description: detail(\"todo\"),\n parameters: z.object({\n id: z.string().describe(\"Task id (used for finish/reference)\"),\n task: z.string().describe(\"Gherkin Feature source describing the task\"),\n }),\n execute: async ({ id, task }) => {\n return await state.requireRole().todo(task, id);\n },\n});\n\nserver.addTool({\n name: \"finish\",\n description: detail(\"finish\"),\n parameters: z.object({\n id: z.string().describe(\"Task id to finish\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().finish(id, encounter);\n },\n});\n\nserver.addTool({\n name: \"complete\",\n description: detail(\"complete\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Plan id to complete (defaults to focused plan)\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().complete(id, encounter);\n },\n});\n\nserver.addTool({\n name: \"abandon\",\n description: detail(\"abandon\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Plan id to abandon (defaults to focused plan)\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().abandon(id, encounter);\n },\n});\n\n// ========== Tools: Cognition ==========\n\nserver.addTool({\n name: \"reflect\",\n description: detail(\"reflect\"),\n parameters: z.object({\n ids: z.array(z.string()).describe(\"Encounter ids to reflect on (selective consumption)\"),\n id: z\n .string()\n .describe(\"Experience id — keywords from the experience content joined by hyphens\"),\n experience: z.string().optional().describe(\"Gherkin Feature source for the experience\"),\n }),\n execute: async ({ ids, id, experience }) => {\n return await state.requireRole().reflect(ids, experience, id);\n },\n});\n\nserver.addTool({\n name: \"realize\",\n description: detail(\"realize\"),\n parameters: z.object({\n ids: z.array(z.string()).describe(\"Experience ids to distill into a principle\"),\n id: z.string().describe(\"Principle id — keywords from the principle content joined by hyphens\"),\n principle: z.string().optional().describe(\"Gherkin Feature source for the principle\"),\n }),\n execute: async ({ ids, id, principle }) => {\n return await state.requireRole().realize(ids, principle, id);\n },\n});\n\nserver.addTool({\n name: \"master\",\n description: detail(\"master\"),\n parameters: z.object({\n ids: z.array(z.string()).optional().describe(\"Experience ids to distill into a procedure\"),\n id: z.string().describe(\"Procedure id — keywords from the procedure content joined by hyphens\"),\n procedure: z.string().describe(\"Gherkin Feature source for the procedure\"),\n }),\n execute: async ({ ids, id, procedure }) => {\n return await state.requireRole().master(procedure, id, ids);\n },\n});\n\n// ========== Tools: Knowledge management ==========\n\nserver.addTool({\n name: \"forget\",\n description: detail(\"forget\"),\n parameters: z.object({\n id: z\n .string()\n .describe(\"Id of the node to remove (principle, procedure, experience, encounter, etc.)\"),\n }),\n execute: async ({ id }) => {\n return await state.requireRole().forget(id);\n },\n});\n\n// ========== Tools: Skill loading ==========\n\nserver.addTool({\n name: \"skill\",\n description: detail(\"skill\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\"ResourceX locator for the skill (e.g. deepractice/role-management)\"),\n }),\n execute: async ({ locator }) => {\n return await state.requireRole().skill(locator);\n },\n});\n\n// ========== Tools: Use ==========\n\nserver.addTool({\n name: \"use\",\n description: detail(\"use\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\n \"Locator string. !namespace.method for RoleX commands, or a ResourceX locator for resources\"\n ),\n args: z.record(z.unknown()).optional().describe(\"Named arguments for the command or resource\"),\n }),\n execute: async ({ locator, args }) => {\n const result = await state.requireRole().use(locator, args);\n if (result == null) return `${locator} done.`;\n if (typeof result === \"string\") return result;\n return JSON.stringify(result, null, 2);\n },\n});\n\n// ========== Tools: Direct ==========\n\nserver.addTool({\n name: \"direct\",\n description: detail(\"direct\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\n \"Locator string. !namespace.method for RoleX commands, or a ResourceX locator for resources\"\n ),\n args: z.record(z.unknown()).optional().describe(\"Named arguments for the command or resource\"),\n }),\n execute: async ({ locator, args }) => {\n const result = await rolex.direct(locator, args);\n if (result == null) return `${locator} done.`;\n if (typeof result === \"string\") return result;\n // Render project results as readable text\n if (locator.startsWith(\"!project.\")) {\n const action = locator.slice(\"!project.\".length) as ProjectAction;\n const opResult = result as { state: State };\n return renderProjectResult(action, opResult.state);\n }\n return JSON.stringify(result, null, 2);\n },\n});\n\n// ========== Start ==========\n\nserver.start({\n transportType: \"stdio\",\n});\n","/**\n * MCP server instructions — the cognitive framework for AI roles.\n *\n * Assembled from world .feature files in rolexjs descriptions.\n * Each feature describes one independent concern of the RoleX framework.\n */\nimport { world } from \"rolexjs\";\n\nexport const instructions = Object.values(world).join(\"\\n\\n\");\n","/**\n * McpState — thin session holder for the MCP server.\n *\n * Holds the active Role handle. All business logic (state tracking,\n * cognitive hints, encounter/experience registries) lives in Role + RoleContext.\n */\nimport type { Role } from \"rolexjs\";\n\nexport class McpState {\n role: Role | null = null;\n\n requireRole(): Role {\n if (!this.role) throw new Error(\"No active role. Call activate first.\");\n return this.role;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/instructions.ts","../src/state.ts"],"sourcesContent":["/**\n * @rolexjs/mcp-server — individual-level MCP tools.\n *\n * Pure pass-through: all rendering happens in rolexjs.\n * MCP only translates protocol calls to API calls.\n */\n\nimport { localPlatform } from \"@rolexjs/local-platform\";\nimport { FastMCP } from \"fastmcp\";\nimport { createRoleX, detail, type ProjectAction, renderProjectResult, type State } from \"rolexjs\";\n\nimport { z } from \"zod\";\nimport { instructions } from \"./instructions.js\";\nimport { McpState } from \"./state.js\";\n\n// ========== Setup (lazy init — server must start before rolex bootstraps) ==========\n\nlet rolex: Awaited<ReturnType<typeof createRoleX>>;\nlet initPromise: Promise<void> | null = null;\n\nfunction ensureInit(): Promise<void> {\n if (!initPromise) {\n initPromise = (async () => {\n rolex = await createRoleX(\n localPlatform({\n bootstrap: [\"npm:@rolexjs/genesis\"],\n })\n );\n await rolex.genesis();\n })();\n }\n return initPromise;\n}\n\nconst state = new McpState();\n\n// ========== Server ==========\n\nconst server = new FastMCP({\n name: \"rolex\",\n version: \"0.12.0\",\n instructions,\n});\n\n// ========== Tools: Role ==========\n\nserver.addTool({\n name: \"activate\",\n description: detail(\"activate\"),\n parameters: z.object({\n roleId: z.string().describe(\"Role name to activate\"),\n }),\n execute: async ({ roleId }) => {\n await ensureInit();\n try {\n const role = await rolex.activate(roleId);\n state.role = role;\n return await role.project();\n } catch {\n const census = await rolex.direct<string>(\"!census.list\");\n throw new Error(\n `\"${roleId}\" not found. Available:\\n\\n${census}\\n\\nTry again with the correct id or alias.`\n );\n }\n },\n});\n\nserver.addTool({\n name: \"focus\",\n description: detail(\"focus\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Goal id to switch to. Omit to view current.\"),\n }),\n execute: async ({ id }) => {\n return await state.requireRole().focus(id);\n },\n});\n\n// ========== Tools: Execution ==========\n\nserver.addTool({\n name: \"want\",\n description: detail(\"want\"),\n parameters: z.object({\n id: z.string().describe(\"Goal id (used for focus/reference)\"),\n goal: z.string().describe(\"Gherkin Feature source describing the goal\"),\n }),\n execute: async ({ id, goal }) => {\n return await state.requireRole().want(goal, id);\n },\n});\n\nserver.addTool({\n name: \"plan\",\n description: detail(\"plan\"),\n parameters: z.object({\n id: z.string().describe(\"Plan id — keywords from the plan content joined by hyphens\"),\n plan: z.string().describe(\"Gherkin Feature source describing the plan\"),\n after: z\n .string()\n .optional()\n .describe(\"Plan id this plan follows (sequential/phase relationship)\"),\n fallback: z\n .string()\n .optional()\n .describe(\"Plan id this plan is a backup for (alternative/strategy relationship)\"),\n }),\n execute: async ({ id, plan, after, fallback }) => {\n return await state.requireRole().plan(plan, id, after, fallback);\n },\n});\n\nserver.addTool({\n name: \"todo\",\n description: detail(\"todo\"),\n parameters: z.object({\n id: z.string().describe(\"Task id (used for finish/reference)\"),\n task: z.string().describe(\"Gherkin Feature source describing the task\"),\n }),\n execute: async ({ id, task }) => {\n return await state.requireRole().todo(task, id);\n },\n});\n\nserver.addTool({\n name: \"finish\",\n description: detail(\"finish\"),\n parameters: z.object({\n id: z.string().describe(\"Task id to finish\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().finish(id, encounter);\n },\n});\n\nserver.addTool({\n name: \"complete\",\n description: detail(\"complete\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Plan id to complete (defaults to focused plan)\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().complete(id, encounter);\n },\n});\n\nserver.addTool({\n name: \"abandon\",\n description: detail(\"abandon\"),\n parameters: z.object({\n id: z.string().optional().describe(\"Plan id to abandon (defaults to focused plan)\"),\n encounter: z.string().optional().describe(\"Optional Gherkin Feature describing what happened\"),\n }),\n execute: async ({ id, encounter }) => {\n return await state.requireRole().abandon(id, encounter);\n },\n});\n\n// ========== Tools: Cognition ==========\n\nserver.addTool({\n name: \"reflect\",\n description: detail(\"reflect\"),\n parameters: z.object({\n ids: z.array(z.string()).describe(\"Encounter ids to reflect on (selective consumption)\"),\n id: z\n .string()\n .describe(\"Experience id — keywords from the experience content joined by hyphens\"),\n experience: z.string().optional().describe(\"Gherkin Feature source for the experience\"),\n }),\n execute: async ({ ids, id, experience }) => {\n return await state.requireRole().reflect(ids, experience, id);\n },\n});\n\nserver.addTool({\n name: \"realize\",\n description: detail(\"realize\"),\n parameters: z.object({\n ids: z.array(z.string()).describe(\"Experience ids to distill into a principle\"),\n id: z.string().describe(\"Principle id — keywords from the principle content joined by hyphens\"),\n principle: z.string().optional().describe(\"Gherkin Feature source for the principle\"),\n }),\n execute: async ({ ids, id, principle }) => {\n return await state.requireRole().realize(ids, principle, id);\n },\n});\n\nserver.addTool({\n name: \"master\",\n description: detail(\"master\"),\n parameters: z.object({\n ids: z.array(z.string()).optional().describe(\"Experience ids to distill into a procedure\"),\n id: z.string().describe(\"Procedure id — keywords from the procedure content joined by hyphens\"),\n procedure: z.string().describe(\"Gherkin Feature source for the procedure\"),\n }),\n execute: async ({ ids, id, procedure }) => {\n return await state.requireRole().master(procedure, id, ids);\n },\n});\n\n// ========== Tools: Knowledge management ==========\n\nserver.addTool({\n name: \"forget\",\n description: detail(\"forget\"),\n parameters: z.object({\n id: z\n .string()\n .describe(\"Id of the node to remove (principle, procedure, experience, encounter, etc.)\"),\n }),\n execute: async ({ id }) => {\n return await state.requireRole().forget(id);\n },\n});\n\n// ========== Tools: Skill loading ==========\n\nserver.addTool({\n name: \"skill\",\n description: detail(\"skill\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\"ResourceX locator for the skill (e.g. deepractice/role-management)\"),\n }),\n execute: async ({ locator }) => {\n return await state.requireRole().skill(locator);\n },\n});\n\n// ========== Tools: Use ==========\n\nserver.addTool({\n name: \"use\",\n description: detail(\"use\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\n \"Locator string. !namespace.method for RoleX commands, or a ResourceX locator for resources\"\n ),\n args: z.record(z.unknown()).optional().describe(\"Named arguments for the command or resource\"),\n }),\n execute: async ({ locator, args }) => {\n const result = await state.requireRole().use(locator, args);\n if (result == null) return `${locator} done.`;\n if (typeof result === \"string\") return result;\n return JSON.stringify(result, null, 2);\n },\n});\n\n// ========== Tools: Direct ==========\n\nserver.addTool({\n name: \"direct\",\n description: detail(\"direct\"),\n parameters: z.object({\n locator: z\n .string()\n .describe(\n \"Locator string. !namespace.method for RoleX commands, or a ResourceX locator for resources\"\n ),\n args: z.record(z.unknown()).optional().describe(\"Named arguments for the command or resource\"),\n }),\n execute: async ({ locator, args }) => {\n await ensureInit();\n const result = await rolex.direct(locator, args);\n if (result == null) return `${locator} done.`;\n if (typeof result === \"string\") return result;\n // Render project results as readable text\n if (locator.startsWith(\"!project.\")) {\n const action = locator.slice(\"!project.\".length) as ProjectAction;\n const opResult = result as { state: State };\n return renderProjectResult(action, opResult.state);\n }\n return JSON.stringify(result, null, 2);\n },\n});\n\n// ========== Compatibility: declare empty resources/prompts capabilities ==========\n// Some MCP clients (e.g. Antigravity) probe resources/list and prompts/list\n// after initialize. FastMCP only declares these capabilities when items exist.\n// Register a dummy resource then remove it — forces capability declaration.\n\nserver.addResource({\n uri: \"rolex://noop\",\n name: \"_noop\",\n description: \"\",\n async load() {\n return { text: \"\" };\n },\n});\n\nserver.addResourceTemplate({\n uriTemplate: \"rolex://noop/{id}\",\n name: \"_noop_tpl\",\n description: \"\",\n arguments: [{ name: \"id\", description: \"\", required: false }],\n async load() {\n return { text: \"\" };\n },\n});\n\nserver.addPrompt({\n name: \"_noop\",\n description: \"\",\n async load() {\n return \"\";\n },\n});\n\n// ========== Start ==========\n\nserver.start({\n transportType: \"stdio\",\n});\n","/**\n * MCP server instructions — the cognitive framework for AI roles.\n *\n * Assembled from world .feature files in rolexjs descriptions.\n * Each feature describes one independent concern of the RoleX framework.\n */\nimport { world } from \"rolexjs\";\n\nexport const instructions = Object.values(world).join(\"\\n\\n\");\n","/**\n * McpState — thin session holder for the MCP server.\n *\n * Holds the active Role handle. All business logic (state tracking,\n * cognitive hints, encounter/experience registries) lives in Role + RoleContext.\n */\nimport type { Role } from \"rolexjs\";\n\nexport class McpState {\n role: Role | null = null;\n\n requireRole(): Role {\n if (!this.role) throw new Error(\"No active role. Call activate first.\");\n return this.role;\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolexjs/mcp-server",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "MCP server for Rolex — expose RDD role management as MCP tools",
5
5
  "keywords": [
6
6
  "rolex",
@@ -41,10 +41,10 @@
41
41
  "clean": "rm -rf dist"
42
42
  },
43
43
  "dependencies": {
44
- "rolexjs": "~1.6.0",
45
- "@rolexjs/local-platform": "~1.6.0",
46
- "@rolexjs/genesis": "~1.6.0",
47
- "fastmcp": "^3.0.0",
44
+ "@rolexjs/genesis": "~1.6.2",
45
+ "@rolexjs/local-platform": "~1.6.2",
46
+ "fastmcp": "^3.34.0",
47
+ "rolexjs": "~1.6.2",
48
48
  "zod": "^3.25.0"
49
49
  },
50
50
  "devDependencies": {