import type { z } from 'zod'; export interface McpTool { name: string; description?: string; schema: z.ZodSchema; inputSchema?: unknown; handler: (params: TParams) => Promise>; } /** * MCP Tool Result type * * Note: While the MCP spec supports multiple content types (text, image, resource), * our implementation currently only uses text content. We've simplified the type * to always require the text field when type is 'text' for better type safety. * * If we need to support other content types in the future, we should change this * to a proper discriminated union: * content: Array< * | { type: 'text'; text: string } * | { type: 'image'; data: string; mimeType: string } * | { type: 'resource'; resource: any } * > */ export interface McpToolResult { content: Array<{ type: 'text'; text: string; data?: T; }>; isError?: boolean; } export interface McpResource { uri: string; name: string; description?: string; mimeType?: string; handler: () => Promise; } export interface McpServerConfig { name: string; version: string; } //# sourceMappingURL=mcp-types.d.ts.map