get_network_logs
Retrieve network request and response logs from browser debugging sessions, with optional filtering by URL, method, status code, or resource type.
Instructions
Get network request/response logs collected since the debugger was attached. Optionally filter by URL pattern, method, status code, or resource type.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter criteria for network logs | |
| tabId | No | Target tab ID (defaults to active tab) | |
| apiKey | No | API key for authentication |
Implementation Reference
- src/tools/devtools-network.ts:9-18 (schema)Input schema (Zod) for the 'get_network_logs' tool: defines optional filters (urlPattern, method, statusCode, resourceType), tabId, and apiKey.
{ filter: z.object({ urlPattern: z.string().optional().describe('Filter by URL substring or pattern'), method: z.string().optional().describe('Filter by HTTP method (GET, POST, etc.)'), statusCode: z.number().optional().describe('Filter by response status code'), resourceType: z.string().optional().describe('Filter by resource type (Document, Script, Stylesheet, Image, XHR, Fetch, etc.)'), }).optional().describe('Filter criteria for network logs'), tabId: z.number().optional().describe('Target tab ID (defaults to active tab)'), apiKey: z.string().optional().describe('API key for authentication'), }, - src/tools/devtools-network.ts:19-31 (handler)Handler function for 'get_network_logs': sends the command via WebSocketBridge and returns the result as JSON.
async ({ filter, tabId, apiKey }) => { const result = await bridge.sendCommand({ command: 'get_network_logs', params: { filter }, tabId, apiKey, }); if (!result.success) { return { content: [{ type: 'text', text: `Error: ${result.error?.message}` }], isError: true }; } return { content: [{ type: 'text', text: JSON.stringify(result.data, null, 2) }] }; } ); - src/tools/devtools-network.ts:5-31 (registration)Registration of 'get_network_logs' tool via server.tool() within registerDevtoolsNetworkTools, which is called from tools/index.ts.
export function registerDevtoolsNetworkTools(server: McpServer, bridge: WebSocketBridge) { server.tool( 'get_network_logs', 'Get network request/response logs collected since the debugger was attached. Optionally filter by URL pattern, method, status code, or resource type.', { filter: z.object({ urlPattern: z.string().optional().describe('Filter by URL substring or pattern'), method: z.string().optional().describe('Filter by HTTP method (GET, POST, etc.)'), statusCode: z.number().optional().describe('Filter by response status code'), resourceType: z.string().optional().describe('Filter by resource type (Document, Script, Stylesheet, Image, XHR, Fetch, etc.)'), }).optional().describe('Filter criteria for network logs'), tabId: z.number().optional().describe('Target tab ID (defaults to active tab)'), apiKey: z.string().optional().describe('API key for authentication'), }, async ({ filter, tabId, apiKey }) => { const result = await bridge.sendCommand({ command: 'get_network_logs', params: { filter }, tabId, apiKey, }); if (!result.success) { return { content: [{ type: 'text', text: `Error: ${result.error?.message}` }], isError: true }; } return { content: [{ type: 'text', text: JSON.stringify(result.data, null, 2) }] }; } ); - src/tools/index.ts:29-55 (registration)registerAllTools calls registerDevtoolsNetworkTools, which registers the 'get_network_logs' tool.
export function registerAllTools(server: McpServer, bridge: WebSocketBridge) { registerNavigationTools(server, bridge); registerTabManagementTools(server, bridge); registerKeyboardTools(server, bridge); registerScreenshotTools(server, bridge); registerClickTools(server, bridge); registerInputTools(server, bridge); registerDragDropTools(server, bridge); registerHoverTools(server, bridge); registerDevtoolsSourcesTools(server, bridge); registerDevtoolsModifyTools(server, bridge); registerDevtoolsNetworkTools(server, bridge); registerDevtoolsStorageTools(server, bridge); registerDevtoolsConsoleTools(server, bridge); registerAccessibilityTools(server, bridge); registerEmulationTools(server, bridge); registerElementTools(server, bridge); registerAuditTools(server, bridge); registerInteractionTools(server, bridge); registerMonitoringTools(server, bridge); registerQaTools(server, bridge); registerGestureTools(server, bridge); registerMacroTools(server, bridge); registerVisualRegressionTools(server, bridge); }