@getmarrow/mcp 3.9.57 → 3.9.59

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.
@@ -1 +1 @@
1
- {"version":3,"file":"request-reliability.js","sourceRoot":"","sources":["../src/request-reliability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-reliability.js","sourceRoot":"","sources":["../src/request-reliability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getmarrow/mcp",
3
- "version": "3.9.57",
3
+ "version": "3.9.59",
4
4
  "mcpName": "io.github.getmarrow/marrow",
5
5
  "description": "Runtime control, proof, and fleet intelligence for MCP-compatible AI agents.",
6
6
  "bin": {
@@ -1,14 +1,9 @@
1
1
  #!/usr/bin/env node
2
- const { spawnSync } = require('node:child_process');
2
+ const { spawn } = require('node:child_process');
3
+ const { performance } = require('node:perf_hooks');
3
4
  const { resolve } = require('node:path');
4
5
  const { version: packageVersion } = require('../package.json');
5
6
 
6
- const key = process.env.MARROW_API_KEY || '';
7
- if (!key) {
8
- process.stderr.write('MARROW_API_KEY is required for the authenticated MCP control-path canary.\n');
9
- process.exit(2);
10
- }
11
-
12
7
  const cases = [
13
8
  ['marrow_status', {}],
14
9
  ['marrow_runtime_status', { fast: true }],
@@ -22,19 +17,36 @@ const cases = [
22
17
  ['marrow_fleet_lessons', { query: 'safe release verification', limit: 3 }],
23
18
  ];
24
19
 
25
- function boundedMs(name, fallback, minimum = 100, maximum = 10_000) {
26
- const parsed = Number(process.env[name] || fallback);
20
+ const HOT_PATH_TOOLS = new Set([
21
+ 'marrow_status',
22
+ 'marrow_runtime_status',
23
+ 'marrow_orient',
24
+ 'marrow_ask',
25
+ 'marrow_agent_runtime',
26
+ ]);
27
+ const OUTPUT_LIMIT_BYTES = 256 * 1024;
28
+
29
+ function boundedMs(name, fallback, minimum = 100, maximum = 10_000, env = process.env) {
30
+ const parsed = Number(env[name] || fallback);
27
31
  return Number.isFinite(parsed) ? Math.max(minimum, Math.min(maximum, Math.floor(parsed))) : fallback;
28
32
  }
29
33
 
30
- const transportTimeoutMs = boundedMs('MARROW_REQUEST_TIMEOUT_MS', 2_500, 250, 10_000);
31
- const processTimeoutMs = transportTimeoutMs + 3_000;
32
- const expectedVersion = process.env.MARROW_EXPECTED_MCP_VERSION || packageVersion;
33
- const ceilings = {
34
- marrow_status: boundedMs('MARROW_MCP_STATUS_CEILING_MS', 1_500),
35
- marrow_ask: boundedMs('MARROW_MCP_ASK_CEILING_MS', 1_000),
36
- marrow_agent_runtime: boundedMs('MARROW_MCP_RUNTIME_CEILING_MS', 750),
37
- };
34
+ function percentile(values, quantile) {
35
+ if (!values.length) return null;
36
+ const ordered = [...values].sort((a, b) => a - b);
37
+ return ordered[Math.max(0, Math.ceil(quantile * ordered.length) - 1)];
38
+ }
39
+
40
+ function latencyGroup(rows) {
41
+ const values = rows.map((row) => row.latency_ms);
42
+ return {
43
+ count: values.length,
44
+ p50_ms: percentile(values, 0.5),
45
+ p95_ms: percentile(values, 0.95),
46
+ p99_ms: percentile(values, 0.99),
47
+ max_ms: values.length ? Math.max(...values) : null,
48
+ };
49
+ }
38
50
 
39
51
  function toolPayload(message, name) {
40
52
  if (!message) throw new Error(`${name} returned no MCP tool response`);
@@ -95,72 +107,200 @@ function validatePayload(name, payload) {
95
107
  }
96
108
  }
97
109
 
98
- function runCase(name, args) {
99
- const input = [
100
- { jsonrpc: '2.0', id: 1, method: 'initialize', params: {} },
101
- { jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} },
102
- { jsonrpc: '2.0', id: 3, method: 'tools/call', params: { name, arguments: args } },
103
- ].map((row) => JSON.stringify(row)).join('\n') + '\n';
104
- const started = Date.now();
105
- const child = spawnSync(process.execPath, [resolve(__dirname, '../dist/cli.js')], {
106
- env: {
107
- ...process.env,
108
- MARROW_API_KEY: key,
109
- MARROW_BASE_URL: process.env.MARROW_BASE_URL || 'https://api.getmarrow.ai',
110
- MARROW_AUTO_ENROLL: 'false',
111
- MARROW_TOOL_PROFILE: 'full',
112
- MARROW_CONTROL_PATH_CANARY: '1',
113
- MARROW_REQUEST_TIMEOUT_MS: String(transportTimeoutMs),
114
- },
115
- input,
116
- encoding: 'utf8',
117
- timeout: processTimeoutMs,
118
- maxBuffer: 256 * 1024,
119
- });
120
- const latencyMs = Date.now() - started;
121
- if (child.error) {
122
- const code = child.error.code === 'ETIMEDOUT' ? 'process_timeout' : 'process_error';
123
- throw new Error(`${name} ${code}`);
110
+ class PersistentMcpClient {
111
+ constructor(input) {
112
+ this.command = input.command;
113
+ this.args = input.args;
114
+ this.env = input.env;
115
+ this.timeoutMs = input.timeoutMs;
116
+ this.spawnProcess = input.spawnProcess || spawn;
117
+ this.maxOutputBytes = input.maxOutputBytes || OUTPUT_LIMIT_BYTES;
118
+ this.nextId = 1;
119
+ this.pending = new Map();
120
+ this.stdoutBuffer = '';
121
+ this.stderrBytes = 0;
122
+ this.closed = false;
123
+ }
124
+
125
+ start() {
126
+ if (this.child) return;
127
+ this.child = this.spawnProcess(this.command, this.args, {
128
+ env: this.env,
129
+ stdio: ['pipe', 'pipe', 'pipe'],
130
+ });
131
+ this.child.stdout.setEncoding('utf8');
132
+ this.child.stdout.on('data', (chunk) => this.onStdout(chunk));
133
+ this.child.stderr.on('data', (chunk) => {
134
+ this.stderrBytes += Buffer.byteLength(chunk);
135
+ if (this.stderrBytes > this.maxOutputBytes) this.abort(new Error('MCP child exceeded stderr limit'));
136
+ });
137
+ this.child.once('error', (error) => this.abort(new Error(`MCP child failed: ${error.code || 'process_error'}`)));
138
+ this.child.once('exit', (code, signal) => {
139
+ this.closed = true;
140
+ if (this.pending.size > 0) this.rejectAll(new Error(`MCP child exited ${code ?? signal ?? 'unknown'}`));
141
+ });
142
+ }
143
+
144
+ onStdout(chunk) {
145
+ this.stdoutBuffer += chunk;
146
+ if (Buffer.byteLength(this.stdoutBuffer) > this.maxOutputBytes) {
147
+ this.abort(new Error('MCP child exceeded stdout limit'));
148
+ return;
149
+ }
150
+ for (;;) {
151
+ const newline = this.stdoutBuffer.indexOf('\n');
152
+ if (newline < 0) break;
153
+ const line = this.stdoutBuffer.slice(0, newline).trim();
154
+ this.stdoutBuffer = this.stdoutBuffer.slice(newline + 1);
155
+ if (!line) continue;
156
+ let message;
157
+ try { message = JSON.parse(line); } catch {
158
+ this.abort(new Error('MCP child emitted malformed JSON'));
159
+ return;
160
+ }
161
+ if (!Number.isSafeInteger(message.id)) continue;
162
+ const pending = this.pending.get(message.id);
163
+ if (!pending) {
164
+ this.abort(new Error(`MCP child returned unexpected response id ${message.id}`));
165
+ return;
166
+ }
167
+ clearTimeout(pending.timer);
168
+ this.pending.delete(message.id);
169
+ pending.resolve(message);
170
+ }
124
171
  }
125
- if (child.status !== 0) throw new Error(`${name} MCP child exited ${child.status ?? 'unknown'}`);
126
- const messages = String(child.stdout || '').trim().split('\n').filter(Boolean).map((line) => {
127
- try { return JSON.parse(line); } catch { throw new Error(`${name} emitted non-JSON stdout`); }
128
- });
129
- const initialized = messages.find((message) => message.id === 1);
130
- const listed = messages.find((message) => message.id === 2);
131
- const called = messages.find((message) => message.id === 3);
132
- const version = initialized?.result?.serverInfo?.version;
133
- if (!version) throw new Error(`${name} MCP initialize produced no version`);
134
- const names = new Set((listed?.result?.tools || []).map((tool) => tool.name));
135
- if (!names.has(name)) throw new Error(`${name} is missing from the full MCP contract`);
136
- const payload = toolPayload(called, name);
137
- validatePayload(name, payload);
138
- const live = payload.stale !== true && payload.source !== 'last_known' && payload.available !== false;
139
- if (!live) throw new Error(`${name} returned cached or unavailable guidance`);
140
- return { tool: name, ok: true, live: true, latency_ms: latencyMs, package_version: version };
141
- }
142
172
 
143
- try {
144
- const results = cases.map(([name, args]) => runCase(name, args));
145
- const versions = [...new Set(results.map((row) => row.package_version))];
146
- if (versions.length !== 1) throw new Error('MCP canary processes reported inconsistent package versions');
147
- if (versions[0] !== expectedVersion) {
148
- throw new Error(`MCP canary loaded ${versions[0]} instead of expected ${expectedVersion}`);
173
+ request(method, params = {}, timeoutMs = this.timeoutMs) {
174
+ if (!this.child || this.closed || !this.child.stdin.writable) {
175
+ return Promise.reject(new Error('MCP child is not writable'));
176
+ }
177
+ const id = this.nextId++;
178
+ return new Promise((resolveRequest, rejectRequest) => {
179
+ const timer = setTimeout(() => {
180
+ this.pending.delete(id);
181
+ const error = new Error(`${method} timed out`);
182
+ rejectRequest(error);
183
+ this.abort(error);
184
+ }, timeoutMs);
185
+ this.pending.set(id, { resolve: resolveRequest, reject: rejectRequest, timer });
186
+ this.child.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id, method, params })}\n`, (error) => {
187
+ if (!error) return;
188
+ clearTimeout(timer);
189
+ this.pending.delete(id);
190
+ rejectRequest(new Error(`${method} write failed`));
191
+ this.abort(error);
192
+ });
193
+ });
149
194
  }
150
- const core = results.filter((row) => Object.hasOwn(ceilings, row.tool));
151
- const slow = core.find((row) => row.latency_ms > ceilings[row.tool]);
152
- if (slow && process.env.MARROW_MCP_CANARY_ENFORCE_LATENCY !== '0') {
153
- throw new Error(`${slow.tool} exceeded its ${ceilings[slow.tool]}ms release ceiling`);
195
+
196
+ rejectAll(error) {
197
+ for (const pending of this.pending.values()) {
198
+ clearTimeout(pending.timer);
199
+ pending.reject(error);
200
+ }
201
+ this.pending.clear();
202
+ }
203
+
204
+ abort(error) {
205
+ this.rejectAll(error instanceof Error ? error : new Error('MCP child aborted'));
206
+ if (this.child && !this.closed) this.child.kill('SIGKILL');
207
+ }
208
+
209
+ async stop() {
210
+ if (!this.child || this.closed) return;
211
+ this.child.stdin.end();
212
+ await new Promise((resolveExit) => {
213
+ const timer = setTimeout(() => {
214
+ if (!this.closed) this.child.kill('SIGKILL');
215
+ resolveExit();
216
+ }, 500);
217
+ this.child.once('exit', () => {
218
+ clearTimeout(timer);
219
+ resolveExit();
220
+ });
221
+ });
222
+ }
223
+ }
224
+
225
+ async function runCanary(env = process.env, options = {}) {
226
+ const key = env.MARROW_API_KEY || '';
227
+ if (!key) throw new Error('MARROW_API_KEY is required for the authenticated MCP control-path canary');
228
+ const transportTimeoutMs = boundedMs('MARROW_REQUEST_TIMEOUT_MS', 2_500, 250, 10_000, env);
229
+ const totalTimeoutMs = boundedMs('MARROW_MCP_CANARY_TOTAL_TIMEOUT_MS', 30_000, 2_000, 60_000, env);
230
+ const expectedVersion = env.MARROW_EXPECTED_MCP_VERSION || packageVersion;
231
+ const childPath = env.MARROW_MCP_CANARY_CHILD || resolve(__dirname, '../dist/cli.js');
232
+ const childEnv = {
233
+ ...env,
234
+ MARROW_API_KEY: key,
235
+ MARROW_BASE_URL: env.MARROW_BASE_URL || 'https://api.getmarrow.ai',
236
+ MARROW_AUTO_ENROLL: 'false',
237
+ MARROW_TOOL_PROFILE: 'full',
238
+ MARROW_CONTROL_PATH_CANARY: '1',
239
+ MARROW_REQUEST_TIMEOUT_MS: String(transportTimeoutMs),
240
+ };
241
+ delete childEnv.NODE_TEST_CONTEXT;
242
+ const client = new PersistentMcpClient({
243
+ command: process.execPath,
244
+ args: [childPath],
245
+ timeoutMs: transportTimeoutMs,
246
+ env: childEnv,
247
+ spawnProcess: options.spawnProcess,
248
+ });
249
+ const totalTimer = setTimeout(() => client.abort(new Error('MCP canary total timeout')), totalTimeoutMs);
250
+ const processStarted = performance.now();
251
+ client.start();
252
+ try {
253
+ const initialized = await client.request('initialize', {}, transportTimeoutMs + 3_000);
254
+ if (initialized.error) throw new Error(`MCP initialize failed ${initialized.error.code}`);
255
+ const version = initialized.result?.serverInfo?.version;
256
+ if (!version) throw new Error('MCP initialize produced no version');
257
+ if (version !== expectedVersion) throw new Error(`MCP canary loaded ${version} instead of expected ${expectedVersion}`);
258
+ const listed = await client.request('tools/list', {});
259
+ if (listed.error) throw new Error(`MCP tools/list failed ${listed.error.code}`);
260
+ const names = new Set((listed.result?.tools || []).map((tool) => tool.name));
261
+ for (const [name] of cases) {
262
+ if (!names.has(name)) throw new Error(`${name} is missing from the full MCP contract`);
263
+ }
264
+ const initializationMs = Math.round(performance.now() - processStarted);
265
+ const results = [];
266
+ for (const [name, args] of cases) {
267
+ const callStarted = performance.now();
268
+ const called = await client.request('tools/call', { name, arguments: args });
269
+ const latencyMs = Math.round(performance.now() - callStarted);
270
+ const payload = toolPayload(called, name);
271
+ validatePayload(name, payload);
272
+ const live = payload.stale !== true && payload.source !== 'last_known' && payload.available !== false;
273
+ if (!live) throw new Error(`${name} returned cached or unavailable guidance`);
274
+ results.push({ tool: name, ok: true, live: true, latency_ms: latencyMs });
275
+ }
276
+ const hotPath = results.filter((row) => HOT_PATH_TOOLS.has(row.tool));
277
+ const reports = results.filter((row) => !HOT_PATH_TOOLS.has(row.tool));
278
+ return {
279
+ ok: true,
280
+ package_version: version,
281
+ process_count: 1,
282
+ initialization_ms: initializationMs,
283
+ per_tool_latency_excludes_initialization: true,
284
+ tools_checked: results.length,
285
+ latency_groups: {
286
+ hot_path: latencyGroup(hotPath),
287
+ reports: latencyGroup(reports),
288
+ },
289
+ results,
290
+ };
291
+ } finally {
292
+ clearTimeout(totalTimer);
293
+ await client.stop();
154
294
  }
155
- process.stdout.write(`${JSON.stringify({
156
- ok: true,
157
- package_version: versions[0],
158
- tools_checked: results.length,
159
- core_max_ms: Math.max(...core.map((row) => row.latency_ms)),
160
- latency_within_release_ceiling: !slow,
161
- results: results.map(({ package_version, ...row }) => row),
162
- })}\n`);
163
- } catch (error) {
164
- process.stderr.write(`MCP_CONTROL_PATH_CANARY=FAIL ${error instanceof Error ? error.message : 'unknown_error'}\n`);
165
- process.exitCode = 1;
166
295
  }
296
+
297
+ if (require.main === module) {
298
+ runCanary().then((result) => {
299
+ process.stdout.write(`${JSON.stringify(result)}\n`);
300
+ }).catch((error) => {
301
+ process.stderr.write(`MCP_CONTROL_PATH_CANARY=FAIL ${error instanceof Error ? error.message : 'unknown_error'}\n`);
302
+ process.exitCode = 1;
303
+ });
304
+ }
305
+
306
+ module.exports = { PersistentMcpClient, latencyGroup, percentile, runCanary };
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/getmarrow/marrow-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "3.9.57",
9
+ "version": "3.9.59",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@getmarrow/mcp",
14
- "version": "3.9.57",
14
+ "version": "3.9.59",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },