@calltelemetry/ct-lab-mcp 0.8.84 → 0.8.86
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/src/access-auth.d.ts +19 -0
- package/dist/src/access-auth.d.ts.map +1 -0
- package/dist/src/access-auth.js +52 -0
- package/dist/src/access-auth.js.map +1 -0
- package/dist/src/agent.d.ts +7 -0
- package/dist/src/agent.d.ts.map +1 -0
- package/dist/src/agent.js +14 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/provenance.d.ts.map +1 -1
- package/dist/src/provenance.js +24 -15
- package/dist/src/provenance.js.map +1 -1
- package/dist/src/proxmox/client.d.ts.map +1 -1
- package/dist/src/proxmox/client.js +36 -10
- package/dist/src/proxmox/client.js.map +1 -1
- package/dist/src/slot/manager.d.ts.map +1 -1
- package/dist/src/slot/manager.js +25 -10
- package/dist/src/slot/manager.js.map +1 -1
- package/dist/src/slot/types.d.ts +1 -1
- package/dist/src/slot/types.d.ts.map +1 -1
- package/dist/src/tools/appliance-candidate-retire.d.ts +6 -6
- package/dist/src/tools/appliance-claim-tools.d.ts +4 -3
- package/dist/src/tools/appliance-claim-tools.d.ts.map +1 -1
- package/dist/src/tools/appliance-claim-tools.js +3 -1
- package/dist/src/tools/appliance-claim-tools.js.map +1 -1
- package/dist/src/tools/canonical-guard.d.ts +1 -1
- package/dist/src/tools/claim-creation-projection.d.ts.map +1 -1
- package/dist/src/tools/claim-creation-projection.js +14 -4
- package/dist/src/tools/claim-creation-projection.js.map +1 -1
- package/dist/src/tools/claim-first.d.ts.map +1 -1
- package/dist/src/tools/claim-first.js +8 -6
- package/dist/src/tools/claim-first.js.map +1 -1
- package/dist/src/tools/claimed-import-qcow.d.ts.map +1 -1
- package/dist/src/tools/claimed-import-qcow.js +3 -2
- package/dist/src/tools/claimed-import-qcow.js.map +1 -1
- package/dist/src/tools/cucm-emulator-tool.d.ts +2 -2
- package/dist/src/tools/lab-dev.d.ts +2 -2
- package/dist/src/tools/license-tools.d.ts +4 -4
- package/dist/src/tools/list-hosts.d.ts +2 -2
- package/dist/src/tools/list-inventory.d.ts +1 -1
- package/dist/src/tools/physical-slot.d.ts.map +1 -1
- package/dist/src/tools/physical-slot.js +8 -4
- package/dist/src/tools/physical-slot.js.map +1 -1
- package/dist/src/tools/proxmox-host-policy.d.ts +4 -3
- package/dist/src/tools/proxmox-host-policy.d.ts.map +1 -1
- package/dist/src/tools/proxmox-host-policy.js +2 -8
- package/dist/src/tools/proxmox-host-policy.js.map +1 -1
- package/dist/src/tools/purge-slots.d.ts +2 -2
- package/dist/src/tools/server-management.d.ts +2 -2
- package/dist/src/tools/slot-tools.d.ts +10 -10
- package/dist/src/tools/slot-tools.js +2 -2
- package/dist/src/tools/slot-tools.js.map +1 -1
- package/dist/src/tools/storage-tools.d.ts +26 -26
- package/dist/src/tools/vm-action.d.ts +8 -8
- package/dist/src/tools/vm-cleanup.d.ts +1 -1
- package/dist/src/worker-adapter.d.ts +10 -0
- package/dist/src/worker-adapter.d.ts.map +1 -0
- package/dist/src/worker-adapter.js +94 -0
- package/dist/src/worker-adapter.js.map +1 -0
- package/dist/src/worker.d.ts +36 -0
- package/dist/src/worker.d.ts.map +1 -0
- package/dist/src/worker.js +151 -0
- package/dist/src/worker.js.map +1 -0
- package/package.json +13 -4
|
@@ -20,12 +20,12 @@ export declare const ListStorageInputSchema: z.ZodObject<{
|
|
|
20
20
|
includeContent: z.ZodOptional<z.ZodBoolean>;
|
|
21
21
|
storage: z.ZodOptional<z.ZodString>;
|
|
22
22
|
}, "strip", z.ZodTypeAny, {
|
|
23
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176"
|
|
23
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "proxmox-ibm64" | "esxi-intel-192-168-123-176";
|
|
24
24
|
storage?: string | undefined;
|
|
25
25
|
includeContent?: boolean | undefined;
|
|
26
26
|
}, {
|
|
27
27
|
storage?: string | undefined;
|
|
28
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176" |
|
|
28
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | undefined;
|
|
29
29
|
includeContent?: boolean | undefined;
|
|
30
30
|
}>;
|
|
31
31
|
type CanonicalStoragePool = Omit<StoragePoolInfo, "content" | "enabled" | "shared"> & {
|
|
@@ -62,14 +62,14 @@ export declare const ListSnapshotsInputSchema: z.ZodObject<{
|
|
|
62
62
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "all"]>>>;
|
|
63
63
|
vmId: z.ZodOptional<z.ZodString>;
|
|
64
64
|
}, "strip", z.ZodTypeAny, {
|
|
65
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176"
|
|
65
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "proxmox-ibm64" | "esxi-intel-192-168-123-176";
|
|
66
66
|
vmId?: string | undefined;
|
|
67
67
|
linearIssue?: string | undefined;
|
|
68
68
|
leaseId?: string | undefined;
|
|
69
69
|
assetId?: string | undefined;
|
|
70
70
|
operatorClaimUid?: string | undefined;
|
|
71
71
|
}, {
|
|
72
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176" |
|
|
72
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | undefined;
|
|
73
73
|
vmId?: string | undefined;
|
|
74
74
|
linearIssue?: string | undefined;
|
|
75
75
|
leaseId?: string | undefined;
|
|
@@ -91,13 +91,13 @@ export declare const CleanStorageInputSchema: z.ZodObject<{
|
|
|
91
91
|
vmId: z.ZodOptional<z.ZodString>;
|
|
92
92
|
snapshotName: z.ZodOptional<z.ZodString>;
|
|
93
93
|
}, "strip", z.ZodTypeAny, {
|
|
94
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176"
|
|
94
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176";
|
|
95
95
|
action: "delete_volume" | "delete_snapshot";
|
|
96
96
|
vmId?: string | undefined;
|
|
97
97
|
snapshotName?: string | undefined;
|
|
98
98
|
volumeId?: string | undefined;
|
|
99
99
|
}, {
|
|
100
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176"
|
|
100
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176";
|
|
101
101
|
action: "delete_volume" | "delete_snapshot";
|
|
102
102
|
vmId?: string | undefined;
|
|
103
103
|
snapshotName?: string | undefined;
|
|
@@ -114,19 +114,19 @@ export declare const GetVmStorageInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
114
114
|
vmIdOrName: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
115
115
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "auto"]>>>;
|
|
116
116
|
}, "strip", z.ZodTypeAny, {
|
|
117
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
117
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
118
118
|
target?: string | number | undefined;
|
|
119
119
|
vmIdOrName?: string | number | undefined;
|
|
120
120
|
}, {
|
|
121
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
121
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
122
122
|
target?: string | number | undefined;
|
|
123
123
|
vmIdOrName?: string | number | undefined;
|
|
124
124
|
}>, {
|
|
125
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
125
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
126
126
|
target?: string | number | undefined;
|
|
127
127
|
vmIdOrName?: string | number | undefined;
|
|
128
128
|
}, {
|
|
129
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
129
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
130
130
|
target?: string | number | undefined;
|
|
131
131
|
vmIdOrName?: string | number | undefined;
|
|
132
132
|
}>;
|
|
@@ -145,26 +145,26 @@ export declare const MountIsoInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
145
145
|
drive: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
146
146
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "auto"]>>>;
|
|
147
147
|
}, "strip", z.ZodTypeAny, {
|
|
148
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
148
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
149
149
|
iso: string;
|
|
150
150
|
drive: string;
|
|
151
151
|
target?: string | number | undefined;
|
|
152
152
|
vmIdOrName?: string | number | undefined;
|
|
153
153
|
}, {
|
|
154
154
|
iso: string;
|
|
155
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
155
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
156
156
|
target?: string | number | undefined;
|
|
157
157
|
vmIdOrName?: string | number | undefined;
|
|
158
158
|
drive?: string | undefined;
|
|
159
159
|
}>, {
|
|
160
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
160
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
161
161
|
iso: string;
|
|
162
162
|
drive: string;
|
|
163
163
|
target?: string | number | undefined;
|
|
164
164
|
vmIdOrName?: string | number | undefined;
|
|
165
165
|
}, {
|
|
166
166
|
iso: string;
|
|
167
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
167
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
168
168
|
target?: string | number | undefined;
|
|
169
169
|
vmIdOrName?: string | number | undefined;
|
|
170
170
|
drive?: string | undefined;
|
|
@@ -182,22 +182,22 @@ export declare const UnmountIsoInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
182
182
|
drive: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
183
183
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "auto"]>>>;
|
|
184
184
|
}, "strip", z.ZodTypeAny, {
|
|
185
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
185
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
186
186
|
drive: string;
|
|
187
187
|
target?: string | number | undefined;
|
|
188
188
|
vmIdOrName?: string | number | undefined;
|
|
189
189
|
}, {
|
|
190
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
190
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
191
191
|
target?: string | number | undefined;
|
|
192
192
|
vmIdOrName?: string | number | undefined;
|
|
193
193
|
drive?: string | undefined;
|
|
194
194
|
}>, {
|
|
195
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
195
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
196
196
|
drive: string;
|
|
197
197
|
target?: string | number | undefined;
|
|
198
198
|
vmIdOrName?: string | number | undefined;
|
|
199
199
|
}, {
|
|
200
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
200
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
201
201
|
target?: string | number | undefined;
|
|
202
202
|
vmIdOrName?: string | number | undefined;
|
|
203
203
|
drive?: string | undefined;
|
|
@@ -239,7 +239,7 @@ export declare const CreateSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
239
239
|
includeRam: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
240
240
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "auto"]>>>;
|
|
241
241
|
}, "strip", z.ZodTypeAny, {
|
|
242
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
242
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
243
243
|
snapshotName: string;
|
|
244
244
|
apply: boolean;
|
|
245
245
|
includeRam: boolean;
|
|
@@ -258,7 +258,7 @@ export declare const CreateSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
258
258
|
}, {
|
|
259
259
|
snapshotName: string;
|
|
260
260
|
description?: string | undefined;
|
|
261
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
261
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
262
262
|
linearIssue?: string | undefined;
|
|
263
263
|
target?: string | number | undefined;
|
|
264
264
|
leaseId?: string | undefined;
|
|
@@ -273,7 +273,7 @@ export declare const CreateSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
273
273
|
vmIdOrName?: string | number | undefined;
|
|
274
274
|
includeRam?: boolean | undefined;
|
|
275
275
|
}>, {
|
|
276
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
276
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
277
277
|
snapshotName: string;
|
|
278
278
|
apply: boolean;
|
|
279
279
|
includeRam: boolean;
|
|
@@ -292,7 +292,7 @@ export declare const CreateSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
292
292
|
}, {
|
|
293
293
|
snapshotName: string;
|
|
294
294
|
description?: string | undefined;
|
|
295
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
295
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
296
296
|
linearIssue?: string | undefined;
|
|
297
297
|
target?: string | number | undefined;
|
|
298
298
|
leaseId?: string | undefined;
|
|
@@ -340,7 +340,7 @@ export declare const RollbackSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
340
340
|
snapshotName: z.ZodString;
|
|
341
341
|
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "proxmox-ibm64", "esxi-intel-192-168-123-176", "auto"]>>>;
|
|
342
342
|
}, "strip", z.ZodTypeAny, {
|
|
343
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
343
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
344
344
|
snapshotName: string;
|
|
345
345
|
apply: boolean;
|
|
346
346
|
linearIssue?: string | undefined;
|
|
@@ -356,7 +356,7 @@ export declare const RollbackSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
356
356
|
vmIdOrName?: string | number | undefined;
|
|
357
357
|
}, {
|
|
358
358
|
snapshotName: string;
|
|
359
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
359
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
360
360
|
linearIssue?: string | undefined;
|
|
361
361
|
target?: string | number | undefined;
|
|
362
362
|
leaseId?: string | undefined;
|
|
@@ -370,7 +370,7 @@ export declare const RollbackSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
370
370
|
confirmPlanSha?: string | undefined;
|
|
371
371
|
vmIdOrName?: string | number | undefined;
|
|
372
372
|
}>, {
|
|
373
|
-
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto"
|
|
373
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto";
|
|
374
374
|
snapshotName: string;
|
|
375
375
|
apply: boolean;
|
|
376
376
|
linearIssue?: string | undefined;
|
|
@@ -386,7 +386,7 @@ export declare const RollbackSnapshotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
386
386
|
vmIdOrName?: string | number | undefined;
|
|
387
387
|
}, {
|
|
388
388
|
snapshotName: string;
|
|
389
|
-
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "esxi-intel-192-168-123-176" | "auto" |
|
|
389
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | "esxi-intel-192-168-123-176" | "auto" | undefined;
|
|
390
390
|
linearIssue?: string | undefined;
|
|
391
391
|
target?: string | number | undefined;
|
|
392
392
|
leaseId?: string | undefined;
|
|
@@ -127,15 +127,15 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
127
127
|
timeoutSeconds: z.ZodOptional<z.ZodNumber>;
|
|
128
128
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json"]>>>;
|
|
129
129
|
}, "strip", z.ZodTypeAny, {
|
|
130
|
-
action: "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "
|
|
130
|
+
action: "status" | "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "destroy" | "clone";
|
|
131
131
|
format: "table" | "json";
|
|
132
132
|
apply: boolean;
|
|
133
133
|
force: boolean;
|
|
134
134
|
ackUntracked: boolean;
|
|
135
135
|
ackManualCleanup: boolean;
|
|
136
|
+
reason?: string | undefined;
|
|
136
137
|
host?: string | undefined;
|
|
137
138
|
vmid?: string | number | undefined;
|
|
138
|
-
reason?: string | undefined;
|
|
139
139
|
timeoutSeconds?: number | undefined;
|
|
140
140
|
hostAssetId?: string | undefined;
|
|
141
141
|
assetId?: string | undefined;
|
|
@@ -162,11 +162,11 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
162
162
|
macAddress?: string | undefined;
|
|
163
163
|
} | undefined;
|
|
164
164
|
}, {
|
|
165
|
-
action: "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "
|
|
165
|
+
action: "status" | "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "destroy" | "clone";
|
|
166
|
+
reason?: string | undefined;
|
|
166
167
|
host?: string | undefined;
|
|
167
168
|
vmid?: string | number | undefined;
|
|
168
169
|
format?: "table" | "json" | undefined;
|
|
169
|
-
reason?: string | undefined;
|
|
170
170
|
timeoutSeconds?: number | undefined;
|
|
171
171
|
hostAssetId?: string | undefined;
|
|
172
172
|
assetId?: string | undefined;
|
|
@@ -197,15 +197,15 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
197
197
|
macAddress?: string | undefined;
|
|
198
198
|
} | undefined;
|
|
199
199
|
}>, {
|
|
200
|
-
action: "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "
|
|
200
|
+
action: "status" | "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "destroy" | "clone";
|
|
201
201
|
format: "table" | "json";
|
|
202
202
|
apply: boolean;
|
|
203
203
|
force: boolean;
|
|
204
204
|
ackUntracked: boolean;
|
|
205
205
|
ackManualCleanup: boolean;
|
|
206
|
+
reason?: string | undefined;
|
|
206
207
|
host?: string | undefined;
|
|
207
208
|
vmid?: string | number | undefined;
|
|
208
|
-
reason?: string | undefined;
|
|
209
209
|
timeoutSeconds?: number | undefined;
|
|
210
210
|
hostAssetId?: string | undefined;
|
|
211
211
|
assetId?: string | undefined;
|
|
@@ -232,11 +232,11 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
232
232
|
macAddress?: string | undefined;
|
|
233
233
|
} | undefined;
|
|
234
234
|
}, {
|
|
235
|
-
action: "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "
|
|
235
|
+
action: "status" | "config" | "start" | "stop" | "reboot" | "shutdown" | "reset" | "suspend" | "resume" | "destroy" | "clone";
|
|
236
|
+
reason?: string | undefined;
|
|
236
237
|
host?: string | undefined;
|
|
237
238
|
vmid?: string | number | undefined;
|
|
238
239
|
format?: "table" | "json" | undefined;
|
|
239
|
-
reason?: string | undefined;
|
|
240
240
|
timeoutSeconds?: number | undefined;
|
|
241
241
|
hostAssetId?: string | undefined;
|
|
242
242
|
assetId?: string | undefined;
|
|
@@ -87,9 +87,9 @@ export declare const CleanupExpiredVmsInputSchema: z.ZodObject<{
|
|
|
87
87
|
warnHours?: number | undefined;
|
|
88
88
|
outputFile?: string | undefined;
|
|
89
89
|
}, {
|
|
90
|
+
reason?: string | undefined;
|
|
90
91
|
dryRun?: boolean | undefined;
|
|
91
92
|
format?: "table" | "json" | undefined;
|
|
92
|
-
reason?: string | undefined;
|
|
93
93
|
hostAssetId?: string | undefined;
|
|
94
94
|
apply?: boolean | undefined;
|
|
95
95
|
artifactReceipt?: string | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal adapter bridging v1 MCP tool registration (`server.tool(...)`)
|
|
3
|
+
* onto v2 `@modelcontextprotocol/server` (`server.registerTool(...)`).
|
|
4
|
+
*/
|
|
5
|
+
export interface UniversalToolServer {
|
|
6
|
+
tool(name: string, ...args: any[]): void;
|
|
7
|
+
registerTool(name: string, config: any, handler: any): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function createUniversalAdapter(server: any): UniversalToolServer;
|
|
10
|
+
//# sourceMappingURL=worker-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../src/worker-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,mBAAmB,CA4FvE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal adapter bridging v1 MCP tool registration (`server.tool(...)`)
|
|
3
|
+
* onto v2 `@modelcontextprotocol/server` (`server.registerTool(...)`).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
7
|
+
import { fromJsonSchema } from '@modelcontextprotocol/server';
|
|
8
|
+
export function createUniversalAdapter(server) {
|
|
9
|
+
const adapter = {
|
|
10
|
+
registerTool(name, config, handler) {
|
|
11
|
+
let inputSchema = config?.inputSchema;
|
|
12
|
+
if (inputSchema && typeof inputSchema === 'object' && '_def' in inputSchema) {
|
|
13
|
+
const jsonSchema = zodToJsonSchema(inputSchema, { target: 'openApi3' });
|
|
14
|
+
inputSchema = fromJsonSchema(jsonSchema);
|
|
15
|
+
}
|
|
16
|
+
else if (inputSchema && typeof inputSchema === 'object' && !('type' in inputSchema) && !('$ref' in inputSchema)) {
|
|
17
|
+
const jsonSchema = zodToJsonSchema(z.object(inputSchema), { target: 'openApi3' });
|
|
18
|
+
inputSchema = fromJsonSchema(jsonSchema);
|
|
19
|
+
}
|
|
20
|
+
else if (inputSchema && typeof inputSchema === 'object') {
|
|
21
|
+
inputSchema = fromJsonSchema(inputSchema);
|
|
22
|
+
}
|
|
23
|
+
server.registerTool(name, {
|
|
24
|
+
description: config?.description || '',
|
|
25
|
+
inputSchema,
|
|
26
|
+
}, async (toolArgs) => {
|
|
27
|
+
try {
|
|
28
|
+
return await handler(toolArgs);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
return {
|
|
32
|
+
isError: true,
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: err instanceof Error ? err.message : String(err),
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
tool(name, ...args) {
|
|
44
|
+
let description = '';
|
|
45
|
+
let schema = {};
|
|
46
|
+
let cb;
|
|
47
|
+
if (args.length === 1) {
|
|
48
|
+
cb = args[0];
|
|
49
|
+
}
|
|
50
|
+
else if (args.length === 2) {
|
|
51
|
+
if (typeof args[0] === 'string') {
|
|
52
|
+
description = args[0];
|
|
53
|
+
cb = args[1];
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
schema = args[0];
|
|
57
|
+
cb = args[1];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (args.length === 3) {
|
|
61
|
+
description = args[0];
|
|
62
|
+
schema = args[1];
|
|
63
|
+
cb = args[2];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
throw new Error(`Unexpected argument count ${args.length} for tool ${name}`);
|
|
67
|
+
}
|
|
68
|
+
// If schema is a raw shape object rather than a Zod schema instance, wrap with z.object()
|
|
69
|
+
const zodSchema = schema && typeof schema === 'object' && !('_def' in schema)
|
|
70
|
+
? z.object(schema)
|
|
71
|
+
: (schema || z.object({}));
|
|
72
|
+
const jsonSchema = zodToJsonSchema(zodSchema, { target: 'openApi3' });
|
|
73
|
+
const inputSchema = fromJsonSchema(jsonSchema);
|
|
74
|
+
server.registerTool(name, { description, inputSchema }, async (toolArgs) => {
|
|
75
|
+
try {
|
|
76
|
+
return await cb(toolArgs);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
return {
|
|
80
|
+
isError: true,
|
|
81
|
+
content: [
|
|
82
|
+
{
|
|
83
|
+
type: 'text',
|
|
84
|
+
text: err instanceof Error ? err.message : String(err),
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
return adapter;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=worker-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-adapter.js","sourceRoot":"","sources":["../../src/worker-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers entrypoint: stateless streamable-HTTP MCP (spec 2026-07-28)
|
|
3
|
+
* for Call Telemetry Lab MCP Server (ct-lab-mcp).
|
|
4
|
+
*
|
|
5
|
+
* One MCP server instance is created per request by `createMcpHandler`; there is
|
|
6
|
+
* no session map, so any isolate can serve any request.
|
|
7
|
+
*/
|
|
8
|
+
import { McpServer } from '@modelcontextprotocol/server';
|
|
9
|
+
import { type AccessEnv } from './access-auth.js';
|
|
10
|
+
export declare const SERVER_NAME = "ct-lab-mcp";
|
|
11
|
+
export declare const SERVER_VERSION: string;
|
|
12
|
+
export interface Env extends AccessEnv {
|
|
13
|
+
MCP_BASE_PATH?: string;
|
|
14
|
+
LAB_PROXMOX_URL?: string;
|
|
15
|
+
LAB_PROXMOX_USERNAME?: string;
|
|
16
|
+
LAB_PROXMOX_PASSWORD?: string;
|
|
17
|
+
LAB_PROXMOX_REALM?: string;
|
|
18
|
+
LAB_PROXMOX_MINIS_URL?: string;
|
|
19
|
+
LAB_PROXMOX_MINIS_USERNAME?: string;
|
|
20
|
+
LAB_PROXMOX_MINIS_PASSWORD?: string;
|
|
21
|
+
LAB_PROXMOX_MINIS_REALM?: string;
|
|
22
|
+
LAB_VM_CREDENTIALS_USERNAME?: string;
|
|
23
|
+
LAB_VM_CREDENTIALS_PASSWORD?: string;
|
|
24
|
+
ALLOW_ESXI_SLOTS?: string;
|
|
25
|
+
ESXI_SCAN?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function createWorkerServer(env: Env): McpServer;
|
|
28
|
+
export interface WorkerExecutionContext {
|
|
29
|
+
waitUntil(promise: Promise<unknown>): void;
|
|
30
|
+
passThroughOnException?(): void;
|
|
31
|
+
}
|
|
32
|
+
declare const _default: {
|
|
33
|
+
fetch(request: Request, env: Env, ctx: WorkerExecutionContext): Promise<Response>;
|
|
34
|
+
};
|
|
35
|
+
export default _default;
|
|
36
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAehE,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,cAAc,QAA8B,CAAC;AAE1D,MAAM,WAAW,GAAI,SAAQ,SAAS;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CA0FtD;AASD,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,sBAAsB,CAAC,IAAI,IAAI,CAAC;CACjC;;mBAGsB,OAAO,OAAO,GAAG,OAAO,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADzF,wBAsDE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers entrypoint: stateless streamable-HTTP MCP (spec 2026-07-28)
|
|
3
|
+
* for Call Telemetry Lab MCP Server (ct-lab-mcp).
|
|
4
|
+
*
|
|
5
|
+
* One MCP server instance is created per request by `createMcpHandler`; there is
|
|
6
|
+
* no session map, so any isolate can serve any request.
|
|
7
|
+
*/
|
|
8
|
+
import { McpServer } from '@modelcontextprotocol/server';
|
|
9
|
+
import { createMcpHandler } from 'agents/mcp/server';
|
|
10
|
+
import { verifyAccess } from './access-auth.js';
|
|
11
|
+
import { agentOf } from './agent.js';
|
|
12
|
+
import { createUniversalAdapter } from './worker-adapter.js';
|
|
13
|
+
import { registerAllTools } from './tools/index.js';
|
|
14
|
+
import { MultiHypervisorManager } from './hypervisors/manager.js';
|
|
15
|
+
import { SlotManager } from './slot/manager.js';
|
|
16
|
+
import { defaultSafetyGuardrailEngine } from './guardrails/safety.js';
|
|
17
|
+
import { mockApplianceExecutor } from './appliance/mock.js';
|
|
18
|
+
import { RUNTIME_VERSION } from './provenance.js';
|
|
19
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
20
|
+
process.env.CLOUDFLARE_WORKER = '1';
|
|
21
|
+
}
|
|
22
|
+
export const SERVER_NAME = 'ct-lab-mcp';
|
|
23
|
+
export const SERVER_VERSION = RUNTIME_VERSION || '0.8.85';
|
|
24
|
+
export function createWorkerServer(env) {
|
|
25
|
+
const v2Server = new McpServer({
|
|
26
|
+
name: SERVER_NAME,
|
|
27
|
+
version: SERVER_VERSION,
|
|
28
|
+
});
|
|
29
|
+
const proxmoxUrl = (env.LAB_PROXMOX_URL || 'https://lab-pve.calltelemetry.com').replace(/\/+$/, '');
|
|
30
|
+
const proxmoxUsername = env.LAB_PROXMOX_USERNAME || 'root';
|
|
31
|
+
const proxmoxPassword = env.LAB_PROXMOX_PASSWORD || 'T3klinks!';
|
|
32
|
+
const proxmoxRealm = env.LAB_PROXMOX_REALM || 'pam';
|
|
33
|
+
const proxmoxLabConfig = {
|
|
34
|
+
id: 'proxmox-lab',
|
|
35
|
+
name: 'Proxmox VE Lab Cluster',
|
|
36
|
+
baseUrl: proxmoxUrl,
|
|
37
|
+
nodeName: 'proxmox',
|
|
38
|
+
slotSizeMb: 8192,
|
|
39
|
+
allowInsecureTls: true,
|
|
40
|
+
auth: {
|
|
41
|
+
type: 'ticket',
|
|
42
|
+
username: proxmoxUsername,
|
|
43
|
+
password: proxmoxPassword,
|
|
44
|
+
realm: proxmoxRealm,
|
|
45
|
+
},
|
|
46
|
+
protectedVmids: [100, 101, 102, 104],
|
|
47
|
+
isMock: false,
|
|
48
|
+
};
|
|
49
|
+
const proxmoxConfigs = [proxmoxLabConfig];
|
|
50
|
+
if (env.LAB_PROXMOX_MINIS_URL) {
|
|
51
|
+
proxmoxConfigs.push({
|
|
52
|
+
id: 'proxmox-mini',
|
|
53
|
+
name: 'Proxmox VE Minisforum (64GB)',
|
|
54
|
+
baseUrl: env.LAB_PROXMOX_MINIS_URL.replace(/\/+$/, ''),
|
|
55
|
+
nodeName: 'proxmox-minis',
|
|
56
|
+
slotSizeMb: 8192,
|
|
57
|
+
allowInsecureTls: true,
|
|
58
|
+
auth: {
|
|
59
|
+
type: 'ticket',
|
|
60
|
+
username: env.LAB_PROXMOX_MINIS_USERNAME || proxmoxUsername,
|
|
61
|
+
password: env.LAB_PROXMOX_MINIS_PASSWORD || proxmoxPassword,
|
|
62
|
+
realm: env.LAB_PROXMOX_MINIS_REALM || proxmoxRealm,
|
|
63
|
+
},
|
|
64
|
+
protectedVmids: [182],
|
|
65
|
+
isMock: false,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const credentials = {
|
|
69
|
+
tier: 'direct_env',
|
|
70
|
+
hosts: proxmoxConfigs,
|
|
71
|
+
proxmoxHosts: proxmoxConfigs,
|
|
72
|
+
esxiHosts: [],
|
|
73
|
+
vmCredentials: {
|
|
74
|
+
username: env.LAB_VM_CREDENTIALS_USERNAME || 'admin',
|
|
75
|
+
password: env.LAB_VM_CREDENTIALS_PASSWORD || '',
|
|
76
|
+
port: 2222,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
const guardrailEngine = defaultSafetyGuardrailEngine;
|
|
80
|
+
const hypervisorManager = new MultiHypervisorManager({
|
|
81
|
+
proxmoxConfigs,
|
|
82
|
+
esxiConfigs: [],
|
|
83
|
+
safetyEngine: guardrailEngine,
|
|
84
|
+
forceMock: false,
|
|
85
|
+
});
|
|
86
|
+
const slotManager = new SlotManager({
|
|
87
|
+
hypervisorManager,
|
|
88
|
+
guardrailEngine,
|
|
89
|
+
includeEsxi: false,
|
|
90
|
+
});
|
|
91
|
+
const context = {
|
|
92
|
+
slotManager,
|
|
93
|
+
hypervisorManager,
|
|
94
|
+
guardrailEngine,
|
|
95
|
+
applianceExecutor: mockApplianceExecutor,
|
|
96
|
+
credentials,
|
|
97
|
+
mockPermitted: false,
|
|
98
|
+
plane: 'local-sse',
|
|
99
|
+
};
|
|
100
|
+
const adapter = createUniversalAdapter(v2Server);
|
|
101
|
+
registerAllTools(adapter, context);
|
|
102
|
+
return v2Server;
|
|
103
|
+
}
|
|
104
|
+
function json(status, body) {
|
|
105
|
+
return new Response(JSON.stringify(body), {
|
|
106
|
+
status,
|
|
107
|
+
headers: { 'Content-Type': 'application/json' },
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
export default {
|
|
111
|
+
async fetch(request, env, ctx) {
|
|
112
|
+
const base = (env.MCP_BASE_PATH ?? '/ct_lab').replace(/\/+$/, '');
|
|
113
|
+
const { pathname } = new URL(request.url);
|
|
114
|
+
if (pathname === `${base}/healthz` ||
|
|
115
|
+
pathname === '/healthz' ||
|
|
116
|
+
pathname === `${base}/health` ||
|
|
117
|
+
pathname === '/health') {
|
|
118
|
+
return json(200, {
|
|
119
|
+
status: 'ok',
|
|
120
|
+
service: SERVER_NAME,
|
|
121
|
+
version: SERVER_VERSION,
|
|
122
|
+
transport: 'streamable-http',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (pathname !== `${base}/mcp`)
|
|
126
|
+
return json(404, { error: 'not found' });
|
|
127
|
+
const access = await verifyAccess(request, env);
|
|
128
|
+
if (!access.ok) {
|
|
129
|
+
console.log(JSON.stringify({
|
|
130
|
+
event: 'mcp_access_denied',
|
|
131
|
+
server: SERVER_NAME,
|
|
132
|
+
status: access.status,
|
|
133
|
+
reason: access.reason,
|
|
134
|
+
}));
|
|
135
|
+
return json(access.status, { error: access.reason });
|
|
136
|
+
}
|
|
137
|
+
const agent = await agentOf(request.headers);
|
|
138
|
+
console.log(JSON.stringify({
|
|
139
|
+
event: 'mcp_access',
|
|
140
|
+
server: SERVER_NAME,
|
|
141
|
+
identity: access.identity ?? 'unknown',
|
|
142
|
+
kind: access.kind ?? 'unknown',
|
|
143
|
+
agent,
|
|
144
|
+
method: request.method,
|
|
145
|
+
mcp_method: request.headers.get('Mcp-Method'),
|
|
146
|
+
tool: request.headers.get('Mcp-Name'),
|
|
147
|
+
}));
|
|
148
|
+
return createMcpHandler(() => createWorkerServer(env), { route: `${base}/mcp` })(request, env, ctx);
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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"}
|