claude-computer-use-mcp
Version:
MCP server providing browser automation capabilities to Claude Code
279 lines • 6.7 kB
TypeScript
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