Skip to main content
Glama

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
NameRequiredDescriptionDefault
promptYesThe prompt to generate an image for
widthNoThe width of the image to generate
heightNoThe height of the image to generate
numberOfImagesNoThe number of images to generate

Implementation Reference

  • 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 }
  • 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, } } } )
  • 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`) } }

Other Tools

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/GMKR/mcp-imagegen'

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