Skip to main content
Glama

Safari MCP Server

by lxman
test-fixes.jsโ€ข3.35 kB
#!/usr/bin/env node // Quick test script to verify console logs and network logs fixes import { SafariDriverManager } from './build/safari-driver.js'; async function testFixes() { const driverManager = new SafariDriverManager(); const sessionId = 'test-session'; try { console.log('๐Ÿš€ Starting Safari session...'); await driverManager.createSession(sessionId, { enableInspection: true, enableProfiling: true }); console.log('๐ŸŒ Navigating to test page...'); await driverManager.navigateToUrl(sessionId, 'https://httpbin.org/json'); console.log('๐Ÿ“ Initializing console capture and generating logs...'); // First call getConsoleLogs to initialize the capture system await driverManager.getConsoleLogs(sessionId); // Now execute script to generate logs await driverManager.executeScript(sessionId, ` console.log("Test log message"); console.warn("Test warning message"); console.error("Test error message"); console.info("Test info message"); console.log("Complex object:", {name: "test", value: 42, array: [1, 2, 3]}); // Make a fetch request to generate network activity fetch('/headers').then(r => r.json()).then(data => console.log('Fetch result:', data)); `); // Wait a moment for logs to be captured await new Promise(resolve => setTimeout(resolve, 2000)); console.log('๐Ÿ” Checking if console capture is initialized...'); const captureStatus = await driverManager.executeScript(sessionId, ` return { logsArrayExists: !!window.__safariMCPConsoleLogs, logsCount: window.__safariMCPConsoleLogs ? window.__safariMCPConsoleLogs.length : 0, logs: window.__safariMCPConsoleLogs || [] }; `); console.log('Console capture status:', JSON.stringify(captureStatus, null, 2)); console.log('๐Ÿ“‹ Testing console logs...'); const consoleLogs = await driverManager.getConsoleLogs(sessionId); console.log(`โœ… Console logs captured: ${consoleLogs.length} entries`); consoleLogs.forEach((log, i) => console.log(` ${i+1}. [${log.level}] ${log.message}`)); console.log('\n๐ŸŒ Testing network logs...'); const networkLogs = await driverManager.getNetworkLogs(sessionId); console.log(`โœ… Network logs captured: ${networkLogs.length} entries`); networkLogs.slice(0, 3).forEach((log, i) => console.log(` ${i+1}. ${log.method} - ${log.url}`)); console.log('\n๐Ÿงน Testing log clearing...'); await driverManager.clearConsoleLogs(sessionId); await driverManager.clearNetworkLogs(sessionId); const clearedConsoleLogs = await driverManager.getConsoleLogs(sessionId); const clearedNetworkLogs = await driverManager.getNetworkLogs(sessionId); console.log(`โœ… Console logs after clear: ${clearedConsoleLogs.length} entries`); console.log(`โœ… Network logs after clear: ${clearedNetworkLogs.length} entries`); console.log('\n๐ŸŽ‰ All tests passed! The fixes are working correctly.'); } catch (error) { console.error('โŒ Test failed:', error.message); } finally { console.log('๐Ÿ”ง Cleaning up...'); try { await driverManager.closeSession(sessionId); } catch (e) { // Ignore cleanup errors } } } testFixes().catch(console.error);

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lxman/safari-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server