UNPKG

playwright-min-network-mcp

Version:

Minimal network monitoring MCP tool for Playwright browser automation

176 lines (175 loc) 4.97 kB
import { z } from 'zod'; /** * Network monitoring configuration schema */ export declare const StartMonitorSchema: z.ZodObject<{ max_buffer_size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; cdp_port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; filter: z.ZodDefault<z.ZodOptional<z.ZodObject<{ content_types: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodLiteral<"all">]>>>; url_include_patterns: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodLiteral<"all">]>>>; methods: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; max_body_size: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { content_types: string[] | "all"; url_include_patterns: string[] | "all"; methods?: string[] | undefined; max_body_size?: number | undefined; }, { content_types?: string[] | "all" | undefined; url_include_patterns?: string[] | "all" | undefined; methods?: string[] | undefined; max_body_size?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { max_buffer_size: number; cdp_port: number; filter: { content_types: string[] | "all"; url_include_patterns: string[] | "all"; methods?: string[] | undefined; max_body_size?: number | undefined; }; }, { max_buffer_size?: number | undefined; cdp_port?: number | undefined; filter?: { content_types?: string[] | "all" | undefined; url_include_patterns?: string[] | "all" | undefined; methods?: string[] | undefined; max_body_size?: number | undefined; } | undefined; }>; export declare const GetRecentRequestsSchema: z.ZodObject<{ count: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; include_headers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { count: number; include_headers: boolean; }, { count?: number | undefined; include_headers?: boolean | undefined; }>; export declare const GetRequestDetailSchema: z.ZodObject<{ uuid: z.ZodString; include_headers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { include_headers: boolean; uuid: string; }, { uuid: string; include_headers?: boolean | undefined; }>; /** * Infer TypeScript types from schemas */ export type StartMonitorOptions = z.infer<typeof StartMonitorSchema>; export type GetRecentRequestsOptions = z.infer<typeof GetRecentRequestsSchema>; export type GetRequestDetailOptions = z.infer<typeof GetRequestDetailSchema>; /** * Network request data structure */ export interface NetworkRequest { id: string; uuid: string; url: string; method: string; headers: Record<string, string>; timestamp: number; type: 'request'; body?: string; response?: { status: number; headers: Record<string, string>; mimeType: string; body?: string; }; responseTimestamp?: number; } /** * CDP WebSocket message types */ export interface CdpMessage { id?: number; method: string; params: any; } export interface CdpRequestWillBeSent { method: 'Network.requestWillBeSent'; params: { requestId: string; request: { url: string; method: string; headers: Record<string, string>; postData?: string; }; timestamp: number; type?: string; }; } export interface CdpResponseReceived { method: 'Network.responseReceived'; params: { requestId: string; response: { status: number; headers: Record<string, string>; mimeType: string; }; timestamp: number; }; } /** * Filter configuration */ export interface FilterConfig { contentTypes: string[] | 'all'; urlIncludePatterns: string[] | 'all'; methods?: string[]; } /** * Default content types for SDET monitoring (API and form data) */ export declare const DEFAULT_CONTENT_TYPES: string[]; /** * Browser launch configuration */ export interface BrowserConfig { cdpPort: number; } /** * Monitor status response */ export interface MonitorStatus { status: 'started' | 'stopped' | 'updated'; buffer_size: number; filter: FilterConfig; cdp_endpoint: string | null; cdp_port: number; total_captured?: number; } /** * Compact network request for overview display (512B body preview) */ export interface CompactNetworkRequest { uuid: string; method: string; status?: number; url: string; mimeType?: string; requestBodyPreview?: string; requestBodySize?: number; responseBodyPreview?: string; responseBodySize?: number; timestamp: number; responseTimestamp?: number; } /** * Network requests response */ export interface NetworkRequestsResponse { total_captured: number; showing: number; requests: CompactNetworkRequest[]; }