midjourney-mcp
Version:
A Model Context Protocol server for Midjourney integration via MJ API
189 lines • 4.88 kB
TypeScript
/**
* TypeScript type definitions for Midjourney operations
*/
export type MidjourneyAction = 'IMAGINE' | 'UPSCALE' | 'VARIATION' | 'REROLL' | 'DESCRIBE' | 'BLEND' | 'ZOOM' | 'PAN' | 'SWAP_FACE';
export type TaskStatus = 'NOT_START' | 'SUBMITTED' | 'IN_PROGRESS' | 'FAILURE' | 'SUCCESS';
export type AspectRatio = '1:1' | '16:9' | '9:16' | '4:3' | '3:4' | '2:3' | '3:2' | '5:4' | '4:5';
export type ImageQuality = 'low' | 'medium' | 'high';
export type StyleMode = 'raw' | 'stylize';
export type MidjourneyModel = 'midjourney' | 'niji' | 'niji-5' | 'niji-6';
export interface BaseRequest {
state?: string;
notifyHook?: string;
}
export interface ImagineRequest extends BaseRequest {
prompt: string;
base64Array?: string[];
}
export interface UpscaleRequest extends BaseRequest {
taskId: string;
index: number;
}
export interface VariationRequest extends BaseRequest {
taskId: string;
index: number;
}
export interface RerollRequest extends BaseRequest {
taskId: string;
}
export interface BlendRequest extends BaseRequest {
base64Array: string[];
}
export interface DescribeRequest extends BaseRequest {
base64: string;
}
export interface ActionRequest extends BaseRequest {
taskId: string;
customId: string;
}
export interface ApiResponse<T = any> {
code: number;
description: string;
properties?: Record<string, any>;
result?: T;
}
export interface TaskButton {
customId: string;
label: string;
type: string;
style: string;
emoji: string;
}
export interface TaskResponse {
id?: string;
action?: MidjourneyAction;
prompt?: string;
promptEn?: string;
description?: string;
status?: TaskStatus;
progress?: string;
imageUrl?: string;
startTime?: number;
submitTime?: number;
finishTime?: number;
failReason?: string;
state?: string;
properties?: Record<string, any>;
buttons?: TaskButton[];
}
export interface ImagineToolParams {
prompt: string;
aspect_ratio?: AspectRatio;
quality?: ImageQuality;
style?: StyleMode;
model?: MidjourneyModel;
chaos?: number;
stylize?: number;
weird?: number;
seed?: number;
no?: string;
reference_images?: string[];
}
export interface UpscaleToolParams {
task_id: string;
index: number;
}
export interface VariationToolParams {
task_id: string;
index: number;
}
export interface RerollToolParams {
task_id: string;
}
export interface BlendToolParams {
images: string[];
aspect_ratio?: AspectRatio;
}
export interface DescribeToolParams {
image: string;
}
export interface GetTaskToolParams {
task_id: string;
}
export interface ActionToolParams {
task_id: string;
action: string;
}
export interface ToolResponse {
content: Array<{
type: 'text' | 'image';
text?: string;
data?: string;
mimeType?: string;
}>;
}
export interface TaskSubmissionResult {
task_id: string;
status: string;
message: string;
}
export interface TaskStatusResult {
task_id: string;
status: TaskStatus;
progress?: string;
image_url?: string;
description?: string;
fail_reason?: string;
buttons?: Array<{
label: string;
action: string;
enabled: boolean;
}>;
created_at?: string;
updated_at?: string;
completed_at?: string;
}
export interface PromptBuilder {
text: string;
aspectRatio?: AspectRatio;
quality?: ImageQuality;
style?: StyleMode;
model?: MidjourneyModel;
parameters?: {
chaos?: number;
stylize?: number;
weird?: number;
seed?: number;
no?: string;
};
}
export interface ImageMetadata {
width?: number;
height?: number;
format?: string;
size?: number;
url?: string;
}
export interface TaskMetrics {
submission_time: number;
processing_time?: number;
completion_time?: number;
total_duration?: number;
}
export interface MidjourneyError {
code: number;
message: string;
details?: string;
task_id?: string;
retry_after?: number;
}
export interface ValidationError {
field: string;
message: string;
value?: any;
}
export interface MidjourneyConfig {
api_key: string;
base_url: string;
timeout: number;
max_retries: number;
default_model?: MidjourneyModel;
default_quality?: ImageQuality;
default_aspect_ratio?: AspectRatio;
}
export declare function isTaskCompleted(status: TaskStatus): boolean;
export declare function isTaskSuccessful(status: TaskStatus): boolean;
export declare function isValidAspectRatio(ratio: string): ratio is AspectRatio;
export declare function isValidQuality(quality: string): quality is ImageQuality;
export declare function isValidStyle(style: string): style is StyleMode;
//# sourceMappingURL=midjourney.d.ts.map