@bratcliffe909/mcp-server-segmind
Version:
Model Context Protocol server for Segmind API - Generate images and videos using AI models
31 lines • 1.77 kB
TypeScript
import { CallToolResult, TextContent, ImageContent } from '@modelcontextprotocol/sdk/types.js';
import { ModelConfig } from '../models/registry.js';
export interface ToolContext {
requestId: string;
userId?: string;
sessionId?: string;
}
export interface GenerationResult {
content: Array<TextContent | ImageContent>;
model: string;
creditsUsed: number;
processingTime: number;
metadata?: Record<string, any>;
}
export declare abstract class BaseTool {
protected context?: ToolContext | undefined;
protected abstract readonly name: string;
protected abstract readonly description: string;
constructor(context?: ToolContext | undefined);
abstract execute(params: any): Promise<CallToolResult>;
protected callModel(model: ModelConfig, parameters: any, saveLocation?: string): Promise<GenerationResult>;
protected processModelResponse(response: any, model: ModelConfig, prompt?: string, saveLocation?: string): Promise<Array<TextContent | ImageContent>>;
protected createErrorResponse(error: unknown): CallToolResult;
protected handleLongRunningOperation(model: ModelConfig, parameters: any): Promise<GenerationResult>;
private pollForCompletion;
protected mergeWithDefaults(params: any, model: ModelConfig): any;
protected saveImageToFile(base64Data: string, mimeType: string, model: ModelConfig, _prompt?: string, saveLocationOverride?: string): Promise<string | null>;
protected saveAudioToFile(base64Data: string, mimeType: string, model: ModelConfig, saveLocationOverride?: string): Promise<string | null>;
protected saveVideoToFile(base64Data: string, mimeType: string, model: ModelConfig, saveLocationOverride?: string): Promise<string | null>;
}
//# sourceMappingURL=base.d.ts.map