@rotifer/mcp-server 0.13.0 → 0.15.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.
package/README.md CHANGED
@@ -238,12 +238,17 @@ to what a given integration actually needs — useful when the server is attache
238
238
  to an assistant that should not be able to publish or log in on your behalf:
239
239
 
240
240
  ```bash
241
- ROTIFER_MCP_TOOLS=evolve # the rank-and-swap preset (10 tools)
242
- ROTIFER_MCP_TOOLS=readonly # nothing that writes (14 tools)
241
+ npx @rotifer/mcp-server --tools=evolve # the rank-and-swap preset (10 tools)
242
+ npx @rotifer/mcp-server --tools=readonly # nothing that writes (14 tools)
243
243
  ROTIFER_MCP_TOOLS=search_genes,get_gene_detail # an exact list
244
244
  ROTIFER_MCP_TOOLS=evolve,vg_scan # a preset plus one
245
245
  ```
246
246
 
247
+ The flag and the variable do the same thing, and the flag wins if both are set.
248
+ Both exist because callers differ in what they can reach: a shell user sets the
249
+ variable, while something launching this server from a manifest controls only
250
+ the command line.
251
+
247
252
  Tools outside the set disappear from `listTools` and are refused if called
248
253
  anyway. The refusal says how to add the tool back and, where one exists, the
249
254
  `rotifer` CLI command that does the same job — so a narrowed set is a boundary
@@ -251,6 +256,32 @@ you can see and cross deliberately, not a dead end.
251
256
 
252
257
  Leave it unset and nothing changes.
253
258
 
259
+ ### Switching off the sandbox
260
+
261
+ `agent_run` and `run_gene` take `no_sandbox`, and `run_gene` also takes
262
+ `trust_unsigned` — options that run Gene code as plain Node.js instead of inside
263
+ the WASM sandbox. Narrowing the tool set would mean little if a tool inside the
264
+ narrowed set could still do that, so these are refused unless declared at
265
+ launch:
266
+
267
+ ```bash
268
+ npx @rotifer/mcp-server --allow=no-sandbox
269
+ npx @rotifer/mcp-server --allow=no-sandbox,trust-unsigned
270
+ ROTIFER_MCP_ALLOW=no-sandbox # same thing
271
+ ```
272
+
273
+ Nothing is removed. The option moves from "any caller can set it" to "someone
274
+ declared it at launch", and you can always do it yourself:
275
+
276
+ ```bash
277
+ rotifer agent run <name> --no-sandbox
278
+ rotifer run <gene> --trust-unsigned
279
+ ```
280
+
281
+ What changes is that an assistant can no longer decide to unsandbox on its own.
282
+ Passing `no_sandbox: false` is asking for the safe behaviour and is never
283
+ refused.
284
+
254
285
  ### Undoing an install
255
286
 
256
287
  `install_gene` with `force` used to overwrite a Gene with no way back. It now
package/dist/server.js CHANGED
@@ -3,7 +3,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourceTemplatesReq
3
3
  import { searchGenes, getGeneDetail, arenaRankings, compareGenes, geneStats, leaderboard, developerProfile, listLocalGenes, listLocalAgents, submitToArena, installGeneFromCloud, rollbackGene, createLocalAgent, agentRun, compileGene, runGene, initGene, scanGenes, wrapGene, testGene, publishGene, authStatus, login, logout, geneVersions, mcpStats, geneReputation, myReputation, domainSuggestion, vgScan, doctor } from "./tools.js";
4
4
  import { getGeneStatsRpc, getReputationLeaderboard, getDeveloperProfile, getGene, logMcpCall, logGeneInvocation } from "./cloud.js";
5
5
  import { loadCredentials } from "./auth.js";
6
- import { resolveToolSet, unavailableToolMessage } from "./tool-sets.js";
6
+ import { resolveToolSet, unavailableToolMessage, resolveAllowList, blockedEscapeHatches, escapeHatchMessage } from "./tool-sets.js";
7
7
  import { getPackageVersion, getVersionInfo, formatUpdateHint } from "./version.js";
8
8
  const ICON_DATA_URI = "data:image/png;base64,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";
