qyl-mcp-server 7.1.0 → 7.2.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 +118 -15
- package/dist/auth-extensions.d.ts +20 -0
- package/dist/auth-extensions.js +81 -0
- package/dist/auth-extensions.js.map +1 -0
- package/dist/auth.d.ts +4 -0
- package/dist/auth.js +5 -0
- package/dist/auth.js.map +1 -0
- package/dist/authorization.d.ts +14 -0
- package/dist/authorization.js +82 -0
- package/dist/authorization.js.map +1 -0
- package/dist/ci.d.ts +5 -5
- package/dist/ci.js +25 -19
- package/dist/ci.js.map +1 -1
- package/dist/collector-access.d.ts +17 -0
- package/dist/collector-access.js +61 -0
- package/dist/collector-access.js.map +1 -0
- package/dist/collector.d.ts +4 -1
- package/dist/collector.js +6 -2
- package/dist/collector.js.map +1 -1
- package/dist/config.d.ts +4 -3
- package/dist/config.js +5 -5
- package/dist/config.js.map +1 -1
- package/dist/contract-operations.d.ts +1 -1
- package/dist/contract-operations.js +1 -1
- package/dist/contract-operations.js.map +1 -1
- package/dist/contract-validation.d.ts +1 -1
- package/dist/contract-validation.js +45 -1
- package/dist/contract-validation.js.map +1 -1
- package/dist/events-authorization.d.ts +9 -0
- package/dist/events-authorization.js +160 -0
- package/dist/events-authorization.js.map +1 -0
- package/dist/events.d.ts +235 -0
- package/dist/events.js +647 -0
- package/dist/events.js.map +1 -0
- package/dist/main.d.ts +14 -23
- package/dist/main.js +99 -36
- package/dist/main.js.map +1 -1
- package/dist/mcp-app.html +1 -1
- package/dist/mcp-dashboard.html +1 -1
- package/dist/mcp-home.html +6 -6
- package/dist/metrics-tools.js +16 -13
- package/dist/metrics-tools.js.map +1 -1
- package/dist/native-execution.d.ts +8 -52
- package/dist/native-execution.js +51 -222
- package/dist/native-execution.js.map +1 -1
- package/dist/oauth-metadata.d.ts +8 -0
- package/dist/oauth-metadata.js +89 -0
- package/dist/oauth-metadata.js.map +1 -0
- package/dist/oauth.d.ts +7 -17
- package/dist/oauth.js +16 -68
- package/dist/oauth.js.map +1 -1
- package/dist/request-scope.d.ts +4 -12
- package/dist/request-scope.js +9 -22
- package/dist/request-scope.js.map +1 -1
- package/dist/server.d.ts +7 -1
- package/dist/server.js +83 -33
- package/dist/server.js.map +1 -1
- package/dist/summaries.d.ts +1 -1
- package/dist/summaries.js +2 -2
- package/dist/summaries.js.map +1 -1
- package/dist/telemetry-redaction.js +13 -0
- package/dist/telemetry-redaction.js.map +1 -1
- package/dist/tools.d.ts +10 -0
- package/dist/tools.js +77 -18
- package/dist/tools.js.map +1 -1
- package/dist/trace-query.d.ts +5 -0
- package/dist/trace-query.js +8 -0
- package/dist/trace-query.js.map +1 -0
- package/dist/ui-domain.d.ts +4 -0
- package/dist/ui-domain.js +28 -0
- package/dist/ui-domain.js.map +1 -0
- package/dist/webhook.d.ts +45 -0
- package/dist/webhook.js +198 -0
- package/dist/webhook.js.map +1 -0
- package/package.json +27 -22
package/dist/native-execution.js
CHANGED
|
@@ -1,84 +1,46 @@
|
|
|
1
1
|
import { CallToolRequestSchema, CallToolResultSchema } from "@modelcontextprotocol/core";
|
|
2
|
-
import { ProtocolError
|
|
2
|
+
import { ProtocolError } from "@modelcontextprotocol/server";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { rename } from "node:fs/promises";
|
|
5
5
|
import { homedir } from "node:os";
|
|
6
6
|
import { join } from "node:path";
|
|
7
|
-
import
|
|
7
|
+
import * as z from "zod/v4";
|
|
8
8
|
import { AtomicJsonStore, PersistenceError } from "./atomic-json-store.js";
|
|
9
|
-
import { WorkbenchExecutionCostSchema, WorkbenchExecutionTokenUsageSchema, } from "./contract-validation.js";
|
|
10
|
-
import { extractExecutionEvidence } from "./execution-evidence.js";
|
|
11
|
-
import { MAX_PERSISTED_RESULT_CHARACTERS, sanitizePersistedToolResult, } from "./execution-result.js";
|
|
12
9
|
import { SecretRedactor } from "./secret-redactor.js";
|
|
13
10
|
import { McpTelemetry, } from "./telemetry.js";
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
const NATIVE_STATE_VERSION = 2;
|
|
11
|
+
// 3: operation metadata only. Known older layouts are projected into this
|
|
12
|
+
// schema and replaced atomically, without keeping an archive of their payloads.
|
|
13
|
+
const NATIVE_STATE_VERSION = 3;
|
|
18
14
|
const DEFAULT_MAX_EXECUTIONS = 1_000;
|
|
19
15
|
const NATIVE_SERVER_ID = "qyl.mcp/native";
|
|
20
|
-
const MAX_PROTOCOL_PAYLOAD_CHARACTERS = 64_000;
|
|
21
16
|
const IdentifierSchema = z.string().min(1).max(256);
|
|
22
17
|
const IsoDateSchema = z.iso.datetime({ offset: true });
|
|
23
|
-
const JsonRpcRequestIdSchema = z.union([z.string().max(2_048), z.number().finite()]);
|
|
24
|
-
// Usage and cost evidence is the published contract's own shape, so the
|
|
25
|
-
// persisted record validates against the generated schema rather than a local
|
|
26
|
-
// copy that can drift from it.
|
|
27
|
-
const TokenUsageSchema = WorkbenchExecutionTokenUsageSchema;
|
|
28
|
-
const CostSchema = WorkbenchExecutionCostSchema;
|
|
29
|
-
const ProtocolEventSchema = z.object({
|
|
30
|
-
sequence: z.number().int().positive(),
|
|
31
|
-
timestamp: IsoDateSchema,
|
|
32
|
-
direction: z.enum(["inbound", "outbound"]),
|
|
33
|
-
messageKind: z.enum(["request", "result", "error"]),
|
|
34
|
-
jsonrpc: z.literal("2.0"),
|
|
35
|
-
requestId: JsonRpcRequestIdSchema,
|
|
36
|
-
method: z.literal("tools/call"),
|
|
37
|
-
payload: z.unknown(),
|
|
38
|
-
}).strict();
|
|
39
18
|
const NativeExecutionRecordSchema = z.object({
|
|
19
|
+
// Generated by this server; never a client-provided JSON-RPC request id.
|
|
40
20
|
id: IdentifierSchema,
|
|
41
|
-
|
|
21
|
+
toolName: z.string().min(1).max(1_024),
|
|
42
22
|
status: z.enum(["running", "succeeded", "failed"]),
|
|
43
23
|
createdAt: IsoDateSchema,
|
|
44
24
|
startedAt: IsoDateSchema,
|
|
45
25
|
completedAt: IsoDateSchema.optional(),
|
|
46
26
|
durationMs: z.number().finite().nonnegative().optional(),
|
|
47
|
-
|
|
48
|
-
request: z.object({
|
|
49
|
-
requestId: JsonRpcRequestIdSchema,
|
|
50
|
-
toolName: z.string().min(1).max(1_024),
|
|
51
|
-
arguments: z.record(z.string(), z.unknown()),
|
|
52
|
-
transport: z.enum([
|
|
53
|
-
"stdio",
|
|
54
|
-
"http",
|
|
55
|
-
"streamable_http",
|
|
56
|
-
"streamable-http",
|
|
57
|
-
"sse",
|
|
58
|
-
"inproc",
|
|
59
|
-
"builtin",
|
|
60
|
-
]),
|
|
61
|
-
meta: z.record(z.string(), z.unknown()).optional(),
|
|
62
|
-
}).strict(),
|
|
63
|
-
result: z.unknown().optional(),
|
|
64
|
-
error: z.object({
|
|
65
|
-
code: z.string().min(1).max(128),
|
|
66
|
-
message: z.string().min(1).max(4_096),
|
|
67
|
-
}).strict().optional(),
|
|
68
|
-
tokenUsage: TokenUsageSchema.optional(),
|
|
69
|
-
cost: CostSchema.optional(),
|
|
70
|
-
protocolEvents: z.array(ProtocolEventSchema).min(1).max(2),
|
|
71
|
-
telemetryCorrelation: z.object({
|
|
72
|
-
executionId: IdentifierSchema,
|
|
73
|
-
traceIds: z.array(z.string().regex(/^[0-9a-f]{32}$/u)).max(2),
|
|
74
|
-
spanIds: z.array(z.string().regex(/^[0-9a-f]{16}$/u)).max(2),
|
|
75
|
-
}).strict(),
|
|
27
|
+
errorType: z.string().min(1).max(128).optional(),
|
|
76
28
|
}).strict();
|
|
77
29
|
const NativeExecutionStateSchema = z.object({
|
|
78
30
|
version: z.literal(NATIVE_STATE_VERSION),
|
|
79
31
|
executions: z.array(NativeExecutionRecordSchema),
|
|
80
32
|
}).strict();
|
|
81
|
-
|
|
33
|
+
// Strip unknown fields before migration: legacy request/result contents must
|
|
34
|
+
// never reach a new write, even when an old file contains unrecognized fields.
|
|
35
|
+
const LegacyNativeExecutionStateSchema = z.object({
|
|
36
|
+
version: z.union([z.literal(1), z.literal(2)]),
|
|
37
|
+
executions: z.array(NativeExecutionRecordSchema.omit({ toolName: true, errorType: true })
|
|
38
|
+
.extend({
|
|
39
|
+
request: z.object({ toolName: NativeExecutionRecordSchema.shape.toolName }),
|
|
40
|
+
error: z.object({ code: NativeExecutionRecordSchema.shape.errorType }).optional(),
|
|
41
|
+
}).strip()),
|
|
42
|
+
}).strict();
|
|
43
|
+
/** Bounded operation metadata kept separately from Workbench execution state. */
|
|
82
44
|
export class FileNativeExecutionRepository {
|
|
83
45
|
store;
|
|
84
46
|
openStore;
|
|
@@ -86,18 +48,31 @@ export class FileNativeExecutionRepository {
|
|
|
86
48
|
maxExecutions;
|
|
87
49
|
now;
|
|
88
50
|
initialization;
|
|
51
|
+
needsMigration = false;
|
|
89
52
|
constructor(options = {}) {
|
|
90
53
|
const environment = options.environment ?? process.env;
|
|
91
54
|
const redactor = options.redactor ?? new SecretRedactor({
|
|
92
55
|
environment,
|
|
93
|
-
maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
|
|
94
56
|
});
|
|
95
57
|
this.maxExecutions = positiveInteger(options.maxExecutions ?? DEFAULT_MAX_EXECUTIONS, "maxExecutions");
|
|
96
58
|
this.now = options.now ?? Date.now;
|
|
97
59
|
this.filePath = options.filePath ?? nativeStatePath(environment);
|
|
98
60
|
this.openStore = () => new AtomicJsonStore(this.filePath, {
|
|
99
61
|
initial: () => ({ version: NATIVE_STATE_VERSION, executions: [] }),
|
|
100
|
-
parse: (value) =>
|
|
62
|
+
parse: (value) => {
|
|
63
|
+
const legacy = LegacyNativeExecutionStateSchema.safeParse(value);
|
|
64
|
+
if (!legacy.success)
|
|
65
|
+
return NativeExecutionStateSchema.parse(value);
|
|
66
|
+
this.needsMigration = true;
|
|
67
|
+
return NativeExecutionStateSchema.parse({
|
|
68
|
+
version: NATIVE_STATE_VERSION,
|
|
69
|
+
executions: legacy.data.executions.map(({ request, error, ...record }) => ({
|
|
70
|
+
...record,
|
|
71
|
+
toolName: request.toolName,
|
|
72
|
+
...(error?.code === undefined ? {} : { errorType: error.code }),
|
|
73
|
+
})),
|
|
74
|
+
});
|
|
75
|
+
},
|
|
101
76
|
prepareForWrite: (value) => NativeExecutionStateSchema.parse(redactor.redact(value)),
|
|
102
77
|
});
|
|
103
78
|
this.store = this.openStore();
|
|
@@ -105,13 +80,13 @@ export class FileNativeExecutionRepository {
|
|
|
105
80
|
/**
|
|
106
81
|
* Move a state file this build cannot read out of the way, and say so.
|
|
107
82
|
*
|
|
108
|
-
* The schema deliberately refuses to
|
|
83
|
+
* The schema deliberately refuses to guess an unknown layout, but refusing
|
|
109
84
|
* forever is not the same as refusing to guess: a state file written before a
|
|
110
85
|
* version bump would otherwise fail every single tool call for the life of the
|
|
111
86
|
* installation, because the store caches its failed load and evidence is
|
|
112
87
|
* written before the tool runs. Renaming preserves the old records for anyone
|
|
113
|
-
* who wants them and lets this process start a fresh log.
|
|
114
|
-
*
|
|
88
|
+
* who wants them and lets this process start a fresh log. Known version-1/2
|
|
89
|
+
* files follow the payload-removing migration instead of this recovery path.
|
|
115
90
|
*/
|
|
116
91
|
async archiveUnreadableState(reason) {
|
|
117
92
|
const archived = `${this.filePath}.unreadable-${new Date(this.now()).toISOString().replaceAll(":", "-")}`;
|
|
@@ -155,6 +130,10 @@ export class FileNativeExecutionRepository {
|
|
|
155
130
|
this.store = this.openStore();
|
|
156
131
|
await this.store.initialize();
|
|
157
132
|
}
|
|
133
|
+
if (this.needsMigration) {
|
|
134
|
+
await this.store.replace(await this.store.read());
|
|
135
|
+
this.needsMigration = false;
|
|
136
|
+
}
|
|
158
137
|
const completedMs = this.now();
|
|
159
138
|
const completedAt = timestamp(completedMs);
|
|
160
139
|
const current = await this.store.read();
|
|
@@ -167,10 +146,7 @@ export class FileNativeExecutionRepository {
|
|
|
167
146
|
record.status = "failed";
|
|
168
147
|
record.completedAt = completedAt;
|
|
169
148
|
record.durationMs = Math.max(0, completedMs - Date.parse(record.startedAt));
|
|
170
|
-
record.
|
|
171
|
-
code: "process_interrupted",
|
|
172
|
-
message: "The qyl.mcp process stopped before this native tool call completed.",
|
|
173
|
-
};
|
|
149
|
+
record.errorType = "process_interrupted";
|
|
174
150
|
}
|
|
175
151
|
});
|
|
176
152
|
}
|
|
@@ -187,7 +163,6 @@ export class NativeExecutionRuntime {
|
|
|
187
163
|
this.telemetry = options.telemetry;
|
|
188
164
|
this.redactor = options.redactor ?? new SecretRedactor({
|
|
189
165
|
environment: process.env,
|
|
190
|
-
maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
|
|
191
166
|
});
|
|
192
167
|
this.now = options.now ?? Date.now;
|
|
193
168
|
this.id = options.id ?? randomUUID;
|
|
@@ -196,28 +171,14 @@ export class NativeExecutionRuntime {
|
|
|
196
171
|
const startedMs = this.now();
|
|
197
172
|
const executionId = this.id();
|
|
198
173
|
const startedAt = timestamp(startedMs);
|
|
199
|
-
const requestId = input.ctx.mcpReq.id;
|
|
200
|
-
const durableRequestId = sanitizeRequestId(requestId, this.redactor);
|
|
201
174
|
const toolName = input.request.params.name;
|
|
202
175
|
const operation = this.startTelemetry(input, executionId, startedMs);
|
|
203
176
|
const running = NativeExecutionRecordSchema.parse({
|
|
204
177
|
id: executionId,
|
|
205
|
-
|
|
178
|
+
toolName: this.redactor.redactText(toolName).slice(0, 1_024),
|
|
206
179
|
status: "running",
|
|
207
180
|
createdAt: startedAt,
|
|
208
181
|
startedAt,
|
|
209
|
-
attemptCount: 1,
|
|
210
|
-
request: {
|
|
211
|
-
requestId: durableRequestId,
|
|
212
|
-
toolName: this.redactor.redactText(toolName).slice(0, 1_024),
|
|
213
|
-
arguments: sanitizeArguments(input.request.params.arguments, this.redactor),
|
|
214
|
-
transport: input.transport,
|
|
215
|
-
...(input.request.params._meta === undefined
|
|
216
|
-
? {}
|
|
217
|
-
: { meta: sanitizeRecord(input.request.params._meta, this.redactor) }),
|
|
218
|
-
},
|
|
219
|
-
protocolEvents: [requestEvent(input, durableRequestId, startedAt, this.redactor)],
|
|
220
|
-
telemetryCorrelation: correlation(executionId, operation?.correlation),
|
|
221
182
|
});
|
|
222
183
|
try {
|
|
223
184
|
await this.repository.save(running);
|
|
@@ -225,7 +186,6 @@ export class NativeExecutionRuntime {
|
|
|
225
186
|
catch (error) {
|
|
226
187
|
operation?.end({
|
|
227
188
|
endTimeMs: this.now(),
|
|
228
|
-
jsonRpcRequestId: requestId,
|
|
229
189
|
errorType: "evidence_persistence_failed",
|
|
230
190
|
});
|
|
231
191
|
throw new EvidenceRecordingError(error);
|
|
@@ -243,12 +203,7 @@ export class NativeExecutionRuntime {
|
|
|
243
203
|
status: "failed",
|
|
244
204
|
completedAt,
|
|
245
205
|
durationMs: duration(startedMs, completedMs),
|
|
246
|
-
|
|
247
|
-
protocolEvents: [
|
|
248
|
-
...running.protocolEvents,
|
|
249
|
-
errorEvent(durableRequestId, toolName, completedAt, error, this.redactor),
|
|
250
|
-
],
|
|
251
|
-
telemetryCorrelation: correlation(executionId, operation?.correlation),
|
|
206
|
+
errorType: errorType(error),
|
|
252
207
|
});
|
|
253
208
|
try {
|
|
254
209
|
await this.repository.save(failedRecord);
|
|
@@ -256,14 +211,12 @@ export class NativeExecutionRuntime {
|
|
|
256
211
|
catch (persistenceError) {
|
|
257
212
|
operation?.end({
|
|
258
213
|
endTimeMs: this.now(),
|
|
259
|
-
jsonRpcRequestId: requestId,
|
|
260
214
|
errorType: "evidence_persistence_failed",
|
|
261
215
|
});
|
|
262
216
|
throw new EvidenceRecordingError(persistenceError);
|
|
263
217
|
}
|
|
264
218
|
operation?.end({
|
|
265
219
|
endTimeMs: completedMs,
|
|
266
|
-
jsonRpcRequestId: requestId,
|
|
267
220
|
errorType: errorType(error),
|
|
268
221
|
...(error instanceof ProtocolError
|
|
269
222
|
? { rpcResponseStatusCode: String(error.code) }
|
|
@@ -273,29 +226,13 @@ export class NativeExecutionRuntime {
|
|
|
273
226
|
}
|
|
274
227
|
const completedMs = this.now();
|
|
275
228
|
const completedAt = timestamp(completedMs);
|
|
276
|
-
const durableResult = sanitizePersistedToolResult(result, this.redactor);
|
|
277
|
-
const evidence = extractExecutionEvidence(result);
|
|
278
229
|
const toolFailed = result.isError === true;
|
|
279
230
|
const completedRecord = NativeExecutionRecordSchema.parse({
|
|
280
231
|
...running,
|
|
281
232
|
status: toolFailed ? "failed" : "succeeded",
|
|
282
233
|
completedAt,
|
|
283
234
|
durationMs: duration(startedMs, completedMs),
|
|
284
|
-
|
|
285
|
-
...(toolFailed
|
|
286
|
-
? {
|
|
287
|
-
error: {
|
|
288
|
-
code: "tool_result_error",
|
|
289
|
-
message: "The MCP tool returned an error result.",
|
|
290
|
-
},
|
|
291
|
-
}
|
|
292
|
-
: {}),
|
|
293
|
-
...evidenceFields(evidence, this.redactor),
|
|
294
|
-
protocolEvents: [
|
|
295
|
-
...running.protocolEvents,
|
|
296
|
-
resultEvent(durableRequestId, completedAt, durableResult),
|
|
297
|
-
],
|
|
298
|
-
telemetryCorrelation: correlation(executionId, operation?.correlation),
|
|
235
|
+
...(toolFailed ? { errorType: "tool_result_error" } : {}),
|
|
299
236
|
});
|
|
300
237
|
try {
|
|
301
238
|
await this.repository.save(completedRecord);
|
|
@@ -303,16 +240,13 @@ export class NativeExecutionRuntime {
|
|
|
303
240
|
catch (error) {
|
|
304
241
|
operation?.end({
|
|
305
242
|
endTimeMs: this.now(),
|
|
306
|
-
jsonRpcRequestId: requestId,
|
|
307
243
|
errorType: "evidence_persistence_failed",
|
|
308
244
|
});
|
|
309
245
|
throw new EvidenceRecordingError(error);
|
|
310
246
|
}
|
|
311
247
|
operation?.end({
|
|
312
248
|
endTimeMs: completedMs,
|
|
313
|
-
jsonRpcRequestId: requestId,
|
|
314
249
|
...(toolFailed ? { errorType: "tool_error" } : {}),
|
|
315
|
-
responseBody: this.redactor.redact(result),
|
|
316
250
|
});
|
|
317
251
|
return result;
|
|
318
252
|
}
|
|
@@ -332,7 +266,6 @@ export class NativeExecutionRuntime {
|
|
|
332
266
|
transport: input.transport,
|
|
333
267
|
jsonRpcProtocolVersion: "2.0",
|
|
334
268
|
executionId,
|
|
335
|
-
requestBody: this.redactor.redact(input.request),
|
|
336
269
|
remotePropagation: propagationCarrier(input.request.params._meta),
|
|
337
270
|
startTimeMs: startedMs,
|
|
338
271
|
});
|
|
@@ -444,7 +377,6 @@ export async function closeDefaultNativeExecutionRuntime() {
|
|
|
444
377
|
function createDefaultRuntime(environment) {
|
|
445
378
|
const redactor = new SecretRedactor({
|
|
446
379
|
environment,
|
|
447
|
-
maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
|
|
448
380
|
});
|
|
449
381
|
const repository = new FileNativeExecutionRepository({ environment, redactor });
|
|
450
382
|
let telemetry;
|
|
@@ -460,63 +392,6 @@ function nativeStatePath(environment) {
|
|
|
460
392
|
return environment.QYL_MCP_NATIVE_STATE_PATH
|
|
461
393
|
?? join(homedir(), ".qyl", "mcp-native-executions.json");
|
|
462
394
|
}
|
|
463
|
-
function requestEvent(input, requestId, at, redactor) {
|
|
464
|
-
return {
|
|
465
|
-
sequence: 1,
|
|
466
|
-
timestamp: at,
|
|
467
|
-
direction: "inbound",
|
|
468
|
-
messageKind: "request",
|
|
469
|
-
jsonrpc: "2.0",
|
|
470
|
-
requestId,
|
|
471
|
-
method: "tools/call",
|
|
472
|
-
payload: boundPayload(redactor.redact({
|
|
473
|
-
jsonrpc: "2.0",
|
|
474
|
-
id: requestId,
|
|
475
|
-
method: "tools/call",
|
|
476
|
-
params: input.request.params,
|
|
477
|
-
})),
|
|
478
|
-
};
|
|
479
|
-
}
|
|
480
|
-
function resultEvent(requestId, at, result) {
|
|
481
|
-
return {
|
|
482
|
-
sequence: 2,
|
|
483
|
-
timestamp: at,
|
|
484
|
-
direction: "outbound",
|
|
485
|
-
messageKind: "result",
|
|
486
|
-
jsonrpc: "2.0",
|
|
487
|
-
requestId,
|
|
488
|
-
method: "tools/call",
|
|
489
|
-
payload: boundPayload({ jsonrpc: "2.0", id: requestId, result }),
|
|
490
|
-
};
|
|
491
|
-
}
|
|
492
|
-
function errorEvent(requestId, toolName, at, error, redactor) {
|
|
493
|
-
const evidence = errorEvidence(error, redactor);
|
|
494
|
-
return {
|
|
495
|
-
sequence: 2,
|
|
496
|
-
timestamp: at,
|
|
497
|
-
direction: "outbound",
|
|
498
|
-
messageKind: "error",
|
|
499
|
-
jsonrpc: "2.0",
|
|
500
|
-
requestId,
|
|
501
|
-
method: "tools/call",
|
|
502
|
-
payload: boundPayload({
|
|
503
|
-
jsonrpc: "2.0",
|
|
504
|
-
id: requestId,
|
|
505
|
-
error: {
|
|
506
|
-
code: error instanceof ProtocolError ? error.code : ProtocolErrorCode.InternalError,
|
|
507
|
-
message: evidence.message,
|
|
508
|
-
data: { toolName: redactor.redactText(toolName).slice(0, 1_024) },
|
|
509
|
-
},
|
|
510
|
-
}),
|
|
511
|
-
};
|
|
512
|
-
}
|
|
513
|
-
function errorEvidence(error, redactor) {
|
|
514
|
-
const message = redactor.redactText(error instanceof Error ? error.message : String(error));
|
|
515
|
-
return {
|
|
516
|
-
code: errorType(error),
|
|
517
|
-
message: message.trim().length === 0 ? "Native MCP tool execution failed." : message.slice(0, 4_096),
|
|
518
|
-
};
|
|
519
|
-
}
|
|
520
395
|
function errorType(error) {
|
|
521
396
|
if (error instanceof ProtocolError)
|
|
522
397
|
return `mcp_${error.code}`;
|
|
@@ -525,61 +400,15 @@ function errorType(error) {
|
|
|
525
400
|
}
|
|
526
401
|
return "native_tool_failure";
|
|
527
402
|
}
|
|
528
|
-
function correlation(executionId, span) {
|
|
529
|
-
return {
|
|
530
|
-
executionId,
|
|
531
|
-
traceIds: span === undefined ? [] : [span.traceId],
|
|
532
|
-
spanIds: span === undefined ? [] : [span.spanId],
|
|
533
|
-
};
|
|
534
|
-
}
|
|
535
403
|
function propagationCarrier(value) {
|
|
536
404
|
if (!isRecord(value))
|
|
537
405
|
return undefined;
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
}
|
|
545
|
-
function sanitizeRecord(value, redactor) {
|
|
546
|
-
const sanitized = redactor.redact(value);
|
|
547
|
-
if (!isRecord(sanitized))
|
|
548
|
-
return {};
|
|
549
|
-
const bounded = boundPayload(sanitized);
|
|
550
|
-
return isRecord(bounded) ? bounded : {};
|
|
551
|
-
}
|
|
552
|
-
function boundPayload(value) {
|
|
553
|
-
const serialized = JSON.stringify(value);
|
|
554
|
-
if (serialized === undefined || serialized.length <= MAX_PROTOCOL_PAYLOAD_CHARACTERS) {
|
|
555
|
-
return value;
|
|
556
|
-
}
|
|
557
|
-
return {
|
|
558
|
-
truncated: true,
|
|
559
|
-
originalCharacters: serialized.length,
|
|
560
|
-
preview: `${serialized.slice(0, MAX_PROTOCOL_PAYLOAD_CHARACTERS - 1)}…`,
|
|
561
|
-
};
|
|
562
|
-
}
|
|
563
|
-
function evidenceFields(evidence, redactor) {
|
|
564
|
-
const source = evidence.cost?.source === undefined
|
|
565
|
-
? undefined
|
|
566
|
-
: redactor.redactText(evidence.cost.source).trim().slice(0, 256);
|
|
567
|
-
const cost = evidence.cost === undefined
|
|
568
|
-
? undefined
|
|
569
|
-
: {
|
|
570
|
-
amount_usd: evidence.cost.amount_usd,
|
|
571
|
-
estimated: evidence.cost.estimated,
|
|
572
|
-
...(source === undefined || source.length === 0 ? {} : { source }),
|
|
573
|
-
};
|
|
574
|
-
return {
|
|
575
|
-
...(evidence.tokenUsage === undefined ? {} : { tokenUsage: evidence.tokenUsage }),
|
|
576
|
-
...(cost === undefined ? {} : { cost }),
|
|
577
|
-
};
|
|
578
|
-
}
|
|
579
|
-
function sanitizeRequestId(value, redactor) {
|
|
580
|
-
return typeof value === "string"
|
|
581
|
-
? redactor.redactText(value).slice(0, 2_048)
|
|
582
|
-
: value;
|
|
406
|
+
// Preserve trace parenting without passing arbitrary metadata or baggage to
|
|
407
|
+
// logging/exporters. OpenTelemetry validates the trace/span IDs on extraction.
|
|
408
|
+
const traceparent = value.traceparent;
|
|
409
|
+
return typeof traceparent === "string"
|
|
410
|
+
? { traceparent }
|
|
411
|
+
: undefined;
|
|
583
412
|
}
|
|
584
413
|
function duration(startedMs, completedMs) {
|
|
585
414
|
return Math.max(0, completedMs - startedMs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-execution.js","sourceRoot":"","sources":["../src/native-execution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-execution.js","sourceRoot":"","sources":["../src/native-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OAuthMetadata } from "@modelcontextprotocol/server";
|
|
2
|
+
export declare function secureMetadataUrl(value: unknown, field: string): URL;
|
|
3
|
+
/** The hosted Auth0 profile supports both CIMD client types and DCR.
|
|
4
|
+
* This checks discovery capabilities, not whether Auth0 has enabled DCR or
|
|
5
|
+
* provisioned any particular client and API grant.
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateAuthorizationServerCapabilities(metadata: OAuthMetadata): void;
|
|
8
|
+
export declare function fetchAuthorizationServerMetadata(issuer: URL): Promise<OAuthMetadata>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { OAuthMetadataSchema } from "@modelcontextprotocol/core";
|
|
2
|
+
const DISCOVERY_TIMEOUT_MS = 10_000;
|
|
3
|
+
const ASYMMETRIC_ALGORITHMS = new Set([
|
|
4
|
+
"RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512", "EdDSA",
|
|
5
|
+
]);
|
|
6
|
+
export function secureMetadataUrl(value, field) {
|
|
7
|
+
let url;
|
|
8
|
+
try {
|
|
9
|
+
if (typeof value !== "string")
|
|
10
|
+
throw new Error();
|
|
11
|
+
url = new URL(value);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
throw new Error(`Authorization Server must advertise a valid ${field}`);
|
|
15
|
+
}
|
|
16
|
+
if (url.protocol !== "https:" || url.username || url.password || url.hash) {
|
|
17
|
+
throw new Error(`Authorization Server must advertise an HTTPS ${field} without credentials or fragments`);
|
|
18
|
+
}
|
|
19
|
+
return url;
|
|
20
|
+
}
|
|
21
|
+
/** The hosted Auth0 profile supports both CIMD client types and DCR.
|
|
22
|
+
* This checks discovery capabilities, not whether Auth0 has enabled DCR or
|
|
23
|
+
* provisioned any particular client and API grant.
|
|
24
|
+
*/
|
|
25
|
+
export function validateAuthorizationServerCapabilities(metadata) {
|
|
26
|
+
for (const field of ["authorization_endpoint", "token_endpoint", "registration_endpoint", "jwks_uri"]) {
|
|
27
|
+
secureMetadataUrl(metadata[field], field);
|
|
28
|
+
}
|
|
29
|
+
if (metadata.client_id_metadata_document_supported !== true) {
|
|
30
|
+
throw new Error("Authorization Server must enable Client ID Metadata Document Registration (CIMD)");
|
|
31
|
+
}
|
|
32
|
+
if (!metadata.code_challenge_methods_supported?.includes("S256")) {
|
|
33
|
+
throw new Error("Authorization Server must advertise PKCE S256");
|
|
34
|
+
}
|
|
35
|
+
if (!metadata.response_types_supported.includes("code")
|
|
36
|
+
|| (metadata.grant_types_supported !== undefined
|
|
37
|
+
&& !metadata.grant_types_supported.includes("authorization_code"))) {
|
|
38
|
+
throw new Error("Authorization Server must support the authorization_code flow");
|
|
39
|
+
}
|
|
40
|
+
if (metadata.authorization_response_iss_parameter_supported !== true) {
|
|
41
|
+
throw new Error("Authorization Server must advertise authorization response issuer identification");
|
|
42
|
+
}
|
|
43
|
+
if (!metadata.token_endpoint_auth_methods_supported?.includes("private_key_jwt")
|
|
44
|
+
|| !metadata.token_endpoint_auth_signing_alg_values_supported?.some((alg) => ASYMMETRIC_ALGORITHMS.has(alg))) {
|
|
45
|
+
throw new Error("Authorization Server must support ChatGPT CIMD private_key_jwt with an asymmetric signing algorithm");
|
|
46
|
+
}
|
|
47
|
+
if (!metadata.token_endpoint_auth_methods_supported.includes("none")) {
|
|
48
|
+
throw new Error("Authorization Server must support Claude CIMD public-client token exchange (none)");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function fetchAuthorizationServerMetadata(issuer) {
|
|
52
|
+
secureMetadataUrl(issuer.href, "issuer");
|
|
53
|
+
if (issuer.search)
|
|
54
|
+
throw new Error("Authorization Server issuer must not contain a query");
|
|
55
|
+
// RFC 8414 inserts the well-known component before an issuer path; OIDC
|
|
56
|
+
// also defines the path-appended location. No redirects change the trust anchor.
|
|
57
|
+
const issuerPath = issuer.pathname.replace(/\/$/u, "");
|
|
58
|
+
const candidates = [...new Set([
|
|
59
|
+
`${issuer.origin}/.well-known/oauth-authorization-server${issuerPath}`,
|
|
60
|
+
`${issuer.origin}/.well-known/openid-configuration${issuerPath}`,
|
|
61
|
+
`${issuer.origin}${issuerPath}/.well-known/openid-configuration`,
|
|
62
|
+
])];
|
|
63
|
+
const failures = [];
|
|
64
|
+
for (const candidate of candidates) {
|
|
65
|
+
try {
|
|
66
|
+
const response = await fetch(candidate, {
|
|
67
|
+
headers: { accept: "application/json" },
|
|
68
|
+
redirect: "error",
|
|
69
|
+
signal: AbortSignal.timeout(DISCOVERY_TIMEOUT_MS),
|
|
70
|
+
});
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
failures.push(`HTTP ${response.status}`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const parsed = OAuthMetadataSchema.safeParse(await response.json());
|
|
76
|
+
if (!parsed.success || parsed.data.issuer !== issuer.href) {
|
|
77
|
+
failures.push(parsed.success ? "issuer mismatch" : "invalid metadata");
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// looseObject preserves provider extension fields without fabricating them.
|
|
81
|
+
return parsed.data;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
failures.push("discovery request failed");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Unable to load Authorization Server metadata from ${issuer.href} (${failures.join("; ")})`);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=oauth-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-metadata.js","sourceRoot":"","sources":["../src/oauth-metadata.ts"],"names":[],"mappings":"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"}
|