Skip to main content
Glama

generate_image

Create customized images from text prompts using base64 encoding. Define width, height, and the number of images to generate for diverse visualization needs.

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

Implementation Reference

  • src/index.ts:10-30 (registration)
    Registration of the generate_image tool in the stdio MCP server. Provides tool name, description, input schema, and a thin async handler that delegates to utils.handler.
    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/server.ts:13-33 (registration)
    Registration of the generate_image tool in the HTTP SSE MCP server. Identical to stdio version, delegates to utils.handler.
    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, } } } )
  • Zod-based input schema definition for the generate_image tool parameters: prompt (required), optional width, height, numberOfImages.
    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(), }
  • Core handler function for generate_image tool. Selects provider (default 'replicate'), obtains generateImage function via useImageProvider, calls it with prompt and params, validates output, returns base64 image objects.
    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 }
  • Helper factory that returns provider-specific context ({generateImage}) for 'replicate' or 'together' based on provider string. Dispatches to useReplicate() or useTogether().
    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

Related 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