claude-computer-use-mcp
Version:
MCP server providing browser automation capabilities to Claude Code
112 lines • 3.48 kB
TypeScript
import { BrowserSession } from './browser-controller.js';
export interface TabInfo {
index: number;
url: string;
title: string;
active: boolean;
}
export interface FormField {
selector: string;
value: string;
type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
}
export interface PerformanceMetrics {
loadTime: number;
domContentLoaded: number;
firstContentfulPaint: number;
largestContentfulPaint: number;
totalBytes: number;
requestCount: number;
jsHeapUsedSize: number;
}
export interface NetworkRequest {
url: string;
method: string;
status: number;
headers: Record<string, string>;
size: number;
duration: number;
timestamp: number;
}
export interface AccessibilityInfo {
violations: Array<{
id: string;
impact: 'minor' | 'moderate' | 'serious' | 'critical';
description: string;
nodes: Array<{
target: string;
html: string;
}>;
}>;
summary: {
total: number;
critical: number;
serious: number;
moderate: number;
minor: number;
};
}
export declare class AdvancedBrowserController {
private sessions;
private tabManagement;
private networkLogs;
private downloadPaths;
constructor(sessions: Map<string, BrowserSession>);
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<TabInfo[]>;
fillForm(sessionId: string, formData: FormField[], 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?: {
element?: string;
quality?: number;
format?: 'png' | 'jpeg';
clip?: {
x: number;
y: number;
width: number;
height: number;
};
}): Promise<{
screenshot: string;
mimeType: string;
metadata: any;
}>;
scroll(sessionId: string, direction: 'up' | 'down' | 'left' | 'right', distance?: number): Promise<{
success: boolean;
}>;
dragAndDrop(sessionId: string, sourceSelector: string, targetSelector: string): Promise<{
success: boolean;
}>;
waitForNavigation(sessionId: string, timeout?: number, waitUntil?: 'load' | 'domcontentloaded' | 'networkidle'): Promise<{
success: boolean;
url: string;
}>;
enableNetworkLogging(sessionId: string): Promise<{
success: boolean;
}>;
getNetworkLogs(sessionId: string, includeHeaders?: boolean): Promise<NetworkRequest[]>;
getPerformanceMetrics(sessionId: string): Promise<PerformanceMetrics>;
runAccessibilityAudit(sessionId: string, selector?: string): Promise<AccessibilityInfo>;
cleanup(sessionId: string): Promise<void>;
}
//# sourceMappingURL=advanced-browser.d.ts.map