UNPKG

evolution-api-mcp

Version:

MCP Server for Evolution API v2 - Integrate WhatsApp functionality with Claude Desktop and other MCP clients

77 lines (76 loc) 2.83 kB
import { z } from 'zod'; import { McpError } from '../utils/error-handler'; export interface ApiResponse<T = any> { success: boolean; data?: T; error?: McpError; statusCode: number; headers?: Record<string, string>; } export { ErrorType, McpError as ApiError } from '../utils/error-handler'; export interface RequestOptions { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path: string; data?: any; params?: Record<string, any>; headers?: Record<string, string>; timeout?: number; retries?: number; } export interface HttpClientConfig { baseURL: string; apiKey: string; timeout?: number; retryAttempts?: number; retryDelay?: number; maxRetryDelay?: number; enableLogging?: boolean; } export declare const HttpClientConfigSchema: z.ZodObject<{ baseURL: z.ZodString; apiKey: z.ZodString; timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; retryAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; retryDelay: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; maxRetryDelay: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; enableLogging: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { timeout: number; retryAttempts: number; retryDelay: number; baseURL: string; apiKey: string; maxRetryDelay: number; enableLogging: boolean; }, { baseURL: string; apiKey: string; timeout?: number | undefined; retryAttempts?: number | undefined; retryDelay?: number | undefined; maxRetryDelay?: number | undefined; enableLogging?: boolean | undefined; }>; export declare class EvolutionHttpClient { private axiosInstance; private config; private requestCount; private errorHandler; constructor(config: HttpClientConfig); private setupInterceptors; private createApiError; private executeWithRetry; private delay; request<T = any>(options: RequestOptions): Promise<ApiResponse<T>>; get<T = any>(path: string, params?: Record<string, any>, options?: Partial<RequestOptions>): Promise<ApiResponse<T>>; post<T = any>(path: string, data?: any, params?: Record<string, any>, options?: Partial<RequestOptions>): Promise<ApiResponse<T>>; put<T = any>(path: string, data?: any, params?: Record<string, any>, options?: Partial<RequestOptions>): Promise<ApiResponse<T>>; delete<T = any>(path: string, params?: Record<string, any>, options?: Partial<RequestOptions>): Promise<ApiResponse<T>>; patch<T = any>(path: string, data?: any, params?: Record<string, any>, options?: Partial<RequestOptions>): Promise<ApiResponse<T>>; updateConfig(updates: Partial<HttpClientConfig>): void; getConfig(): HttpClientConfig; healthCheck(): Promise<ApiResponse<any>>; getStats(): { requestCount: number; }; }