UNPKG

mcp-server-gpt-image

Version:

MCP server for OpenAI GPT Image-1 and Responses API with dual-mode support, real-time streaming, intelligent caching, and automatic image optimization

86 lines 2.49 kB
import { ImageGenerationInput, ImageEditInput } from '../types.js'; export interface ImageGenerationTool { type: 'image_generation'; size?: string; quality?: string; format?: string; background?: string; compression?: number; partial_images?: number; } export interface ImageGenerationCall { id: string; type: 'image_generation_call'; status: 'completed'; revised_prompt?: string; result: string; } export interface ResponsesAPIInput { model: string; input: string | Array<{ role?: string; content?: Array<{ type: 'input_text' | 'input_image'; text?: string; image?: string; }>; type?: 'image_generation_call'; id?: string; }>; tools?: ImageGenerationTool[]; tool_choice?: { type: 'image_generation'; }; previous_response_id?: string; stream?: boolean; } export interface ResponsesAPIOutput { id: string; output: Array<{ type: 'text' | 'image_generation_call'; text?: string; id?: string; status?: 'completed'; revised_prompt?: string; result?: string; }>; usage?: { input_tokens: number; output_tokens: number; total_tokens: number; }; } export interface ResponsesStreamEvent { type: 'response.image_generation_call.partial_image' | 'response.done' | 'response.content.delta'; partial_image_index?: number; partial_image_b64?: string; delta?: string; } export interface IResponsesAPIClient { create(params: ResponsesAPIInput): Promise<ResponsesAPIOutput>; createStream(params: ResponsesAPIInput): AsyncGenerator<ResponsesStreamEvent, void, unknown>; } export interface IResponsesImageGenerator { generate(input: ImageGenerationInput): Promise<{ images: string[]; revised_prompt?: string; response_id?: string; }>; edit(input: ImageEditInput): Promise<{ images: string[]; revised_prompt?: string; response_id?: string; }>; generateWithStreaming(input: ImageGenerationInput): AsyncGenerator<{ type: 'partial' | 'complete' | 'progress'; data: { partialImage?: string; index?: number; finalImage?: string; revisedPrompt?: string; message?: string; percentage?: number; }; }, void, unknown>; } //# sourceMappingURL=responses-api.interface.d.ts.map