@revealui/mcp 0.7.1 → 0.8.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 +3 -3
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +41 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth.d.ts +2 -52
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +2 -139
- package/dist/oauth.js.map +1 -1
- package/dist/servers/factories/contracts.d.ts +3 -1
- package/dist/servers/factories/contracts.d.ts.map +1 -1
- package/dist/servers/factories/revealui-content.d.ts +126 -0
- package/dist/servers/factories/revealui-content.d.ts.map +1 -1
- package/dist/servers/factories/revealui-content.js +279 -63
- package/dist/servers/factories/revealui-content.js.map +1 -1
- package/dist/servers/revealui-memory.d.ts +2 -2
- package/dist/streamable-http.d.ts +25 -2
- package/dist/streamable-http.d.ts.map +1 -1
- package/dist/streamable-http.js +16 -1
- package/dist/streamable-http.js.map +1 -1
- package/package.json +17 -8
|
@@ -31,10 +31,42 @@
|
|
|
31
31
|
* via `setCredentials()`. Falls back to `REVEALUI_API_URL` +
|
|
32
32
|
* `REVEALUI_API_KEY` env vars when no override is set.
|
|
33
33
|
*/
|
|
34
|
+
import { createHash } from 'node:crypto';
|
|
34
35
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
35
36
|
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
36
37
|
import { z } from 'zod/v4';
|
|
37
38
|
import { validateToolArgs } from '../../validate-tool-args.js';
|
|
39
|
+
/** sha256 (hex) of the canonical JSON of an arbitrary argument object. */
|
|
40
|
+
function digestArgs(args) {
|
|
41
|
+
return createHash('sha256').update(canonicalJson(args)).digest('hex');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Deterministic JSON with object keys sorted, so the digest of the same
|
|
45
|
+
* logical arguments is stable regardless of key order. No regex; a manual
|
|
46
|
+
* recursive serializer over the parsed value.
|
|
47
|
+
*/
|
|
48
|
+
function canonicalJson(value) {
|
|
49
|
+
if (value === null || typeof value !== 'object')
|
|
50
|
+
return JSON.stringify(value) ?? 'null';
|
|
51
|
+
if (Array.isArray(value))
|
|
52
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
53
|
+
const entries = Object.entries(value).sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0);
|
|
54
|
+
return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`).join(',')}}`;
|
|
55
|
+
}
|
|
56
|
+
/** Allowlisted, non-secret scalars safe to store in a receipt in the clear. */
|
|
57
|
+
const AUDIT_SCALAR_ALLOWLIST = ['collection', 'site_id'];
|
|
58
|
+
function pickAuditScalars(args) {
|
|
59
|
+
const out = {};
|
|
60
|
+
if (!args || typeof args !== 'object')
|
|
61
|
+
return out;
|
|
62
|
+
const record = args;
|
|
63
|
+
for (const key of AUDIT_SCALAR_ALLOWLIST) {
|
|
64
|
+
const raw = record[key];
|
|
65
|
+
if (typeof raw === 'string' && raw.length > 0)
|
|
66
|
+
out[key] = raw;
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
38
70
|
// ---------------------------------------------------------------------------
|
|
39
71
|
// Credential overrides (set by hypervisor / HTTP launcher)
|
|
40
72
|
// ---------------------------------------------------------------------------
|
|
@@ -77,9 +109,9 @@ async function apiGet(baseUrl, apiKey, path, params) {
|
|
|
77
109
|
const res = await fetch(url.toString(), { headers: apiHeaders(apiKey) });
|
|
78
110
|
const body = await res.json();
|
|
79
111
|
if (!res.ok) {
|
|
80
|
-
throw new
|
|
112
|
+
throw new ApiRequestError(body.error ??
|
|
81
113
|
body.message ??
|
|
82
|
-
`API ${res.status}
|
|
114
|
+
`API ${res.status}`, res.status);
|
|
83
115
|
}
|
|
84
116
|
return body;
|
|
85
117
|
}
|
|
@@ -195,6 +227,15 @@ const TOOLS = [
|
|
|
195
227
|
},
|
|
196
228
|
},
|
|
197
229
|
];
|
|
230
|
+
/** Error carrying the upstream HTTP status, for audit `httpStatus`. */
|
|
231
|
+
class ApiRequestError extends Error {
|
|
232
|
+
status;
|
|
233
|
+
constructor(message, status) {
|
|
234
|
+
super(message);
|
|
235
|
+
this.status = status;
|
|
236
|
+
this.name = 'ApiRequestError';
|
|
237
|
+
}
|
|
238
|
+
}
|
|
198
239
|
/**
|
|
199
240
|
* Curated fallback used when neither an injected provider nor HTTP
|
|
200
241
|
* introspection is available. These four collections exist in every admin
|
|
@@ -328,7 +369,15 @@ async function fetchCollectionsFromAdmin(apiUrl, apiKey) {
|
|
|
328
369
|
* consume this factory; the factory itself is transport-agnostic.
|
|
329
370
|
*/
|
|
330
371
|
export function createRevealuiContentServer(options) {
|
|
331
|
-
|
|
372
|
+
// A `credentialsProvider` marks the governed/hosted mount (`/api/mcp`). On
|
|
373
|
+
// that path Phase 1 exposes ONLY the five read tools (design §4-D): the
|
|
374
|
+
// resource handlers below resolve the ambient service credential rather than
|
|
375
|
+
// the caller's token and write no receipt, so on a multi-tenant mount they
|
|
376
|
+
// would be a cross-tenant, unaudited read channel. The capability is therefore
|
|
377
|
+
// structurally absent when governed — not merely credential-gated. The stdio /
|
|
378
|
+
// local mount (no options) keeps resources unchanged (single-operator trust).
|
|
379
|
+
const governed = options?.credentialsProvider !== undefined;
|
|
380
|
+
const server = new Server({ name: 'revealui-content', version: '1.0.0' }, { capabilities: governed ? { tools: {} } : { tools: {}, resources: {} } });
|
|
332
381
|
// Per-server memoization: resolve the effective collection set once and
|
|
333
382
|
// reuse across `resources/list` + `resources/read` for the lifetime of the
|
|
334
383
|
// server instance. Avoids double-fetching on every read.
|
|
@@ -357,80 +406,232 @@ export function createRevealuiContentServer(options) {
|
|
|
357
406
|
cachedCollections = [...CURATED_FALLBACK];
|
|
358
407
|
return cachedCollections;
|
|
359
408
|
}
|
|
360
|
-
server.setRequestHandler(ListToolsRequestSchema, async () =>
|
|
409
|
+
server.setRequestHandler(ListToolsRequestSchema, async (_request, extra) => {
|
|
410
|
+
const authorizer = options?.toolAuthorizer;
|
|
411
|
+
if (!authorizer)
|
|
412
|
+
return { tools: TOOLS };
|
|
413
|
+
// Filtered discovery (I-7): advertise only tools this caller may execute.
|
|
414
|
+
// This is UX; execution authz below is the security control — a tool hidden
|
|
415
|
+
// here is still independently denied on a direct `tools/call`.
|
|
416
|
+
const ctx = {
|
|
417
|
+
authInfo: extra?.authInfo,
|
|
418
|
+
sessionId: extra?.sessionId,
|
|
419
|
+
};
|
|
420
|
+
return { tools: TOOLS.filter((tool) => authorizer(ctx, tool.name)) };
|
|
421
|
+
});
|
|
361
422
|
// -------------------------------------------------------------------------
|
|
362
423
|
// Resources (Stage 4.1 + 4.2)
|
|
424
|
+
//
|
|
425
|
+
// Registered ONLY on the ungoverned (stdio / local) path. These handlers use
|
|
426
|
+
// the process-global `resolveCredentials()` and emit no receipt, so on the
|
|
427
|
+
// governed mount they are omitted entirely (see capability gate above,
|
|
428
|
+
// design §4-D). The guard and the capability advertisement must stay in
|
|
429
|
+
// lockstep: a registered handler with no advertised capability, or vice
|
|
430
|
+
// versa, reintroduces the bypass.
|
|
363
431
|
// -------------------------------------------------------------------------
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
432
|
+
if (!governed) {
|
|
433
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
434
|
+
const { apiUrl, apiKey } = resolveCredentials();
|
|
435
|
+
if (!(apiUrl && apiKey)) {
|
|
436
|
+
// Without credentials the server can't enumerate rows; advertise an
|
|
437
|
+
// empty list rather than erroring — clients still see the resources
|
|
438
|
+
// capability and can retry once creds are set.
|
|
439
|
+
return { resources: [] };
|
|
440
|
+
}
|
|
441
|
+
const collections = await resolveCollections();
|
|
442
|
+
const resources = [];
|
|
443
|
+
for (const collection of collections) {
|
|
444
|
+
try {
|
|
445
|
+
const body = await apiGet(apiUrl, apiKey, `/api/${collection.slug}`, {
|
|
446
|
+
limit: String(DEFAULT_RESOURCE_PAGE_SIZE),
|
|
447
|
+
page: '1',
|
|
448
|
+
});
|
|
449
|
+
for (const row of extractDocs(body)) {
|
|
450
|
+
resources.push(resourceForRow(collection, row));
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
catch {
|
|
454
|
+
// empty-catch-ok: an unavailable collection shouldn't blank-out the entire resource list
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
return { resources };
|
|
458
|
+
});
|
|
459
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
460
|
+
const parsed = parseResourceUri(request.params.uri);
|
|
461
|
+
if (!parsed) {
|
|
462
|
+
throw new Error(`Unknown resource URI (expected ${RESOURCE_URI_PREFIX}<collection>/<id>): ${request.params.uri}`);
|
|
463
|
+
}
|
|
464
|
+
const collections = await resolveCollections();
|
|
465
|
+
const collection = collections.find((c) => c.slug === parsed.collection);
|
|
466
|
+
if (!collection) {
|
|
467
|
+
throw new Error(`Collection is not exposed as a resource: ${parsed.collection}`);
|
|
468
|
+
}
|
|
469
|
+
const { apiUrl, apiKey } = resolveCredentials();
|
|
470
|
+
if (!(apiUrl && apiKey)) {
|
|
471
|
+
throw new Error('REVEALUI_API_URL and REVEALUI_API_KEY must be set');
|
|
472
|
+
}
|
|
473
|
+
const row = await apiGet(apiUrl, apiKey, `/api/${parsed.collection}/${parsed.id}`);
|
|
474
|
+
return {
|
|
475
|
+
contents: [
|
|
476
|
+
{
|
|
477
|
+
uri: request.params.uri,
|
|
478
|
+
mimeType: 'application/json',
|
|
479
|
+
text: JSON.stringify(row, null, 2),
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
};
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
486
|
+
const startTime = Date.now();
|
|
487
|
+
const toolName = request.params.name;
|
|
488
|
+
const rawArgs = request.params.arguments;
|
|
489
|
+
const ctx = {
|
|
490
|
+
authInfo: extra?.authInfo,
|
|
491
|
+
sessionId: extra?.sessionId,
|
|
492
|
+
};
|
|
493
|
+
const auditSink = options?.auditSink;
|
|
494
|
+
const mutating = options?.mutatingTools?.has(toolName) ?? false;
|
|
495
|
+
// Write a receipt for this call. Returns whether the write succeeded; the
|
|
496
|
+
// sink itself classifies + logs a failure, so callers only decide between
|
|
497
|
+
// fail-closed (mutations) and degrade (reads). No-op when no sink is wired
|
|
498
|
+
// (the stdio path).
|
|
499
|
+
async function writeReceipt(outcome, opts) {
|
|
500
|
+
if (!auditSink)
|
|
501
|
+
return true;
|
|
502
|
+
const client = server.getClientVersion();
|
|
503
|
+
const record = {
|
|
504
|
+
outcome,
|
|
505
|
+
tool: toolName,
|
|
506
|
+
argsDigest: digestArgs(rawArgs ?? null),
|
|
507
|
+
scalars: pickAuditScalars(rawArgs),
|
|
508
|
+
durationMs: Date.now() - startTime,
|
|
509
|
+
httpStatus: opts?.httpStatus,
|
|
510
|
+
reason: opts?.reason,
|
|
511
|
+
clientInfo: client ? { name: client.name, version: client.version } : undefined,
|
|
512
|
+
context: ctx,
|
|
513
|
+
};
|
|
514
|
+
try {
|
|
515
|
+
await auditSink(record);
|
|
516
|
+
return true;
|
|
517
|
+
}
|
|
518
|
+
catch {
|
|
519
|
+
return false;
|
|
520
|
+
}
|
|
371
521
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
522
|
+
// A call rejected before it executes (unknown tool, invalid args, authz or
|
|
523
|
+
// rate-limit denial). Records a `denied` receipt (best-effort — a denial
|
|
524
|
+
// that mutates nothing degrades like a read) and returns the client error.
|
|
525
|
+
async function denied(response, reason) {
|
|
526
|
+
await writeReceipt('denied', reason ? { reason } : undefined);
|
|
527
|
+
return response;
|
|
528
|
+
}
|
|
529
|
+
// Deny-by-default collection allowlist. The content tools interpolate the
|
|
530
|
+
// `collection` arg into `/api/<collection>`, so a free-string collection
|
|
531
|
+
// would let one tool reach another tool's endpoint (e.g. `/api/users`,
|
|
532
|
+
// bypassing the admin gate on `revealui_list_users`). A collection outside
|
|
533
|
+
// the RESOLVED exposed set is denied before any REST call — the backend is
|
|
534
|
+
// never reached for an unexposed collection.
|
|
535
|
+
async function denyIfCollectionNotExposed(collection) {
|
|
536
|
+
const exposed = await resolveCollections();
|
|
537
|
+
const slugs = new Set(exposed.map((c) => c.slug));
|
|
538
|
+
if (slugs.has(collection))
|
|
539
|
+
return null;
|
|
540
|
+
return denied({
|
|
541
|
+
content: [{ type: 'text', text: `Error: collection is not exposed: ${collection}` }],
|
|
542
|
+
isError: true,
|
|
543
|
+
}, 'collection-not-exposed');
|
|
544
|
+
}
|
|
545
|
+
// Emit one usage-meter event for a call that actually executed. Swallows
|
|
546
|
+
// sink errors so metering can never break the tool call.
|
|
547
|
+
async function fireMeter(errored) {
|
|
548
|
+
if (!options?.meterSink)
|
|
549
|
+
return;
|
|
375
550
|
try {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
551
|
+
await options.meterSink(ctx, {
|
|
552
|
+
tool: toolName,
|
|
553
|
+
durationMs: Date.now() - startTime,
|
|
554
|
+
errored,
|
|
379
555
|
});
|
|
380
|
-
for (const row of extractDocs(body)) {
|
|
381
|
-
resources.push(resourceForRow(collection, row));
|
|
382
|
-
}
|
|
383
556
|
}
|
|
384
557
|
catch {
|
|
385
|
-
// empty-catch-ok:
|
|
558
|
+
// empty-catch-ok: metering is best-effort and must not affect the call
|
|
386
559
|
}
|
|
387
560
|
}
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
561
|
+
// Deny-by-default per-tool authorization (I-7). Runs before credentials are
|
|
562
|
+
// resolved, so an unauthorized caller never triggers a credential lookup or
|
|
563
|
+
// a REST call. A tool hidden from `tools/list` is still denied here.
|
|
564
|
+
if (options?.toolAuthorizer && !options.toolAuthorizer(ctx, toolName)) {
|
|
565
|
+
return denied({
|
|
566
|
+
content: [{ type: 'text', text: `Error: not authorized to call tool: ${toolName}` }],
|
|
567
|
+
isError: true,
|
|
568
|
+
}, 'authz');
|
|
394
569
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
570
|
+
// Per-user + tier rate limit (I-8). Consumed only for an authorized call,
|
|
571
|
+
// before any credential resolution or execution. A denial is audited with
|
|
572
|
+
// `reason: 'rate-limit'` and never meters (a rejected call is not usage).
|
|
573
|
+
if (options?.rateLimiter) {
|
|
574
|
+
const allowed = await options.rateLimiter(ctx, toolName);
|
|
575
|
+
if (!allowed) {
|
|
576
|
+
return denied({
|
|
577
|
+
content: [{ type: 'text', text: `Error: rate limit exceeded for tool: ${toolName}` }],
|
|
578
|
+
isError: true,
|
|
579
|
+
}, 'rate-limit');
|
|
580
|
+
}
|
|
399
581
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
582
|
+
// Resolve credentials. Governed path: the injected provider is the sole
|
|
583
|
+
// source and may throw when no per-request credential exists (I-4). Env
|
|
584
|
+
// path is unchanged for stdio.
|
|
585
|
+
let apiUrl;
|
|
586
|
+
let apiKey;
|
|
587
|
+
try {
|
|
588
|
+
if (options?.credentialsProvider) {
|
|
589
|
+
const resolved = await options.credentialsProvider(ctx);
|
|
590
|
+
apiUrl = resolved.apiUrl;
|
|
591
|
+
apiKey = resolved.apiKey;
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
const resolved = resolveCredentials();
|
|
595
|
+
if (!(resolved.apiUrl && resolved.apiKey)) {
|
|
596
|
+
return {
|
|
597
|
+
content: [
|
|
598
|
+
{ type: 'text', text: 'Error: REVEALUI_API_URL and REVEALUI_API_KEY must be set' },
|
|
599
|
+
],
|
|
600
|
+
isError: true,
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
apiUrl = resolved.apiUrl;
|
|
604
|
+
apiKey = resolved.apiKey;
|
|
605
|
+
}
|
|
403
606
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
contents: [
|
|
407
|
-
{
|
|
408
|
-
uri: request.params.uri,
|
|
409
|
-
mimeType: 'application/json',
|
|
410
|
-
text: JSON.stringify(row, null, 2),
|
|
411
|
-
},
|
|
412
|
-
],
|
|
413
|
-
};
|
|
414
|
-
});
|
|
415
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
416
|
-
const startTime = Date.now();
|
|
417
|
-
const toolName = request.params.name;
|
|
418
|
-
const { apiUrl, apiKey } = resolveCredentials();
|
|
419
|
-
if (!(apiUrl && apiKey)) {
|
|
607
|
+
catch (err) {
|
|
608
|
+
await writeReceipt('failed');
|
|
420
609
|
return {
|
|
421
610
|
content: [
|
|
422
|
-
{ type: 'text', text:
|
|
611
|
+
{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` },
|
|
423
612
|
],
|
|
424
613
|
isError: true,
|
|
425
614
|
};
|
|
426
615
|
}
|
|
616
|
+
// Fail-closed for mutations: the receipt is written BEFORE the tool runs,
|
|
617
|
+
// so a state change can never happen without a durable record of it. If
|
|
618
|
+
// the write fails, refuse the call — nothing executes.
|
|
619
|
+
if (mutating) {
|
|
620
|
+
const recorded = await writeReceipt('invoked');
|
|
621
|
+
if (!recorded) {
|
|
622
|
+
return {
|
|
623
|
+
content: [{ type: 'text', text: 'Error: audit log unavailable; mutating tool refused' }],
|
|
624
|
+
isError: true,
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
}
|
|
427
628
|
try {
|
|
428
629
|
let data;
|
|
429
630
|
switch (toolName) {
|
|
430
631
|
case 'revealui_list_sites': {
|
|
431
|
-
const parsed = validateToolArgs(ListSitesArgsSchema,
|
|
632
|
+
const parsed = validateToolArgs(ListSitesArgsSchema, rawArgs, toolName);
|
|
432
633
|
if (!parsed.ok)
|
|
433
|
-
return parsed.error;
|
|
634
|
+
return denied(parsed.error);
|
|
434
635
|
const { limit = 20, page = 1 } = parsed.value;
|
|
435
636
|
data = await apiGet(apiUrl, apiKey, '/api/sites', {
|
|
436
637
|
limit: String(limit),
|
|
@@ -439,10 +640,13 @@ export function createRevealuiContentServer(options) {
|
|
|
439
640
|
break;
|
|
440
641
|
}
|
|
441
642
|
case 'revealui_list_content': {
|
|
442
|
-
const parsed = validateToolArgs(ListContentArgsSchema,
|
|
643
|
+
const parsed = validateToolArgs(ListContentArgsSchema, rawArgs, toolName);
|
|
443
644
|
if (!parsed.ok)
|
|
444
|
-
return parsed.error;
|
|
645
|
+
return denied(parsed.error);
|
|
445
646
|
const { site_id, collection, limit = 20, page = 1, status } = parsed.value;
|
|
647
|
+
const notExposed = await denyIfCollectionNotExposed(collection);
|
|
648
|
+
if (notExposed)
|
|
649
|
+
return notExposed;
|
|
446
650
|
const params = {
|
|
447
651
|
limit: String(limit),
|
|
448
652
|
page: String(page),
|
|
@@ -455,17 +659,20 @@ export function createRevealuiContentServer(options) {
|
|
|
455
659
|
break;
|
|
456
660
|
}
|
|
457
661
|
case 'revealui_get_content': {
|
|
458
|
-
const parsed = validateToolArgs(GetContentArgsSchema,
|
|
662
|
+
const parsed = validateToolArgs(GetContentArgsSchema, rawArgs, toolName);
|
|
459
663
|
if (!parsed.ok)
|
|
460
|
-
return parsed.error;
|
|
664
|
+
return denied(parsed.error);
|
|
461
665
|
const { collection, id } = parsed.value;
|
|
666
|
+
const notExposed = await denyIfCollectionNotExposed(collection);
|
|
667
|
+
if (notExposed)
|
|
668
|
+
return notExposed;
|
|
462
669
|
data = await apiGet(apiUrl, apiKey, `/api/${collection}/${id}`);
|
|
463
670
|
break;
|
|
464
671
|
}
|
|
465
672
|
case 'revealui_list_users': {
|
|
466
|
-
const parsed = validateToolArgs(ListUsersArgsSchema,
|
|
673
|
+
const parsed = validateToolArgs(ListUsersArgsSchema, rawArgs, toolName);
|
|
467
674
|
if (!parsed.ok)
|
|
468
|
-
return parsed.error;
|
|
675
|
+
return denied(parsed.error);
|
|
469
676
|
const { site_id, limit = 20, page = 1 } = parsed.value;
|
|
470
677
|
const params = {
|
|
471
678
|
limit: String(limit),
|
|
@@ -477,9 +684,9 @@ export function createRevealuiContentServer(options) {
|
|
|
477
684
|
break;
|
|
478
685
|
}
|
|
479
686
|
case 'revealui_site_stats': {
|
|
480
|
-
const parsed = validateToolArgs(SiteStatsArgsSchema,
|
|
687
|
+
const parsed = validateToolArgs(SiteStatsArgsSchema, rawArgs, toolName);
|
|
481
688
|
if (!parsed.ok)
|
|
482
|
-
return parsed.error;
|
|
689
|
+
return denied(parsed.error);
|
|
483
690
|
const { site_id } = parsed.value;
|
|
484
691
|
const params = {};
|
|
485
692
|
if (site_id)
|
|
@@ -488,11 +695,17 @@ export function createRevealuiContentServer(options) {
|
|
|
488
695
|
break;
|
|
489
696
|
}
|
|
490
697
|
default:
|
|
491
|
-
return {
|
|
698
|
+
return denied({
|
|
492
699
|
content: [{ type: 'text', text: `Error: Unknown tool: ${toolName}` }],
|
|
493
700
|
isError: true,
|
|
494
|
-
};
|
|
701
|
+
});
|
|
495
702
|
}
|
|
703
|
+
// Read tools record the receipt AFTER a successful call and degrade on a
|
|
704
|
+
// write failure (the data is already fetched; the sink logs + marks the
|
|
705
|
+
// degraded write). Mutations already recorded their receipt above.
|
|
706
|
+
if (!mutating)
|
|
707
|
+
await writeReceipt('invoked');
|
|
708
|
+
await fireMeter(false);
|
|
496
709
|
return {
|
|
497
710
|
content: [
|
|
498
711
|
{
|
|
@@ -511,6 +724,9 @@ export function createRevealuiContentServer(options) {
|
|
|
511
724
|
};
|
|
512
725
|
}
|
|
513
726
|
catch (err) {
|
|
727
|
+
const httpStatus = err instanceof ApiRequestError ? err.status : undefined;
|
|
728
|
+
await writeReceipt('failed', { httpStatus });
|
|
729
|
+
await fireMeter(true);
|
|
514
730
|
return {
|
|
515
731
|
content: [
|
|
516
732
|
{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealui-content.js","sourceRoot":"","sources":["../../../src/servers/factories/revealui-content.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"revealui-content.js","sourceRoot":"","sources":["../../../src/servers/factories/revealui-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,9 @@ export declare const PublishFactArgsSchema: z.ZodObject<{
|
|
|
27
27
|
agent_id: z.ZodString;
|
|
28
28
|
content: z.ZodString;
|
|
29
29
|
fact_type: z.ZodEnum<{
|
|
30
|
+
decision: "decision";
|
|
30
31
|
warning: "warning";
|
|
31
32
|
discovery: "discovery";
|
|
32
|
-
decision: "decision";
|
|
33
33
|
bug: "bug";
|
|
34
34
|
question: "question";
|
|
35
35
|
answer: "answer";
|
|
@@ -67,7 +67,6 @@ export declare const ShareMemoryArgsSchema: z.ZodObject<{
|
|
|
67
67
|
site_id: z.ZodString;
|
|
68
68
|
content: z.ZodString;
|
|
69
69
|
type: z.ZodEnum<{
|
|
70
|
-
warning: "warning";
|
|
71
70
|
skill: "skill";
|
|
72
71
|
fact: "fact";
|
|
73
72
|
preference: "preference";
|
|
@@ -75,6 +74,7 @@ export declare const ShareMemoryArgsSchema: z.ZodObject<{
|
|
|
75
74
|
feedback: "feedback";
|
|
76
75
|
example: "example";
|
|
77
76
|
correction: "correction";
|
|
77
|
+
warning: "warning";
|
|
78
78
|
}>;
|
|
79
79
|
source: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
80
80
|
}, z.core.$strict>;
|
|
@@ -29,8 +29,13 @@ export type StreamableHttpHandlerOptions = {
|
|
|
29
29
|
createServer: () => Server | Promise<Server>;
|
|
30
30
|
/** Generate session IDs. Default: `crypto.randomUUID()`. */
|
|
31
31
|
sessionIdGenerator?: () => string;
|
|
32
|
-
/**
|
|
33
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Called when a new session is initialized, with the initializing request so
|
|
34
|
+
* a caller can bind the session to that request's authenticated identity
|
|
35
|
+
* (GAP-371 I-3). Fires synchronously within the initialize request's own
|
|
36
|
+
* handling — the `req` is exactly the request that created the session.
|
|
37
|
+
*/
|
|
38
|
+
onSessionInitialized?: (sessionId: string, req: IncomingMessage) => void | Promise<void>;
|
|
34
39
|
/** Called when a session is terminated (DELETE or transport close). */
|
|
35
40
|
onSessionClosed?: (sessionId: string) => void | Promise<void>;
|
|
36
41
|
/**
|
|
@@ -49,8 +54,26 @@ export type StreamableHttpHandlerOptions = {
|
|
|
49
54
|
* serverless request/response platforms). Default: false.
|
|
50
55
|
*/
|
|
51
56
|
enableJsonResponse?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Called once, synchronously, during handler construction with a control
|
|
59
|
+
* surface for the handler's session map. A governed mount uses it to
|
|
60
|
+
* terminate a session whose bound identity no longer matches the presented
|
|
61
|
+
* credential (GAP-371 I-3). Optional — stdio / unauthenticated callers omit it.
|
|
62
|
+
*/
|
|
63
|
+
onControl?: (control: StreamableHttpControl) => void;
|
|
52
64
|
};
|
|
53
65
|
export type StreamableHttpHandler = (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
66
|
+
/** Control surface over a handler's live session map. */
|
|
67
|
+
export interface StreamableHttpControl {
|
|
68
|
+
/** Whether a session id currently has a live transport. */
|
|
69
|
+
hasSession(sessionId: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Close and forget a session. The transport's own `onsessionclosed` fires,
|
|
72
|
+
* so any external binding keyed on the id is cleaned up through the normal
|
|
73
|
+
* path. Idempotent — a no-op for an unknown id.
|
|
74
|
+
*/
|
|
75
|
+
terminateSession(sessionId: string): Promise<void>;
|
|
76
|
+
}
|
|
54
77
|
/**
|
|
55
78
|
* Build a Node HTTP request handler that routes MCP Streamable HTTP traffic
|
|
56
79
|
* to per-session `Server` + `Transport` pairs, allocating new sessions on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../src/streamable-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAWxE,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;;OAIG;IACH,YAAY,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAElC
|
|
1
|
+
{"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../src/streamable-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAWxE,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;;OAIG;IACH,YAAY,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAElC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzF,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjG,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAWD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAoEvB"}
|
package/dist/streamable-http.js
CHANGED
|
@@ -44,6 +44,21 @@ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
|
44
44
|
export function createNodeStreamableHttpHandler(options) {
|
|
45
45
|
const sessions = new Map();
|
|
46
46
|
const generateSessionId = options.sessionIdGenerator ?? (() => randomUUID());
|
|
47
|
+
options.onControl?.({
|
|
48
|
+
hasSession(sessionId) {
|
|
49
|
+
return sessions.has(sessionId);
|
|
50
|
+
},
|
|
51
|
+
async terminateSession(sessionId) {
|
|
52
|
+
const entry = sessions.get(sessionId);
|
|
53
|
+
if (!entry)
|
|
54
|
+
return;
|
|
55
|
+
// Removing the entry first makes termination idempotent even if close()
|
|
56
|
+
// re-enters via onsessionclosed.
|
|
57
|
+
sessions.delete(sessionId);
|
|
58
|
+
await entry.transport.close();
|
|
59
|
+
await options.onSessionClosed?.(sessionId);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
47
62
|
return async function mcpStreamableHttpHandler(req, res) {
|
|
48
63
|
const body = req.method === 'POST' ? await readJsonBody(req) : undefined;
|
|
49
64
|
const rawSession = req.headers['mcp-session-id'];
|
|
@@ -75,7 +90,7 @@ export function createNodeStreamableHttpHandler(options) {
|
|
|
75
90
|
allowedOrigins: options.allowedOrigins,
|
|
76
91
|
onsessioninitialized: async (id) => {
|
|
77
92
|
sessions.set(id, { server, transport });
|
|
78
|
-
await options.onSessionInitialized?.(id);
|
|
93
|
+
await options.onSessionInitialized?.(id, req);
|
|
79
94
|
},
|
|
80
95
|
onsessionclosed: async (id) => {
|
|
81
96
|
sessions.delete(id);
|