generate_image
Create custom images from text prompts using AI. Specify dimensions and quantity to generate base64-encoded images for your projects.
Instructions
Generates and returns an image based on the provided promptUse this tool when you need to generate an image based on a promptThe image will be returned as a base64 encoded string
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The prompt to generate an image for | |
| width | No | The width of the image to generate | |
| height | No | The height of the image to generate | |
| numberOfImages | No | The number of images to generate |
Implementation Reference
- src/utils.ts:11-22 (handler)Core handler function for the generate_image tool. Selects provider from env var and delegates to provider-specific generateImage function.export const handler = async (prompt: string, params: Record<string, any>) => { const provider = process.env.PROVIDER || "replicate" const { generateImage } = await useImageProvider(provider) const generatedImages = await generateImage(prompt, { ...params, n: params.numberOfImages || undefined, }) if (!generatedImages || generatedImages.length === 0) { throw new Error(`No image returned from ${provider}`) } return generatedImages }
- src/utils.ts:4-9 (schema)Zod schema defining input parameters for the generate_image tool.export const InputSchema = { prompt: z.string().describe("The prompt to generate an image for"), width: z.coerce.number().describe("The width of the image to generate").optional(), height: z.coerce.number().describe("The height of the image to generate").optional(), numberOfImages: z.coerce.number().describe("The number of images to generate").optional(), }
- src/server.ts:13-33 (registration)Registers the generate_image tool on the MCP server for SSE transport.server.tool( "generate_image", "Generates and returns an image based on the provided prompt" + "Use this tool when you need to generate an image based on a prompt" + "The image will be returned as a base64 encoded string", InputSchema, async (args) => { try { const content = await handler(args.prompt, args) return { content, isError: false, } } catch (error) { return { content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true, } } } )
- src/index.ts:10-30 (registration)Registers the generate_image tool on the MCP server for stdio transport.server.tool( "generate_image", "Generates and returns an image based on the provided prompt" + "Use this tool when you need to generate an image based on a prompt" + "The image will be returned as a base64 encoded string", InputSchema, async (args) => { try { const content = await handler(args.prompt, args) return { content, isError: false, } } catch (error) { return { content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : String(error)}` }], isError: true, } } } )
- src/providers/index.ts:5-15 (helper)Helper function that routes to the appropriate provider's image generation based on the provider string.export const useImageProvider = (provider: string) => { switch (provider) { case "together": return useTogether() case "replicate": return useReplicate() default: throw new Error(`Provider ${provider} not supported`) } }