@cloudinary/environment-config-mcp 0.6.2 → 0.6.3
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 -2
- package/bin/mcp-server.js +45394 -44720
- package/bin/mcp-server.js.map +53 -238
- package/esm/landing-page.d.ts +2 -1
- package/esm/landing-page.d.ts.map +1 -1
- package/esm/landing-page.js +51 -28
- package/esm/landing-page.js.map +1 -1
- package/esm/lib/config.d.ts +3 -3
- package/esm/lib/config.js +3 -3
- package/esm/mcp-server/cli/serve/impl.js +51 -25
- package/esm/mcp-server/cli/serve/impl.js.map +1 -1
- package/esm/mcp-server/cli/start/impl.js +11 -8
- package/esm/mcp-server/cli/start/impl.js.map +1 -1
- package/esm/mcp-server/extensions.d.ts +3 -3
- package/esm/mcp-server/extensions.d.ts.map +1 -1
- package/esm/mcp-server/mcp-server.js +1 -1
- package/esm/mcp-server/prompts.d.ts +7 -8
- package/esm/mcp-server/prompts.d.ts.map +1 -1
- package/esm/mcp-server/prompts.js +12 -12
- package/esm/mcp-server/prompts.js.map +1 -1
- package/esm/mcp-server/resources.d.ts +6 -7
- package/esm/mcp-server/resources.d.ts.map +1 -1
- package/esm/mcp-server/resources.js +19 -3
- package/esm/mcp-server/resources.js.map +1 -1
- package/esm/mcp-server/server.d.ts +1 -1
- package/esm/mcp-server/server.d.ts.map +1 -1
- package/esm/mcp-server/server.js +2 -2
- package/esm/mcp-server/server.js.map +1 -1
- package/esm/mcp-server/shared.d.ts +7 -0
- package/esm/mcp-server/shared.d.ts.map +1 -1
- package/esm/mcp-server/shared.js +184 -0
- package/esm/mcp-server/shared.js.map +1 -1
- package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js +1 -1
- package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js.map +1 -1
- package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js +1 -1
- package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js.map +1 -1
- package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js +1 -1
- package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js.map +1 -1
- package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js +1 -1
- package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js.map +1 -1
- package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js +1 -1
- package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js.map +1 -1
- package/esm/mcp-server/tools/transformationsCreateTransformation.js +1 -1
- package/esm/mcp-server/tools/transformationsCreateTransformation.js.map +1 -1
- package/esm/mcp-server/tools/transformationsDeleteTransformation.js +1 -1
- package/esm/mcp-server/tools/transformationsDeleteTransformation.js.map +1 -1
- package/esm/mcp-server/tools/transformationsGetTransformation.js +1 -1
- package/esm/mcp-server/tools/transformationsGetTransformation.js.map +1 -1
- package/esm/mcp-server/tools/transformationsListTransformations.js +1 -1
- package/esm/mcp-server/tools/transformationsListTransformations.js.map +1 -1
- package/esm/mcp-server/tools/transformationsUpdateTransformation.js +1 -1
- package/esm/mcp-server/tools/transformationsUpdateTransformation.js.map +1 -1
- package/esm/mcp-server/tools/triggersCreateTrigger.js +1 -1
- package/esm/mcp-server/tools/triggersCreateTrigger.js.map +1 -1
- package/esm/mcp-server/tools/triggersDeleteTrigger.js +1 -1
- package/esm/mcp-server/tools/triggersDeleteTrigger.js.map +1 -1
- package/esm/mcp-server/tools/triggersListTrigger.js +1 -1
- package/esm/mcp-server/tools/triggersListTrigger.js.map +1 -1
- package/esm/mcp-server/tools/triggersTestTrigger.js +1 -1
- package/esm/mcp-server/tools/triggersTestTrigger.js.map +1 -1
- package/esm/mcp-server/tools/triggersUpdateTrigger.js +1 -1
- package/esm/mcp-server/tools/triggersUpdateTrigger.js.map +1 -1
- package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js +1 -1
- package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js.map +1 -1
- package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js +1 -1
- package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js.map +1 -1
- package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js +1 -1
- package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js.map +1 -1
- package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js +1 -1
- package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js.map +1 -1
- package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js +1 -1
- package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js.map +1 -1
- package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js +1 -1
- package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js.map +1 -1
- package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js +1 -1
- package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js.map +1 -1
- package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js +1 -1
- package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js.map +1 -1
- package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js +1 -1
- package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js.map +1 -1
- package/esm/mcp-server/tools.d.ts +11 -9
- package/esm/mcp-server/tools.d.ts.map +1 -1
- package/esm/mcp-server/tools.js +20 -19
- package/esm/mcp-server/tools.js.map +1 -1
- package/package.json +9 -4
- package/src/landing-page.ts +81 -28
- package/src/lib/config.ts +3 -3
- package/src/mcp-server/cli/serve/impl.ts +55 -25
- package/src/mcp-server/cli/start/impl.ts +16 -9
- package/src/mcp-server/extensions.ts +3 -5
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/prompts.ts +30 -43
- package/src/mcp-server/resources.ts +32 -17
- package/src/mcp-server/server.ts +2 -2
- package/src/mcp-server/shared.ts +201 -0
- package/src/mcp-server/tools/streamingProfilesCreateStreamingProfile.ts +1 -1
- package/src/mcp-server/tools/streamingProfilesDeleteStreamingProfile.ts +1 -1
- package/src/mcp-server/tools/streamingProfilesGetStreamingProfile.ts +1 -1
- package/src/mcp-server/tools/streamingProfilesGetStreamingProfiles.ts +1 -1
- package/src/mcp-server/tools/streamingProfilesUpdateStreamingProfile.ts +1 -1
- package/src/mcp-server/tools/transformationsCreateTransformation.ts +1 -1
- package/src/mcp-server/tools/transformationsDeleteTransformation.ts +1 -1
- package/src/mcp-server/tools/transformationsGetTransformation.ts +1 -1
- package/src/mcp-server/tools/transformationsListTransformations.ts +1 -1
- package/src/mcp-server/tools/transformationsUpdateTransformation.ts +1 -1
- package/src/mcp-server/tools/triggersCreateTrigger.ts +1 -1
- package/src/mcp-server/tools/triggersDeleteTrigger.ts +1 -1
- package/src/mcp-server/tools/triggersListTrigger.ts +1 -1
- package/src/mcp-server/tools/triggersTestTrigger.ts +1 -1
- package/src/mcp-server/tools/triggersUpdateTrigger.ts +1 -1
- package/src/mcp-server/tools/uploadMappingsCreateUploadMapping.ts +1 -1
- package/src/mcp-server/tools/uploadMappingsDeleteUploadMapping.ts +1 -1
- package/src/mcp-server/tools/uploadMappingsListUploadMappings.ts +1 -1
- package/src/mcp-server/tools/uploadMappingsUpdateUploadMapping.ts +1 -1
- package/src/mcp-server/tools/uploadPresetsCreateUploadPreset.ts +1 -1
- package/src/mcp-server/tools/uploadPresetsDeleteUploadPreset.ts +1 -1
- package/src/mcp-server/tools/uploadPresetsGetUploadPreset.ts +1 -1
- package/src/mcp-server/tools/uploadPresetsListUploadPresets.ts +1 -1
- package/src/mcp-server/tools/uploadPresetsUpdateUploadPreset.ts +1 -1
- package/src/mcp-server/tools.ts +42 -45
package/src/mcp-server/tools.ts
CHANGED
|
@@ -3,24 +3,19 @@
|
|
|
3
3
|
* @generated-id: 654d5d1f2062
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { McpServer } from "@modelcontextprotocol/
|
|
7
|
-
import {
|
|
8
|
-
ShapeOutput,
|
|
9
|
-
ZodRawShapeCompat,
|
|
10
|
-
} from "@modelcontextprotocol/sdk/server/zod-compat.js";
|
|
11
|
-
import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
12
|
-
import {
|
|
13
|
-
CallToolResult,
|
|
14
|
-
ServerNotification,
|
|
15
|
-
ServerRequest,
|
|
16
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
6
|
+
import { CallToolResult, McpServer } from "@modelcontextprotocol/server";
|
|
17
7
|
import * as z from "zod";
|
|
18
8
|
import { CloudinaryEnvConfigCore } from "../core.js";
|
|
19
9
|
import { ServerRegion$zodSchema } from "../lib/config.js";
|
|
20
10
|
import { ConsoleLogger } from "./console-logger.js";
|
|
21
11
|
import { MCPServerFlags } from "./flags.js";
|
|
22
12
|
import { MCPScope, mcpScopes } from "./scopes.js";
|
|
23
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
mcpInputSchema,
|
|
15
|
+
MCPServerContext,
|
|
16
|
+
mcpServerContext,
|
|
17
|
+
valueToBase64,
|
|
18
|
+
} from "./shared.js";
|
|
24
19
|
|
|
25
20
|
export type MCPToolAnnotationFilter = {
|
|
26
21
|
readOnlyHint?: boolean;
|
|
@@ -66,6 +61,11 @@ export function buildAnnotationFilter(
|
|
|
66
61
|
return filter;
|
|
67
62
|
}
|
|
68
63
|
|
|
64
|
+
type ZodRawShapeCompat = z.ZodRawShape;
|
|
65
|
+
type ShapeOutput<Shape extends ZodRawShapeCompat> = z.output<
|
|
66
|
+
z.ZodObject<Shape>
|
|
67
|
+
>;
|
|
68
|
+
|
|
69
69
|
export type ToolDefinition<
|
|
70
70
|
Args extends undefined | ZodRawShapeCompat = undefined,
|
|
71
71
|
> = Args extends ZodRawShapeCompat ? {
|
|
@@ -83,7 +83,7 @@ export type ToolDefinition<
|
|
|
83
83
|
tool: (
|
|
84
84
|
client: CloudinaryEnvConfigCore,
|
|
85
85
|
args: ShapeOutput<Args>,
|
|
86
|
-
extra:
|
|
86
|
+
extra: MCPServerContext,
|
|
87
87
|
) => CallToolResult | Promise<CallToolResult>;
|
|
88
88
|
}
|
|
89
89
|
: {
|
|
@@ -100,7 +100,7 @@ export type ToolDefinition<
|
|
|
100
100
|
};
|
|
101
101
|
tool: (
|
|
102
102
|
client: CloudinaryEnvConfigCore,
|
|
103
|
-
extra:
|
|
103
|
+
extra: MCPServerContext,
|
|
104
104
|
) => CallToolResult | Promise<CallToolResult>;
|
|
105
105
|
};
|
|
106
106
|
|
|
@@ -138,16 +138,13 @@ export function createRegisterTool(
|
|
|
138
138
|
dynamic?: boolean,
|
|
139
139
|
annotationFilter?: MCPToolAnnotationFilter,
|
|
140
140
|
): [
|
|
141
|
-
<A extends
|
|
141
|
+
<A extends z.ZodRawShape | undefined>(tool: ToolDefinition<A>) => void,
|
|
142
142
|
Array<{ name: string; description: string }>,
|
|
143
|
-
Map<string, ToolDefinition<
|
|
143
|
+
Map<string, ToolDefinition<z.ZodRawShape | undefined>>,
|
|
144
144
|
] {
|
|
145
145
|
const tools: Array<{ name: string; description: string }> = [];
|
|
146
|
-
const toolMap = new Map<
|
|
147
|
-
|
|
148
|
-
ToolDefinition<ZodRawShapeCompat | undefined>
|
|
149
|
-
>();
|
|
150
|
-
const registerTool = <A extends ZodRawShapeCompat | undefined>(
|
|
146
|
+
const toolMap = new Map<string, ToolDefinition<z.ZodRawShape | undefined>>();
|
|
147
|
+
const registerTool = <A extends z.ZodRawShape | undefined>(
|
|
151
148
|
tool: ToolDefinition<A>,
|
|
152
149
|
): void => {
|
|
153
150
|
if (allowedTools && !allowedTools.has(tool.name)) {
|
|
@@ -194,10 +191,7 @@ export function createRegisterTool(
|
|
|
194
191
|
}
|
|
195
192
|
}
|
|
196
193
|
|
|
197
|
-
toolMap.set(
|
|
198
|
-
tool.name,
|
|
199
|
-
tool as ToolDefinition<ZodRawShapeCompat | undefined>,
|
|
200
|
-
);
|
|
194
|
+
toolMap.set(tool.name, tool as ToolDefinition<z.ZodRawShape | undefined>);
|
|
201
195
|
|
|
202
196
|
if (dynamic) {
|
|
203
197
|
logger.debug("Collected tool for dynamic mode", { name: tool.name });
|
|
@@ -210,11 +204,11 @@ export function createRegisterTool(
|
|
|
210
204
|
tool.name,
|
|
211
205
|
{
|
|
212
206
|
description: tool.description,
|
|
213
|
-
inputSchema: tool.args,
|
|
207
|
+
inputSchema: mcpInputSchema(tool.args),
|
|
214
208
|
annotations: tool.annotations,
|
|
215
209
|
},
|
|
216
210
|
async (args, ctx) => {
|
|
217
|
-
return tool.tool(getSDK(), args, ctx);
|
|
211
|
+
return tool.tool(getSDK(), args, mcpServerContext(ctx));
|
|
218
212
|
},
|
|
219
213
|
);
|
|
220
214
|
} else {
|
|
@@ -225,7 +219,7 @@ export function createRegisterTool(
|
|
|
225
219
|
annotations: tool.annotations,
|
|
226
220
|
},
|
|
227
221
|
async (ctx) => {
|
|
228
|
-
return tool.tool(getSDK(), ctx);
|
|
222
|
+
return tool.tool(getSDK(), mcpServerContext(ctx));
|
|
229
223
|
},
|
|
230
224
|
);
|
|
231
225
|
}
|
|
@@ -240,7 +234,7 @@ export function createRegisterTool(
|
|
|
240
234
|
function matchesSearchTerms(
|
|
241
235
|
terms: string[],
|
|
242
236
|
name: string,
|
|
243
|
-
def: ToolDefinition<
|
|
237
|
+
def: ToolDefinition<z.ZodRawShape | undefined>,
|
|
244
238
|
): boolean {
|
|
245
239
|
if (terms.length === 0) {
|
|
246
240
|
return true;
|
|
@@ -263,14 +257,14 @@ export function registerDynamicTools(
|
|
|
263
257
|
logger: ConsoleLogger,
|
|
264
258
|
server: McpServer,
|
|
265
259
|
getSDK: () => CloudinaryEnvConfigCore,
|
|
266
|
-
toolMap: Map<string, ToolDefinition<
|
|
260
|
+
toolMap: Map<string, ToolDefinition<z.ZodRawShape | undefined>>,
|
|
267
261
|
allowedScopes: Set<MCPScope>,
|
|
268
262
|
): void {
|
|
269
263
|
// 1. list_tools
|
|
270
264
|
server.registerTool("list_tools", {
|
|
271
265
|
description:
|
|
272
266
|
"List available tools. Optionally filter by search terms that match against tool name, description, and scopes.",
|
|
273
|
-
inputSchema: {
|
|
267
|
+
inputSchema: z.object({
|
|
274
268
|
search_terms: z.array(z.string()).optional().describe(
|
|
275
269
|
[
|
|
276
270
|
"Filter the list of tools.",
|
|
@@ -279,7 +273,7 @@ export function registerDynamicTools(
|
|
|
279
273
|
"If not provided, all tools are returned.",
|
|
280
274
|
].join("\n"),
|
|
281
275
|
),
|
|
282
|
-
},
|
|
276
|
+
}),
|
|
283
277
|
annotations: {
|
|
284
278
|
title: "List Tools",
|
|
285
279
|
readOnlyHint: true,
|
|
@@ -314,11 +308,11 @@ export function registerDynamicTools(
|
|
|
314
308
|
server.registerTool("describe_tool_input", {
|
|
315
309
|
description:
|
|
316
310
|
"Get the input schema for one or more tools. It is a good idea to call this tool first to understand how to successfully call execute_tool.",
|
|
317
|
-
inputSchema: {
|
|
311
|
+
inputSchema: z.object({
|
|
318
312
|
tool_names: z.array(z.string()).describe(
|
|
319
313
|
"The names of the tools to describe",
|
|
320
314
|
),
|
|
321
|
-
},
|
|
315
|
+
}),
|
|
322
316
|
annotations: {
|
|
323
317
|
title: "Describe Tool",
|
|
324
318
|
readOnlyHint: true,
|
|
@@ -343,11 +337,8 @@ export function registerDynamicTools(
|
|
|
343
337
|
|
|
344
338
|
let schemaText = `<input_schema tool="${toolName}">\n\n`;
|
|
345
339
|
if (def.args) {
|
|
346
|
-
const jsonSchema =
|
|
347
|
-
target: "draft-2020-12"
|
|
348
|
-
io: "input",
|
|
349
|
-
unrepresentable: "any",
|
|
350
|
-
});
|
|
340
|
+
const jsonSchema = mcpInputSchema(def.args)["~standard"].jsonSchema
|
|
341
|
+
.input({ target: "draft-2020-12" });
|
|
351
342
|
schemaText += JSON.stringify(jsonSchema, null, 2);
|
|
352
343
|
} else {
|
|
353
344
|
schemaText += "This tool takes no input parameters.";
|
|
@@ -368,12 +359,12 @@ export function registerDynamicTools(
|
|
|
368
359
|
server.registerTool("execute_tool", {
|
|
369
360
|
description:
|
|
370
361
|
"Execute a tool by name with its arguments. If executing a given tool for the first time, it is recommended to call describe_tool_input first to understand the expected `arguments` shape.",
|
|
371
|
-
inputSchema: {
|
|
362
|
+
inputSchema: z.object({
|
|
372
363
|
name: z.string().describe("The name of the tool to execute"),
|
|
373
364
|
arguments: z.looseObject({}).optional().describe(
|
|
374
365
|
"Arguments for the target tool as a JSON object, matching the schema returned by describe_tool_input.",
|
|
375
366
|
),
|
|
376
|
-
},
|
|
367
|
+
}),
|
|
377
368
|
annotations: {
|
|
378
369
|
title: "Execute Tool",
|
|
379
370
|
readOnlyHint: false,
|
|
@@ -392,7 +383,9 @@ export function registerDynamicTools(
|
|
|
392
383
|
|
|
393
384
|
let validatedInput: Record<string, unknown> = {};
|
|
394
385
|
if (def.args) {
|
|
395
|
-
const vres = z.object(def.args).
|
|
386
|
+
const vres = await z.object(def.args).safeParseAsync(
|
|
387
|
+
args.arguments ?? {},
|
|
388
|
+
);
|
|
396
389
|
if (vres.success) {
|
|
397
390
|
validatedInput = vres.data;
|
|
398
391
|
} else {
|
|
@@ -411,9 +404,9 @@ export function registerDynamicTools(
|
|
|
411
404
|
|
|
412
405
|
try {
|
|
413
406
|
if (def.args) {
|
|
414
|
-
return await def.tool(getSDK(), validatedInput, ctx);
|
|
407
|
+
return await def.tool(getSDK(), validatedInput, mcpServerContext(ctx));
|
|
415
408
|
} else {
|
|
416
|
-
return await def.tool(getSDK(), ctx);
|
|
409
|
+
return await def.tool(getSDK(), mcpServerContext(ctx));
|
|
417
410
|
}
|
|
418
411
|
} catch (error) {
|
|
419
412
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -465,7 +458,11 @@ function resolveHeader<T>(
|
|
|
465
458
|
if (val != null) {
|
|
466
459
|
return schema.parse(val);
|
|
467
460
|
}
|
|
468
|
-
|
|
461
|
+
if (disableStaticAuth || cliFlagValue === undefined) {
|
|
462
|
+
const parsed = schema.safeParse(undefined);
|
|
463
|
+
return parsed.success ? parsed.data : undefined;
|
|
464
|
+
}
|
|
465
|
+
return schema.parse(cliFlagValue);
|
|
469
466
|
}
|
|
470
467
|
|
|
471
468
|
export function buildSDK(
|