Skip to main content
Glama

comfy_get_output_images

Retrieve recent generated images from ComfyUI's output folder with customizable sorting and filtering options for easy access to AI-generated content.

Instructions

List recent output images from ComfyUI's output folder. Returns full Windows paths that Claude Desktop can read.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
sortNonewest
filterNo

Implementation Reference

  • MCP tool handler function that processes input, calls the getOutputImages utility, formats the response as MCP content or error.
    export async function handleGetOutputImages(input: GetOutputImagesInput) {
      try {
        const images = getOutputImages(input.limit, input.sort, input.filter);
    
        return {
          content: [{
            type: "text",
            text: JSON.stringify({
              images,
              total_count: images.length
            }, null, 2)
          }]
        };
      } catch (error: any) {
        return {
          content: [{
            type: "text",
            text: JSON.stringify(ComfyUIErrorBuilder.executionError(error.message), null, 2)
          }],
          isError: true
        };
      }
    }
  • Core utility function implementing the logic to scan ComfyUI output directory, filter/sort image files, and return metadata array.
    export function getOutputImages(limit: number = 20, sort: 'newest' | 'oldest' | 'name' = 'newest', filter?: string): ImageInfo[] {
      const config = getConfig();
      const outputDir = getFullPath(config.paths.output);
    
      if (!existsSync(outputDir)) {
        return [];
      }
    
      const files = readdirSync(outputDir);
      const images: ImageInfo[] = [];
    
      for (const file of files) {
        if (filter && !file.includes(filter)) continue;
        if (!validateImageFormat(file)) continue;
    
        const fullPath = join(outputDir, file);
        const stat = statSync(fullPath);
    
        if (stat.isFile()) {
          images.push({
            filename: file,
            path: fullPath,
            size: stat.size,
            created_at: stat.birthtime.toISOString(),
            modified_at: stat.mtime.toISOString()
          });
        }
      }
    
      // Sort
      if (sort === 'newest') {
        images.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
      } else if (sort === 'oldest') {
        images.sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime());
      } else {
        images.sort((a, b) => a.filename.localeCompare(b.filename));
      }
    
      return images.slice(0, limit);
    }
  • Zod schema and TypeScript type for GetOutputImagesInput defining optional parameters: limit, sort, filter.
    // Get Output Images Tool
    export const GetOutputImagesSchema = z.object({
      limit: z.number().int().optional().default(20),
      sort: z.enum(["newest", "oldest", "name"]).optional().default("newest"),
      filter: z.string().optional()
    });
    
    // Type exports
    export type SubmitWorkflowInput = z.infer<typeof SubmitWorkflowSchema>;
    export type GenerateSimpleInput = z.infer<typeof GenerateSimpleSchema>;
    export type GetStatusInput = z.infer<typeof GetStatusSchema>;
    export type WaitForCompletionInput = z.infer<typeof WaitForCompletionSchema>;
    export type ListModelsInput = z.infer<typeof ListModelsSchema>;
    export type SaveWorkflowInput = z.infer<typeof SaveWorkflowSchema>;
    export type LoadWorkflowInput = z.infer<typeof LoadWorkflowSchema>;
    export type ListWorkflowsInput = z.infer<typeof ListWorkflowsSchema>;
    export type DeleteWorkflowInput = z.infer<typeof DeleteWorkflowSchema>;
    export type CancelGenerationInput = z.infer<typeof CancelGenerationSchema>;
    export type ClearQueueInput = z.infer<typeof ClearQueueSchema>;
    export type UploadImageInput = z.infer<typeof UploadImageSchema>;
    export type GetOutputImagesInput = z.infer<typeof GetOutputImagesSchema>;
  • src/server.ts:136-139 (registration)
    Tool registration entry in the listTools response, providing name, description, and input schema.
      name: 'comfy_get_output_images',
      description: 'List recent output images from ComfyUI\'s output folder. Returns full Windows paths that Claude Desktop can read.',
      inputSchema: zodToJsonSchema(GetOutputImagesSchema) as any,
    },
  • src/server.ts:188-190 (registration)
    Dispatch in the CallToolRequest handler switch statement routing to the tool handler.
    case 'comfy_get_output_images':
      return await handleGetOutputImages(args as any);

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/Nikolaibibo/claude-comfyui-mcp'

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