UNPKG

claude-computer-use-mcp

Version:

MCP server providing browser automation capabilities to Claude Code

100 lines 4.14 kB
import { Browser, BrowserContext, Page } from 'playwright'; import { SecurityConfig } from './types.js'; export interface BrowserSession { id: string; browser: Browser; context: BrowserContext; page: Page; createdAt: Date; } export declare class BrowserController { private sessions; private securityConfig; private sessionCreationTimes; private cookieManager; private cleanupInterval?; private sessionCreationHistory; private sessionCreationLock; private advancedController; private interceptedSessions; constructor(securityConfig?: SecurityConfig); private generateSecureSessionId; private checkRateLimit; private recordSessionCreation; private cleanupPromise; private cleanupExpiredSessions; private performCleanup; createSession(headless?: boolean): Promise<string>; getSession(sessionId: string): BrowserSession | undefined; closeSession(sessionId: string): Promise<void>; closeAllSessions(): Promise<void>; navigate(sessionId: string, url: string): Promise<void>; screenshot(sessionId: string, fullPage?: boolean): Promise<Buffer>; click(sessionId: string, selector: string): Promise<void>; type(sessionId: string, selector: string, text: string): Promise<void>; waitForSelector(sessionId: string, selector: string, timeout?: number): Promise<void>; evaluate(sessionId: string, script: string): Promise<unknown>; getText(sessionId: string, selector: string): Promise<string>; getAttribute(sessionId: string, selector: string, attribute: string): Promise<string | null>; selectOption(sessionId: string, selector: string, value: string): Promise<void>; getUrl(sessionId: string): Promise<string>; getTitle(sessionId: string): Promise<string>; listSessions(): Promise<Array<{ id: string; url: string; title: string; createdAt: Date; }>>; saveCookies(sessionId: string): Promise<void>; loadCookies(sessionId: string, targetDomain?: string): Promise<void>; clearCookies(sessionId: string): Promise<void>; getCookies(sessionId: string, urls?: string[]): Promise<any[]>; createNewTab(sessionId: string, url?: string): Promise<{ tabIndex: number; url: string; }>; switchToTab(sessionId: string, tabIndex: number): Promise<{ success: boolean; url: string; title: string; }>; closeTab(sessionId: string, tabIndex: number): Promise<{ success: boolean; }>; listTabs(sessionId: string): Promise<import("./advanced-browser.js").TabInfo[]>; fillForm(sessionId: string, formData: any[], submitSelector?: string): Promise<{ success: boolean; fieldsProcessed: number; }>; uploadFile(sessionId: string, fileSelector: string, filePath: string): Promise<{ success: boolean; }>; downloadFile(sessionId: string, downloadSelector: string, downloadPath?: string): Promise<{ success: boolean; filePath: string; }>; takeAdvancedScreenshot(sessionId: string, options?: any): Promise<{ screenshot: string; mimeType: string; metadata: any; }>; scroll(sessionId: string, direction: any, distance?: number): Promise<{ success: boolean; }>; dragAndDrop(sessionId: string, sourceSelector: string, targetSelector: string): Promise<{ success: boolean; }>; waitForNavigation(sessionId: string, timeout?: number, waitUntil?: any): Promise<{ success: boolean; url: string; }>; enableNetworkLogging(sessionId: string): Promise<{ success: boolean; }>; getNetworkLogs(sessionId: string, includeHeaders?: boolean): Promise<import("./advanced-browser.js").NetworkRequest[]>; getPerformanceMetrics(sessionId: string): Promise<import("./advanced-browser.js").PerformanceMetrics>; runAccessibilityAudit(sessionId: string, selector?: string): Promise<import("./advanced-browser.js").AccessibilityInfo>; private enableRequestInterception; cleanup(): Promise<void>; } //# sourceMappingURL=browser-controller.d.ts.map