@dorothywebb/any-browser-mcp
Version:
Any Browser MCP - Launch Chrome with your actual data in debug mode for comprehensive browser automation
86 lines • 2.67 kB
TypeScript
/**
* Lazy Browser Manager - Only connects when MCP tools are actually used
* Prevents any browser connections during VS Code startup
*/
import { ConnectionState, PageInfo, BrowserActionResult } from '../types/index.js';
export declare enum InitializationState {
NOT_INITIALIZED = "not_initialized",
INITIALIZING = "initializing",
READY = "ready",
FAILED = "failed"
}
export declare class LazyBrowserManager {
private connection;
private initState;
private config;
private initPromise;
private lastError;
private connectionPool;
private resourceManager;
constructor();
/**
* Check if manager is ready (initialized and connected)
*/
isReady(): boolean;
/**
* Get current status without triggering initialization
*/
getStatus(): {
state: InitializationState;
connected: boolean;
connectionState?: ConnectionState;
lastError?: string;
};
/**
* Initialize connection pool for performance optimization
*/
private initializeConnectionPool;
/**
* Initialize connection to browser (lazy - only when first needed)
* This is the ONLY method that actually connects to browser
*/
ensureConnection(): Promise<void>;
/**
* Perform the actual browser connection
*/
private performInitialization;
/**
* Execute a browser action, ensuring connection is established first
* This is the main entry point for all browser operations
*/
executeAction<T>(actionName: string, action: () => Promise<T>): Promise<T>;
/**
* Send command to browser (with lazy initialization)
*/
sendCommand(method: string, params?: any): Promise<any>;
/**
* Get available pages (with lazy initialization)
*/
getPages(): Promise<PageInfo[]>;
/**
* Navigate to URL (with lazy initialization)
*/
navigate(url: string): Promise<BrowserActionResult>;
/**
* Take screenshot (with lazy initialization)
*/
screenshot(): Promise<BrowserActionResult>;
/**
* Click element (with lazy initialization)
*/
click(selector: string, options?: any): Promise<BrowserActionResult>;
/**
* Type text (with lazy initialization)
*/
type(text: string, options?: any): Promise<BrowserActionResult>;
/**
* Get page content (with lazy initialization)
*/
getContent(selector?: string): Promise<BrowserActionResult>;
/**
* Disconnect and cleanup
*/
disconnect(): Promise<void>;
}
export declare function createLazyBrowserManager(): LazyBrowserManager;
//# sourceMappingURL=LazyBrowserManager.d.ts.map