Skip to main content
Glama

set_default

Configure default settings for options like 'model', 'aspectRatio', or 'raw' in the Printify MCP Server to streamline AI-driven product creation and design workflows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
optionYesThe option name to set (e.g., 'model', 'aspectRatio', 'raw', etc.)
valueNoThe value to set for the option

Implementation Reference

  • src/index.ts:676-745 (registration)
    Registration of the 'set_default' MCP tool, including input schema (option: string, value: any) and the inline handler function. The handler checks if replicateClient is initialized, calls replicateClient.setDefault(option, value), retrieves all defaults, formats a response with model details if applicable, and returns formatted text content.
    server.tool( "set_default", { option: z.string().describe("The option name to set (e.g., 'model', 'aspectRatio', 'raw', etc.)"), value: z.any().describe("The value to set for the option") }, async ({ option, value }) => { try { if (!replicateClient) { return { content: [{ type: "text", text: "Replicate API client is not initialized. The REPLICATE_API_TOKEN environment variable may not be set." }], isError: true }; } // Set the default value replicateClient.setDefault(option, value); // Get all current defaults for the response const allDefaults = replicateClient.getAllDefaults(); // Format the response based on the option type let detailedResponse = ""; if (option === 'model') { // For model option, provide more detailed information const models = replicateClient.getAvailableModels(); const selectedModel = models.find(model => model.id === value); if (selectedModel) { detailedResponse = `## ${selectedModel.name} ✓ SELECTED\n` + `- ID: \`${selectedModel.id}\`\n` + `- Description: ${selectedModel.description}\n` + `- Capabilities: ${selectedModel.capabilities.join(', ')}\n` + `- Status: **Currently selected as default model**\n\n`; } } // Format all current defaults as a table const defaultsTable = Object.entries(allDefaults) .map(([key, val]) => `| ${key} | ${typeof val === 'object' ? JSON.stringify(val) : val} |`) .join('\n'); return { content: [{ type: "text", text: `# Default Setting Updated\n\n` + `Successfully set default \`${option}\` to: \`${value}\`\n\n` + detailedResponse + `## Current Default Settings\n\n` + `| Option | Value |\n` + `|--------|-------|\n` + defaultsTable + `\n\nThese settings will be used by default for all image generation unless overridden in the tool call.` }] }; } catch (error: any) { return { content: [{ type: "text", text: `Error setting default: ${error.message}` }], isError: true }; } } );
  • Core handler logic for setting defaults in DefaultsManager class. Validates the option/value pair, handles special cases for aspectRatio/width/height, stores the value in defaults object, and logs the change. Called by ReplicateClient.setDefault.
    setDefault(option: string, value: any): void { // Validate the option and value this.validateOption(option, value); // Special handling for aspectRatio, width, and height if (option === 'aspectRatio') { // When setting aspectRatio, clear width and height delete this.defaults.width; delete this.defaults.height; } else if (option === 'width' || option === 'height') { // When setting width or height, clear aspectRatio delete this.defaults.aspectRatio; } // Set the default value this.defaults[option] = value; console.log(`Default ${option} set to: ${value}`); }
  • ReplicateClient.setDefault method that delegates to the underlying DefaultsManager.setDefault, providing the interface used by the MCP tool handler.
    setDefault(option: string, value: any): void { this.defaultsManager.setDefault(option, value); }
  • Input schema for the set_default tool using Zod: option (string) and value (any).
    { option: z.string().describe("The option name to set (e.g., 'model', 'aspectRatio', 'raw', etc.)"), value: z.any().describe("The value to set for the option") },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TSavo/printify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server