set_default
Set a default value for a configuration option to reduce manual entries in Printify product setups.
Input 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/model-manager.ts:61-78 (handler)Core implementation of setDefault - validates the option, handles special mutual-exclusion logic between aspectRatio/width/height, then stores the default value in the defaults dictionary.
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/index.ts:676-681 (schema)MCP tool registration with Zod schema - defines the 'set_default' tool with 'option' (string) and 'value' (any) parameters.
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") }, - src/index.ts:675-744 (handler)MCP tool handler for 'set_default' - receives option/value, calls replicateClient.setDefault(), and returns formatted success/error response with all current defaults.
// Set default parameter tool 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/replicate-client.ts:35-37 (helper)Delegation method in ReplicateClient - calls through to defaultsManager.setDefault().
setDefault(option: string, value: any): void { this.defaultsManager.setDefault(option, value); } - src/index.ts:676-677 (registration)MCP server tool registration using server.tool() which registers the 'set_default' tool with the MCP SDK.
server.tool( "set_default",