UNPKG

claude-computer-use-mcp

Version:

MCP server providing browser automation capabilities to Claude Code

279 lines 6.7 kB
export interface BrowserLaunchArgs { headless?: boolean; } export interface NavigateArgs { sessionId: string; url: string; } export interface ScreenshotArgs { sessionId: string; fullPage?: boolean; } export interface ClickArgs { sessionId: string; selector: string; } export interface TypeArgs { sessionId: string; selector: string; text: string; } export interface SelectArgs { sessionId: string; selector: string; value: string; } export interface WaitArgs { sessionId: string; selector: string; timeout?: number; } export interface ExecuteArgs { sessionId: string; script: string; } export interface GetTextArgs { sessionId: string; selector: string; } export interface GetAttributeArgs { sessionId: string; selector: string; attribute: string; } export interface GetUrlArgs { sessionId: string; } export interface GetTitleArgs { sessionId: string; } export interface CloseArgs { sessionId: string; } export interface ListSessionsArgs { } export interface SaveCookiesArgs { sessionId: string; } export interface LoadCookiesArgs { sessionId: string; domain?: string; } export interface ClearCookiesArgs { sessionId: string; } export interface GetCookiesArgs { sessionId: string; urls?: string[]; } export interface ToolHandler<T = any, R = any> { description: string; inputSchema: unknown; handler: (args: T) => Promise<R>; } export interface BrowserTools { browser_launch: ToolHandler<BrowserLaunchArgs, { sessionId: string; message: string; }>; browser_navigate: ToolHandler<NavigateArgs, { success: boolean; url: string; }>; browser_screenshot: ToolHandler<ScreenshotArgs, { screenshot: string; mimeType: string; }>; browser_click: ToolHandler<ClickArgs, { success: boolean; selector: string; }>; browser_type: ToolHandler<TypeArgs, { success: boolean; selector: string; text: string; }>; browser_select: ToolHandler<SelectArgs, { success: boolean; selector: string; value: string; }>; browser_wait: ToolHandler<WaitArgs, { success: boolean; selector: string; }>; browser_execute: ToolHandler<ExecuteArgs, { result: unknown; }>; browser_get_text: ToolHandler<GetTextArgs, { text: string; }>; browser_get_attribute: ToolHandler<GetAttributeArgs, { value: string | null; }>; browser_get_url: ToolHandler<GetUrlArgs, { url: string; }>; browser_get_title: ToolHandler<GetTitleArgs, { title: string; }>; browser_list_sessions: ToolHandler<ListSessionsArgs, { sessions: Array<{ id: string; url: string; title: string; createdAt: Date; }>; }>; browser_close: ToolHandler<CloseArgs, { success: boolean; message: string; }>; browser_save_cookies: ToolHandler<SaveCookiesArgs, { success: boolean; message: string; }>; browser_load_cookies: ToolHandler<LoadCookiesArgs, { success: boolean; cookiesLoaded: number; }>; browser_clear_cookies: ToolHandler<ClearCookiesArgs, { success: boolean; message: string; }>; browser_get_cookies: ToolHandler<GetCookiesArgs, { cookies: any[]; }>; } export interface SecurityConfig { allowedProtocols: string[]; maxScriptLength: number; maxSelectorLength: number; maxTextLength: number; maxSessions: number; sessionTimeout: number; allowJavaScriptExecution: boolean; maxSessionsPerMinute: number; maxSessionsPerHour: number; enableContentSecurityPolicy: boolean; enableRequestInterception: boolean; blockedDomains: string[]; allowedFileExtensions: string[]; maxFileSize: number; enableAuditLogging: boolean; enableMetrics: boolean; sandboxMode: boolean; } export type LogLevel = 'error' | 'warn' | 'info' | 'debug' | 'trace'; export interface EnterpriseConfig { enableDocker: boolean; enableKubernetes: boolean; enableCluster: boolean; enableLoadBalancer: boolean; enableHealthChecks: boolean; enableMetrics: boolean; enableTracing: boolean; logLevel: LogLevel; metricsPort: number; healthCheckPort: number; configReloadInterval: number; enableConfigWatch: boolean; } export interface MultiTabArgs { sessionId: string; url?: string; } export interface SwitchTabArgs { sessionId: string; tabIndex: number; } export interface CloseTabArgs { sessionId: string; tabIndex: number; } export interface FormFillArgs { sessionId: string; formData: { [selector: string]: string; }; submitSelector?: string; } export interface FileUploadArgs { sessionId: string; fileSelector: string; filePath: string; } export interface FileDownloadArgs { sessionId: string; downloadSelector: string; downloadPath?: string; } export interface AdvancedScreenshotArgs { sessionId: string; element?: string; quality?: number; format?: 'png' | 'jpeg'; clip?: { x: number; y: number; width: number; height: number; }; } export interface ScrollArgs { sessionId: string; direction: 'up' | 'down' | 'left' | 'right'; distance?: number; } export interface DragDropArgs { sessionId: string; sourceSelector: string; targetSelector: string; } export interface WaitForNavigationArgs { sessionId: string; timeout?: number; waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit'; } export interface InterceptRequestArgs { sessionId: string; urlPattern: string; action: 'block' | 'modify' | 'log'; headers?: { [key: string]: string; }; } export interface NetworkLogsArgs { sessionId: string; includeHeaders?: boolean; } export interface PerformanceMetricsArgs { sessionId: string; } export interface AccessibilityArgs { sessionId: string; selector?: string; } export interface MetricsData { timestamp: number; sessionId: string; action: string; duration: number; success: boolean; error?: string; metadata?: { [key: string]: any; }; } export interface AuditLogEntry { timestamp: number; level: LogLevel; sessionId?: string; userId?: string; action: string; details: any; remoteAddress?: string; userAgent?: string; } export declare const DEFAULT_SECURITY_CONFIG: SecurityConfig; //# sourceMappingURL=types.d.ts.map