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
#!/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);