@graisol/gpt-image-mcp
Version:
A Model Context Protocol (MCP) server for OpenAI GPT-Image-1 image generation and editing
76 lines (75 loc) • 1.91 kB
TypeScript
/**
* Type definitions for the GPT-Image-1 MCP Server
*/
export interface ImageGenerationRequest {
prompt: string;
n?: number;
size?: '1024x1024' | '1024x1536' | '1536x1024' | 'auto';
quality?: 'high' | 'medium' | 'low';
background?: 'transparent' | 'opaque' | 'auto';
output_compression?: number;
output_format?: 'png' | 'jpeg' | 'webp';
moderation?: 'auto' | 'low';
}
export interface ImageEditRequest {
image: string;
prompt: string;
mask?: string;
n?: number;
size?: '1024x1024' | '1024x1536' | '1536x1024' | 'auto';
quality?: 'high' | 'medium' | 'low';
background?: 'transparent' | 'opaque' | 'auto';
output_compression?: number;
output_format?: 'png' | 'jpeg' | 'webp';
moderation?: 'auto' | 'low';
}
export interface ImageGenerationResponse {
id: string;
created: number;
data: Array<{
url?: string;
b64_json?: string;
revised_prompt?: string;
}>;
usage?: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
export interface ImageMetadata {
id: string;
created: number;
prompt: string;
revised_prompt?: string;
size: string;
quality: string;
background?: string;
output_format?: string;
output_compression?: number;
url?: string;
b64_json?: string;
moderation_result?: string;
}
export interface ServerConfig {
openai_api_key: string;
openai_org_id?: string;
default_size: string;
default_quality: string;
default_moderation: string;
image_storage_path: string;
max_stored_images: number;
}
export interface GenerationHistory {
images: ImageMetadata[];
total_count: number;
last_updated: number;
}
export interface ErrorResponse {
error: {
type: string;
message: string;
code?: string;
details?: any;
};
}