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
| Name | Required | Description | Default |
|---|---|---|---|
| option | Yes | The option name to set (e.g., 'model', 'aspectRatio', 'raw', etc.) | |
| value | No | The 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 }; } } );
- src/model-manager.ts:61-78 (handler)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}`); }
- src/replicate-client.ts:35-37 (helper)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); }
- src/index.ts:678-681 (schema)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") },