insite-mcp
Version:
MCP server for browser automation with 52 tools using Playwright
90 lines • 2.29 kB
TypeScript
/**
* Type definitions for Browser MCP Server
*/
/**
* Browser automation tool categories
*/
export type ToolCategory = 'navigation' | 'visual' | 'dom' | 'interaction' | 'javascript' | 'wait' | 'configuration' | 'console';
/**
* Browser automation error types
*/
export type BrowserErrorType = 'BROWSER_NOT_INITIALIZED' | 'BROWSER_NOT_SUPPORTED' | 'PAGE_NOT_LOADED' | 'ELEMENT_NOT_FOUND' | 'NAVIGATION_FAILED' | 'TIMEOUT_ERROR' | 'JAVASCRIPT_ERROR' | 'NETWORK_ERROR' | 'INVALID_URL' | 'INVALID_SELECTOR' | 'FILE_OPERATION_ERROR';
/**
* Custom error class for browser automation operations
*/
export declare class BrowserAutomationError extends Error {
readonly type: BrowserErrorType;
readonly details?: Record<string, unknown> | undefined;
constructor(type: BrowserErrorType, message: string, details?: Record<string, unknown> | undefined);
}
/**
* Tool result wrapper for consistent response format
*/
export interface ToolResult<T = unknown> {
success: boolean;
data?: T;
error?: {
type: BrowserErrorType;
message: string;
details?: Record<string, unknown>;
};
}
/**
* Screenshot capture options
*/
export interface ScreenshotOptions {
fullPage?: boolean;
quality?: number;
type?: 'png' | 'jpeg';
clip?: {
x: number;
y: number;
width: number;
height: number;
};
}
/**
* Viewport information
*/
export interface ViewportInfo {
width: number;
height: number;
devicePixelRatio: number;
}
/**
* Element information
*/
export interface ElementInfo {
tagName: string;
id?: string;
className?: string;
textContent?: string;
visible: boolean;
enabled: boolean;
boundingBox?: {
x: number;
y: number;
width: number;
height: number;
};
}
/**
* Wait condition types
*/
export type WaitCondition = 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
/**
* Click options
*/
export interface ClickOptions {
button?: 'left' | 'right' | 'middle';
clickCount?: number;
delay?: number;
force?: boolean;
modifiers?: Array<'Alt' | 'Control' | 'Meta' | 'Shift'>;
position?: {
x: number;
y: number;
};
timeout?: number;
}
//# sourceMappingURL=types.d.ts.map