/**
 * DTOs for MCP client configuration and tool discovery.
 */

export interface McpServerConfigDto {
  /** Unique name identifying this MCP server */
  name: string;
  /** URL of the MCP server (streamable HTTP or SSE endpoint) */
  url: string;
  /** Optional HTTP headers to send with requests (e.g., Authorization) */
  headers?: Record<string, string>;
}

export interface McpToolDto {
  /** Namespaced tool name: "<serverName>__<toolName>" */
  name: string;
  /** Human-readable description of the tool */
  description: string;
  /** JSON Schema for tool input parameters */
  inputSchema: Record<string, unknown>;
  /** MCP server this tool belongs to */
  serverName: string;
  /** Original tool name on the remote server */
  remoteName: string;
}

export interface McpServerStatusDto {
  name: string;
  url: string;
  connected: boolean;
  toolCount: number;
  error?: string;
}
