@rolexjs/mcp-server 0.12.0-dev-20260228075317 → 0.12.0-dev-20260302040425

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
@@ -10,21 +10,6 @@ import { z } from "zod";
10
10
  import { world } from "rolexjs";
11
11
  var instructions = Object.values(world).join("\n\n");
12
12
 
13
- // src/render.ts
14
- import { describe, hint, renderState } from "rolexjs";
15
- function render(opts) {
16
- const { process, name, result, cognitiveHint, fold } = opts;
17
- const lines = [];
18
- lines.push(describe(process, name, result.state));
19
- lines.push(hint(process));
20
- if (cognitiveHint) {
21
- lines.push(`I \u2192 ${cognitiveHint}`);
22
- }
23
- lines.push("");
24
- lines.push(renderState(result.state, 1, fold ? { fold } : void 0));
25
- return lines.join("\n");
26
- }
27
-
28
13
  // src/state.ts
29
14
  var McpState = class {
30
15
  role = null;
@@ -47,14 +32,6 @@ var server = new FastMCP({
47
32
  version: "0.12.0",
48
33
  instructions
49
34
  });
50
- function fmt(process, label, result) {
51
- return render({
52
- process,
53
- name: label,
54
- result,
55
- cognitiveHint: result.hint ?? null
56
- });
57
- }
58
35
  server.addTool({
59
36
  name: "activate",
60
37
  description: detail("activate"),
@@ -65,15 +42,7 @@ server.addTool({
65
42
  try {
66
43
  const role = await rolex.activate(roleId);
67
44
  state.role = role;
68
- const result = role.project();
69
- const focusedGoalId = role.ctx.focusedGoalId;
70
- return render({
71
- process: "activate",
72
- name: roleId,
73
- result,
74
- cognitiveHint: result.hint ?? null,
75
- fold: (node) => node.name === "goal" && node.id !== focusedGoalId
76
- });
45
+ return role.project();
77
46
  } catch {
78
47
  const census = await rolex.direct("!census.list");
79
48
  throw new Error(
@@ -93,9 +62,7 @@ server.addTool({
93
62
  id: z.string().optional().describe("Goal id to switch to. Omit to view current.")
94
63
  }),
95
64
  execute: async ({ id }) => {
96
- const role = state.requireRole();
97
- const result = role.focus(id);
98
- return fmt("focus", id ?? "current goal", result);
65
+ return state.requireRole().focus(id);
99
66
  }
100
67
  });
101
68
  server.addTool({
@@ -106,9 +73,7 @@ server.addTool({
106
73
  goal: z.string().describe("Gherkin Feature source describing the goal")
107
74
  }),
108
75
  execute: async ({ id, goal }) => {
109
- const role = state.requireRole();
110
- const result = role.want(goal, id);
111
- return fmt("want", id, result);
76
+ return state.requireRole().want(goal, id);
112
77
  }
113
78
  });
114
79
  server.addTool({
@@ -121,9 +86,7 @@ server.addTool({
121
86
  fallback: z.string().optional().describe("Plan id this plan is a backup for (alternative/strategy relationship)")
122
87
  }),
123
88
  execute: async ({ id, plan, after, fallback }) => {
124
- const role = state.requireRole();
125
- const result = role.plan(plan, id, after, fallback);
126
- return fmt("plan", id, result);
89
+ return state.requireRole().plan(plan, id, after, fallback);
127
90
  }
128
91
  });
129
92
  server.addTool({
@@ -134,9 +97,7 @@ server.addTool({
134
97
  task: z.string().describe("Gherkin Feature source describing the task")
135
98
  }),
136
99
  execute: async ({ id, task }) => {
137
- const role = state.requireRole();
138
- const result = role.todo(task, id);
139
- return fmt("todo", id, result);
100
+ return state.requireRole().todo(task, id);
140
101
  }
141
102
  });
142
103
  server.addTool({
@@ -147,9 +108,7 @@ server.addTool({
147
108
  encounter: z.string().optional().describe("Optional Gherkin Feature describing what happened")
148
109
  }),
149
110
  execute: async ({ id, encounter }) => {
150
- const role = state.requireRole();
151
- const result = role.finish(id, encounter);
152
- return fmt("finish", id, result);
111
+ return state.requireRole().finish(id, encounter);
153
112
  }
154
113
  });
155
114
  server.addTool({
@@ -160,9 +119,7 @@ server.addTool({
160
119
  encounter: z.string().optional().describe("Optional Gherkin Feature describing what happened")
161
120
  }),
162
121
  execute: async ({ id, encounter }) => {
163
- const role = state.requireRole();
164
- const result = role.complete(id, encounter);
165
- return fmt("complete", id ?? "focused plan", result);
122
+ return state.requireRole().complete(id, encounter);
166
123
  }
167
124
  });
168
125
  server.addTool({
@@ -173,9 +130,7 @@ server.addTool({
173
130
  encounter: z.string().optional().describe("Optional Gherkin Feature describing what happened")
174
131
  }),
175
132
  execute: async ({ id, encounter }) => {
176
- const role = state.requireRole();
177
- const result = role.abandon(id, encounter);
178
- return fmt("abandon", id ?? "focused plan", result);
133
+ return state.requireRole().abandon(id, encounter);
179
134
  }
180
135
  });
181
136
  server.addTool({
@@ -187,9 +142,7 @@ server.addTool({
187
142
  experience: z.string().optional().describe("Gherkin Feature source for the experience")
188
143
  }),
189
144
  execute: async ({ ids, id, experience }) => {
190
- const role = state.requireRole();
191
- const result = role.reflect(ids[0] ?? void 0, experience, id);
192
- return fmt("reflect", id, result);
145
+ return state.requireRole().reflect(ids[0] ?? void 0, experience, id);
193
146
  }
194
147
  });
195
148
  server.addTool({
@@ -201,9 +154,7 @@ server.addTool({
201
154
  principle: z.string().optional().describe("Gherkin Feature source for the principle")
202
155
  }),
203
156
  execute: async ({ ids, id, principle }) => {
204
- const role = state.requireRole();
205
- const result = role.realize(ids[0] ?? void 0, principle, id);
206
- return fmt("realize", id, result);
157
+ return state.requireRole().realize(ids[0] ?? void 0, principle, id);
207
158
  }
208
159
  });
209
160
  server.addTool({
@@ -215,9 +166,7 @@ server.addTool({
215
166
  procedure: z.string().describe("Gherkin Feature source for the procedure")
216
167
  }),
217
168
  execute: async ({ ids, id, procedure }) => {
218
- const role = state.requireRole();
219
- const result = role.master(procedure, id, ids?.[0]);
220
- return fmt("master", id, result);
169
+ return state.requireRole().master(procedure, id, ids?.[0]);
221
170
  }
222
171
  });
223
172
  server.addTool({
@@ -227,9 +176,7 @@ server.addTool({
227
176
  id: z.string().describe("Id of the node to remove (principle, procedure, experience, encounter, etc.)")
228
177
  }),
229
178
  execute: async ({ id }) => {
230
- const role = state.requireRole();
231
- const result = role.forget(id);
232
- return fmt("forget", id, result);
179
+ return state.requireRole().forget(id);
233
180
  }
234
181
  });
235
182
  server.addTool({
@@ -239,8 +186,7 @@ server.addTool({
239
186
  locator: z.string().describe("ResourceX locator for the skill (e.g. deepractice/role-management)")
240
187
  }),
241
188
  execute: async ({ locator }) => {
242
- const role = state.requireRole();
243
- return role.skill(locator);
189
+ return state.requireRole().skill(locator);
244
190
  }
245
191
  });
246
192
  server.addTool({
@@ -253,8 +199,7 @@ server.addTool({
253
199
  args: z.record(z.unknown()).optional().describe("Named arguments for the command or resource")
254
200
  }),
255
201
  execute: async ({ locator, args }) => {
256
- const role = state.requireRole();
257
- const result = await role.use(locator, args);
202
+ const result = await state.requireRole().use(locator, args);
258
203
  if (result == null) return `${locator} done.`;
259
204
  if (typeof result === "string") return result;
260
205
  return JSON.stringify(result, null, 2);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/instructions.ts","../src/render.ts","../src/state.ts"],"sourcesContent":["/**\n * @rolexjs/mcp-server — individual-level MCP tools.\n *\n * Thin wrapper around the Rolex API. All business logic (state tracking,\n * cognitive hints, encounter/experience registries) lives in Role + RoleContext.\n * MCP only translates protocol calls to API calls.\n */\n\nimport { localPlatform } from \"@rolexjs/local-platform\";\nimport { FastMCP } from \"fastmcp\";\nimport { createRoleX, detail } from \"rolexjs\";\n\nimport { z } from \"zod\";\nimport { instructions } from \"./instructions.js\";\nimport { render } from \"./render.js\";\nimport { McpState } from \"./state.js\";\n\n// ========== Setup ==========\n\nconst rolex = 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// ========== Helpers ==========\n\nfunction fmt(\n process: string,\n label: string,\n result: { state: any; process: string; hint?: string }\n) {\n return render({\n process,\n name: label,\n result,\n cognitiveHint: result.hint ?? null,\n });\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 const result = role.project();\n const focusedGoalId = role.ctx.focusedGoalId;\n return render({\n process: \"activate\",\n name: roleId,\n result,\n cognitiveHint: result.hint ?? null,\n fold: (node) => node.name === \"goal\" && node.id !== focusedGoalId,\n });\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 const role = state.requireRole();\n const result = role.focus(id);\n return fmt(\"focus\", id ?? \"current goal\", result);\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 const role = state.requireRole();\n const result = role.want(goal, id);\n return fmt(\"want\", id, result);\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 const role = state.requireRole();\n const result = role.plan(plan, id, after, fallback);\n return fmt(\"plan\", id, result);\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 const role = state.requireRole();\n const result = role.todo(task, id);\n return fmt(\"todo\", id, result);\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 const role = state.requireRole();\n const result = role.finish(id, encounter);\n return fmt(\"finish\", id, result);\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 const role = state.requireRole();\n const result = role.complete(id, encounter);\n return fmt(\"complete\", id ?? \"focused plan\", result);\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 const role = state.requireRole();\n const result = role.abandon(id, encounter);\n return fmt(\"abandon\", id ?? \"focused plan\", result);\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 const role = state.requireRole();\n const result = role.reflect(ids[0] ?? undefined, experience, id);\n return fmt(\"reflect\", id, result);\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 const role = state.requireRole();\n const result = role.realize(ids[0] ?? undefined, principle, id);\n return fmt(\"realize\", id, result);\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 const role = state.requireRole();\n const result = role.master(procedure, id, ids?.[0]);\n return fmt(\"master\", id, result);\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 const role = state.requireRole();\n const result = role.forget(id);\n return fmt(\"forget\", id, result);\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 const role = state.requireRole();\n return role.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 role = state.requireRole();\n const result = await role.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 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 * Render — 3-layer output for MCP tool results.\n *\n * Layer 1: Status — what just happened (describe)\n * Layer 2: Hint — what to do next (hint)\n * Layer 3: Projection — full state tree as markdown (renderState)\n *\n * MCP and CLI share describe() + hint() + renderState() from rolexjs.\n * Relations are rendered per-node via bidirectional links — no separate layer needed.\n */\nimport type { RenderStateOptions, RolexResult } from \"rolexjs\";\nimport { describe, hint, renderState } from \"rolexjs\";\n\n// ================================================================\n// Public API\n// ================================================================\n\nexport interface RenderOptions {\n /** The process that was executed. */\n process: string;\n /** Display name for the primary node. */\n name: string;\n /** Result from the Rolex API. */\n result: RolexResult;\n /** AI cognitive hint — first-person, state-aware self-direction cue. */\n cognitiveHint?: string | null;\n /** Fold predicate — folded nodes render heading only. */\n fold?: RenderStateOptions[\"fold\"];\n}\n\n/** Render a full 3-layer output string. */\nexport function render(opts: RenderOptions): string {\n const { process, name, result, cognitiveHint, fold } = opts;\n const lines: string[] = [];\n\n // Layer 1: Status\n lines.push(describe(process, name, result.state));\n\n // Layer 2: Hint (static) + Cognitive hint (state-aware)\n lines.push(hint(process));\n if (cognitiveHint) {\n lines.push(`I → ${cognitiveHint}`);\n }\n\n // Layer 3: Projection — generic markdown rendering of the full state tree\n lines.push(\"\");\n lines.push(renderState(result.state, 1, fold ? { fold } : undefined));\n\n return lines.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 } from \"rolexjs\";\n\nimport { z } from \"zod\";\nimport { instructions } from \"./instructions.js\";\nimport { McpState } from \"./state.js\";\n\n// ========== Setup ==========\n\nconst rolex = 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 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 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 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 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 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 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 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 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 state.requireRole().reflect(ids[0] ?? undefined, 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 state.requireRole().realize(ids[0] ?? undefined, 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 state.requireRole().master(procedure, id, ids?.[0]);\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 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 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 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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolexjs/mcp-server",
3
- "version": "0.12.0-dev-20260228075317",
3
+ "version": "0.12.0-dev-20260302040425",
4
4
  "description": "MCP server for Rolex — expose RDD role management as MCP tools",
5
5
  "keywords": [
6
6
  "rolex",
@@ -41,9 +41,9 @@
41
41
  "clean": "rm -rf dist"
42
42
  },
43
43
  "dependencies": {
44
- "rolexjs": "0.12.0-dev-20260228075317",
45
- "@rolexjs/local-platform": "0.12.0-dev-20260228075317",
46
- "@rolexjs/genesis": "0.12.0-dev-20260228075317",
44
+ "rolexjs": "0.12.0-dev-20260302040425",
45
+ "@rolexjs/local-platform": "0.12.0-dev-20260302040425",
46
+ "@rolexjs/genesis": "0.12.0-dev-20260302040425",
47
47
  "fastmcp": "^3.0.0",
48
48
  "zod": "^3.25.0"
49
49
  },