@bratcliffe909/mcp-server-segmind
Version:
Model Context Protocol server for Segmind API - Generate images and videos using AI models
129 lines • 3.14 kB
TypeScript
export type { Tool, Resource, Prompt, CallToolRequest, CallToolResult, ReadResourceRequest, ReadResourceResult, GetPromptRequest, GetPromptResult, ListToolsRequest, ListResourcesRequest, ListPromptsRequest, } from '@modelcontextprotocol/sdk/types.js';
export interface SegmindModel {
id: string;
name: string;
description: string;
category: 'text2img' | 'img2img' | 'video' | 'utility';
inputSchema: Record<string, unknown>;
outputSchema: Record<string, unknown>;
pricing: {
creditsPerGeneration: number;
};
limitations?: {
maxWidth?: number;
maxHeight?: number;
maxDuration?: number;
};
}
export interface SegmindApiResponse<T = unknown> {
data?: T;
error?: string | {
message: string;
code?: string;
};
credits?: {
used: number;
remaining: number;
};
metadata?: Record<string, any>;
image?: string;
video_url?: string;
status?: string;
}
export interface ImageGenerationParams {
model: string;
prompt: string;
negativePrompt?: string;
width?: number;
height?: number;
steps?: number;
guidance?: number;
seed?: number;
numOutputs?: number;
scheduler?: string;
outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface ImageToImageParams extends ImageGenerationParams {
inputImage: string;
strength?: number;
}
export interface VideoGenerationParams {
model: string;
prompt: string;
inputImage?: string;
duration?: number;
fps?: number;
width?: number;
height?: number;
}
export interface GeneratedImage {
url: string;
base64?: string;
width: number;
height: number;
format: string;
size: number;
}
export interface GeneratedVideo {
url: string;
duration: number;
fps: number;
width: number;
height: number;
format: string;
}
export interface GenerateImageToolParams {
model?: string;
prompt: string;
negativePrompt?: string;
width?: number;
height?: number;
steps?: number;
guidance?: number;
seed?: number;
outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface ImageToImageToolParams {
model?: string;
inputImage: string;
prompt: string;
negativePrompt?: string;
strength?: number;
width?: number;
height?: number;
outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface GenerateVideoToolParams {
model?: string;
prompt: string;
inputImage?: string;
duration?: number;
fps?: number;
width?: number;
height?: number;
}
export interface ImageValidationResult {
isValid: boolean;
format?: string;
width?: number;
height?: number;
size?: number;
error?: string;
}
export interface RateLimitInfo {
limit: number;
remaining: number;
reset: Date;
}
export interface CacheEntry<T> {
data: T;
timestamp: number;
expiresAt: number;
}
export interface ServerState {
isInitialized: boolean;
modelsLoaded: boolean;
activeRequests: number;
rateLimits: Map<string, RateLimitInfo>;
}
//# sourceMappingURL=index.d.ts.map