9
9
  export function createServer() {
@@ -21,6 +21,7 @@ export function createServer() {
21
21
  // Declared once per process: the set cannot change while the server runs,
22
22
  // and ListTools must agree with what CallTool will actually accept.
23
23
  const allowedTools = resolveToolSet();
24
+ const allowedHatches = resolveAllowList();
24
25
  const ALL_TOOLS = [
25
26
  {
26
27
  name: "search_genes",
@@ -213,7 +214,7 @@ export function createServer() {
213
214
  project_root: { type: "string", description: "Project root path" },
214
215
  input: { type: "string", description: "Input data to pass to the agent (JSON string)" },
215
216
  verbose: { type: "boolean", description: "Show intermediate results for each gene step" },
216
- no_sandbox: { type: "boolean", description: "Force Node.js execution, skip WASM sandbox" },
217
+ no_sandbox: { type: "boolean", description: "Force Node.js execution, skip WASM sandbox. Refused unless the server was launched with --allow=no-sandbox." },
217
218
  },
218
219
  required: ["agent_name"],
219
220
  },
@@ -256,8 +257,8 @@ export function createServer() {
256
257
  project_root: { type: "string", description: "Project root path" },
257
258
  input: { type: "string", description: "Input JSON data to pass to the gene" },
258
259
  verbose: { type: "boolean", description: "Show detailed execution output (default: false)" },
259
- no_sandbox: { type: "boolean", description: "Run without WASM sandbox, Node.js only (default: false)" },
260
- trust_unsigned: { type: "boolean", description: "Allow Node.js execution for Cloud-installed genes (default: false)" },
260
+ no_sandbox: { type: "boolean", description: "Run without WASM sandbox, Node.js only (default: false). Refused unless the server was launched with --allow=no-sandbox." },
261
+ trust_unsigned: { type: "boolean", description: "Allow Node.js execution for Cloud-installed genes (default: false). Refused unless the server was launched with --allow=trust-unsigned." },
261
262
  },
262
263
  required: ["gene_name"],
263
264
  },
@@ -472,6 +473,13 @@ export function createServer() {
472
473
  if (allowedTools && !allowedTools.has(name)) {
473
474
  throw new McpError(ErrorCode.MethodNotFound, unavailableToolMessage(name, allowedTools));
474
475
  }
476
+ // Narrowing the tool set does not help if a tool inside it can switch off
477
+ // the sandbox. Unlike the set, this applies whether or not one is declared:
478
+ // an escape hatch is a property of the option, not of who is asking.
479
+ const blocked = blockedEscapeHatches(name, args, allowedHatches);
480
+ if (blocked.length) {
481
+ throw new McpError(ErrorCode.InvalidParams, escapeHatchMessage(blocked));
482
+ }
475
483
  try {
476
484
  let result;
477
485
  switch (name) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -11,19 +11,49 @@
11
11
  * names, or both mixed. Unset means every tool, so nothing changes for anyone
12
12
  * who does not opt in:
13
13
  *
14
- * ROTIFER_MCP_TOOLS=evolve the preset
15
- * ROTIFER_MCP_TOOLS=search_genes,get_gene_detail an exact pair
14
+ * --tools=evolve the preset
15
+ * --tools=search_genes,get_gene_detail an exact pair
16
16
  * ROTIFER_MCP_TOOLS=evolve,vg_scan a preset plus one
17
17
  *
18
+ * Both spellings exist because callers differ in what they can set: a shell
19
+ * user reaches for the variable, while a manifest that launches this server
20
+ * controls argv and nothing else. The flag wins when both are present.
21
+ *
18
22
  * A list rather than a fixed profile flag on purpose: rotifer.ai's Web Studio
19
23
  * will want a different set than a marketplace Skill, and a Cursor user wants
20
24
  * all of them. Presets that turn out to be common can be added here; a caller
21
25
  * with an unusual need does not have to wait for one.
22
26
  */
23
27
  export declare const PRESETS: Record<string, readonly string[]>;
28
+ /** Escape hatches declared at launch, by option name. */
29
+ export declare function resolveAllowList(declaration?: string | undefined): Set<string>;
30
+ export declare function allowListFromArgv(argv?: readonly string[]): string | undefined;
31
+ /**
32
+ * Which declared-off escape hatches a call is trying to use.
33
+ *
34
+ * Only arguments that are actually truthy count: passing `no_sandbox: false`
35
+ * is asking for the safe behaviour and must not be refused.
36
+ */
37
+ export declare function blockedEscapeHatches(toolName: string, args: Record<string, unknown> | undefined, allowed: Set<string>): string[];
38
+ /** Why an escape hatch is unavailable, and how to get it — same shape as a refused tool. */
39
+ export declare function escapeHatchMessage(options: string[]): string;
40
+ /**
41
+ * Read `--tools=<set>` or `--tools <set>` from a launch command line.
42
+ *
43
+ * The environment variable alone is not enough. Callers that launch this server
44
+ * from a manifest — a ClawHub Skill among them — control the argv and not the
45
+ * environment: ClawHub's schema has an `env` field, but it declares which
46
+ * variables a Skill *requires*, with no way to give one a value. A restriction
47
+ * that the one caller it was built for cannot switch on would be a restriction
48
+ * in name only.
49
+ */
50
+ export declare function toolSetFromArgv(argv?: readonly string[]): string | undefined;
24
51
  /**
25
52
  * Resolve the declared set, or null when every tool is allowed.
26
53
  *
54
+ * The command line wins over the environment: it is the more specific of the
55
+ * two, and it is what a manifest can actually set.
56
+ *
27
57
  * Unknown names are ignored rather than fatal: a typo should cost you one tool,
28
58
  * not the whole server, and a set written for a newer version should still work
29
59
  * against an older one.
package/dist/tool-sets.js CHANGED
@@ -11,10 +11,14 @@
11
11
  * names, or both mixed. Unset means every tool, so nothing changes for anyone
12
12
  * who does not opt in:
13
13
  *
14
- * ROTIFER_MCP_TOOLS=evolve the preset
15
- * ROTIFER_MCP_TOOLS=search_genes,get_gene_detail an exact pair
14
+ * --tools=evolve the preset
15
+ * --tools=search_genes,get_gene_detail an exact pair
16
16
  * ROTIFER_MCP_TOOLS=evolve,vg_scan a preset plus one
17
17
  *
18
+ * Both spellings exist because callers differ in what they can set: a shell
19
+ * user reaches for the variable, while a manifest that launches this server
20
+ * controls argv and nothing else. The flag wins when both are present.
21
+ *
18
22
  * A list rather than a fixed profile flag on purpose: rotifer.ai's Web Studio
19
23
  * will want a different set than a marketplace Skill, and a Cursor user wants
20
24
  * all of them. Presets that turn out to be common can be added here; a caller
@@ -77,14 +81,116 @@ const CLI_EQUIVALENT = {
77
81
  get_gene_reputation: "rotifer reputation",
78
82
  doctor: "rotifer doctor",
79
83
  };
84
+ /**
85
+ * Options that switch off a safety property rather than choose a behaviour.
86
+ *
87
+ * Narrowing the tool set is not enough on its own. `agent_run` is in the
88
+ * `evolve` preset because the Skill runs agents, and it takes `no_sandbox` —
89
+ * a plain boolean that drops third-party Gene code out of the WASM sandbox and
90
+ * into plain Node. Ten tools with an escape hatch in one of them is not ten
91
+ * tools. `run_gene` carries the same option plus `trust_unsigned`, which does
92
+ * it specifically for code installed from the marketplace.
93
+ *
94
+ * These are not removed. They are moved from "any caller can set this" to
95
+ * "someone declared this at launch", which is the same rule the tool set
96
+ * follows, and the person at the keyboard can always run the CLI themselves.
97
+ * What changes is that an assistant can no longer decide to unsandbox on its
98
+ * own.
99
+ */
100
+ const ESCAPE_HATCHES = {
101
+ no_sandbox: {
102
+ flag: "no-sandbox",
103
+ tools: ["agent_run", "run_gene"],
104
+ cli: "rotifer agent run <name> --no-sandbox (or: rotifer run <gene> --no-sandbox)",
105
+ what: "runs Gene code as plain Node.js instead of inside the WASM sandbox",
106
+ },
107
+ trust_unsigned: {
108
+ flag: "trust-unsigned",
109
+ tools: ["run_gene"],
110
+ cli: "rotifer run <gene> --trust-unsigned",
111
+ what: "allows unsandboxed Node.js execution of Genes installed from the marketplace",
112
+ },
113
+ };
114
+ /** Escape hatches declared at launch, by option name. */
115
+ export function resolveAllowList(declaration = allowListFromArgv() ?? process.env.ROTIFER_MCP_ALLOW) {
116
+ const raw = (declaration || "").trim();
117
+ if (!raw)
118
+ return new Set();
119
+ const byFlag = new Map(Object.entries(ESCAPE_HATCHES).map(([option, spec]) => [spec.flag, option]));
120
+ const allowed = new Set();
121
+ for (const token of raw.split(",").map((t) => t.trim()).filter(Boolean)) {
122
+ // Accept either spelling — the flag as written on the command line, or the
123
+ // option name as it appears in the tool schema.
124
+ const option = byFlag.get(token) ?? (token in ESCAPE_HATCHES ? token : null);
125
+ if (option)
126
+ allowed.add(option);
127
+ }
128
+ return allowed;
129
+ }
130
+ export function allowListFromArgv(argv = process.argv.slice(2)) {
131
+ for (let i = 0; i < argv.length; i++) {
132
+ const arg = argv[i];
133
+ if (arg.startsWith("--allow="))
134
+ return arg.slice("--allow=".length);
135
+ if (arg === "--allow")
136
+ return argv[i + 1];
137
+ }
138
+ return undefined;
139
+ }
140
+ /**
141
+ * Which declared-off escape hatches a call is trying to use.
142
+ *
143
+ * Only arguments that are actually truthy count: passing `no_sandbox: false`
144
+ * is asking for the safe behaviour and must not be refused.
145
+ */
146
+ export function blockedEscapeHatches(toolName, args, allowed) {
147
+ if (!args)
148
+ return [];
149
+ return Object.entries(ESCAPE_HATCHES)
150
+ .filter(([option, spec]) => spec.tools.includes(toolName) && args[option] === true && !allowed.has(option))
151
+ .map(([option]) => option);
152
+ }
153
+ /** Why an escape hatch is unavailable, and how to get it — same shape as a refused tool. */
154
+ export function escapeHatchMessage(options) {
155
+ const lines = [];
156
+ for (const option of options) {
157
+ const spec = ESCAPE_HATCHES[option];
158
+ lines.push(`'${option}' is not enabled on this server. It ${spec.what}.`, "", "This is a restriction, not a missing feature. To enable it:", ` • at launch: --allow=${spec.flag} (or ROTIFER_MCP_ALLOW=${spec.flag})`, ` • or run it yourself: ${spec.cli}`, "");
159
+ }
160
+ lines.push("Retry without it to run inside the sandbox.");
161
+ return lines.join("\n");
162
+ }
163
+ /**
164
+ * Read `--tools=<set>` or `--tools <set>` from a launch command line.
165
+ *
166
+ * The environment variable alone is not enough. Callers that launch this server
167
+ * from a manifest — a ClawHub Skill among them — control the argv and not the
168
+ * environment: ClawHub's schema has an `env` field, but it declares which
169
+ * variables a Skill *requires*, with no way to give one a value. A restriction
170
+ * that the one caller it was built for cannot switch on would be a restriction
171
+ * in name only.
172
+ */
173
+ export function toolSetFromArgv(argv = process.argv.slice(2)) {
174
+ for (let i = 0; i < argv.length; i++) {
175
+ const arg = argv[i];
176
+ if (arg.startsWith("--tools="))
177
+ return arg.slice("--tools=".length);
178
+ if (arg === "--tools")
179
+ return argv[i + 1];
180
+ }
181
+ return undefined;
182
+ }
80
183
  /**
81
184
  * Resolve the declared set, or null when every tool is allowed.
82
185
  *
186
+ * The command line wins over the environment: it is the more specific of the
187
+ * two, and it is what a manifest can actually set.
188
+ *
83
189
  * Unknown names are ignored rather than fatal: a typo should cost you one tool,
84
190
  * not the whole server, and a set written for a newer version should still work
85
191
  * against an older one.
86
192
  */
87
- export function resolveToolSet(declaration = process.env.ROTIFER_MCP_TOOLS) {
193
+ export function resolveToolSet(declaration = toolSetFromArgv() ?? process.env.ROTIFER_MCP_TOOLS) {
88
194
  const raw = (declaration || "").trim();
89
195
  if (!raw)
90
196
  return null;
@@ -113,8 +219,8 @@ export function unavailableToolMessage(name, allowed) {
113
219
  `Available here: ${[...allowed].sort().join(", ")}.`,
114
220
  "",
115
221
  "This is a restriction, not a missing feature. To lift it:",
116
- ` • add it: ROTIFER_MCP_TOOLS="$ROTIFER_MCP_TOOLS,${name}"`,
117
- " • or allow all: unset ROTIFER_MCP_TOOLS",
222
+ ` • add it: --tools=<current set>,${name} (or ROTIFER_MCP_TOOLS)`,
223
+ " • or allow all: drop --tools / unset ROTIFER_MCP_TOOLS",
118
224
  ];
119
225
  const cli = CLI_EQUIVALENT[name];
120
226
  if (cli) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-sets.js","sourceRoot":"","sources":["../src/tool-sets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-sets.js","sourceRoot":"","sources":["../src/tool-sets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotifer/mcp-server",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "mcpName": "io.github.rotifer-protocol/mcp-server",
5
5
  "description": "Rotifer MCP Server — AI agents search, compare, and rank Genes (modular AI skills) from a living ecosystem of 50+ capabilities. Zero config.",
6
6
  "type": "module",