/**
 * JSON-RPC 2.0 request message for MCP
 */
export interface McpRequest {
  /** JSON-RPC version */
  jsonrpc: "2.0";

  /** Request identifier */
  id: string | number;

  /** Method name to invoke */
  method: string;

  /** Optional method parameters */
  params?: unknown;
}

/**
 * JSON-RPC 2.0 error object
 */
export interface McpError {
  /** Error code */
  code: number;

  /** Error message */
  message: string;

  /** Optional additional error data */
  data?: unknown;
}

/**
 * JSON-RPC 2.0 response message for MCP
 */
export interface McpResponse {
  /** JSON-RPC version */
  jsonrpc: "2.0";

  /** Request identifier (matches request) */
  id: string | number;

  /** Result data (present on success) */
  result?: unknown;

  /** Error object (present on failure) */
  error?: McpError;
}
