Skip to main content
Glama

MCP Browser Server

by Wladastic
status-check.mjs5.29 kB
#!/usr/bin/env node import { spawn } from 'child_process'; import { readFileSync, existsSync } from 'fs'; import { setTimeout as sleep } from 'timers/promises'; console.log('🎯 MCP Browser Automation Server - Status Check'); console.log('='.repeat(50)); // Check if build exists console.log('\n📦 Build Status:'); if (existsSync('build/index.js')) { console.log('✅ TypeScript compiled successfully'); // Check if package.json is configured properly const pkg = JSON.parse(readFileSync('package.json', 'utf8')); console.log(`✅ Package: ${pkg.name} v${pkg.version}`); console.log(`✅ Type: ${pkg.type} (ES Modules)`); console.log(`✅ Scripts: ${Object.keys(pkg.scripts).join(', ')}`); } else { console.log('❌ Build not found - run "npm run build"'); process.exit(1); } // Check VS Code configuration console.log('\n🔧 VS Code Integration:'); if (existsSync('.vscode/mcp.json')) { console.log('✅ MCP configuration file exists'); } else { console.log('❌ MCP configuration missing'); } if (existsSync('.vscode/tasks.json')) { console.log('✅ VS Code tasks configured'); } else { console.log('❌ VS Code tasks missing'); } // Check dependencies console.log('\n📚 Dependencies:'); try { const deps = ['@modelcontextprotocol/sdk', 'playwright', 'zod']; for (const dep of deps) { try { const depPath = `node_modules/${dep}/package.json`; if (existsSync(depPath)) { const depPkg = JSON.parse(readFileSync(depPath, 'utf8')); console.log(`✅ ${dep}@${depPkg.version}`); } else { console.log(`❌ ${dep} not installed`); } } catch (e) { console.log(`❌ ${dep} check failed`); } } } catch (e) { console.log('❌ Error checking dependencies'); } // Test basic MCP communication console.log('\n🧪 MCP Server Test:'); try { const mcpProcess = spawn('node', ['build/index.js'], { stdio: ['pipe', 'pipe', 'pipe'], cwd: process.cwd() }); let serverStarted = false; mcpProcess.stderr.on('data', (data) => { if (data.toString().includes('MCP Browser Server running')) { serverStarted = true; } }); // Wait for server to start await sleep(2000); if (serverStarted) { console.log('✅ MCP server starts successfully'); // Test tools/list request const request = { jsonrpc: '2.0', id: 1, method: 'tools/list', params: {} }; let toolsReceived = false; mcpProcess.stdout.on('data', (data) => { try { const response = JSON.parse(data.toString()); if (response.result && response.result.tools) { console.log(`✅ MCP tools available: ${response.result.tools.length} tools`); toolsReceived = true; } } catch (e) { // Ignore JSON parse errors } }); mcpProcess.stdin.write(JSON.stringify(request) + '\n'); await sleep(2000); if (toolsReceived) { console.log('✅ MCP communication working'); } else { console.log('❌ MCP communication failed'); } } else { console.log('❌ MCP server failed to start'); } mcpProcess.kill(); } catch (e) { console.log('❌ MCP server test failed:', e.message); } // Check test files console.log('\n🔍 Test Files:'); const testFiles = [ 'tests/simple-test.mjs', 'tests/demo-test.mjs', 'tests/ai-analysis-test.mjs', 'tests/simple-ai-test.mjs' ]; for (const file of testFiles) { if (existsSync(file)) { console.log(`✅ ${file} ready`); } else { console.log(`❌ ${file} missing`); } } // Check screenshots from previous runs console.log('\n📸 Previous Test Results:'); const screenshots = [ 'screenshots/homepage.png', 'screenshots/demo-page.png', 'screenshots/interaction-test.png' ]; for (const screenshot of screenshots) { if (existsSync(screenshot)) { console.log(`✅ ${screenshot} captured`); } else { console.log(`📷 ${screenshot} not found (will be created on test run)`); } } // Demo website status check console.log('\n🌐 Demo Testing:'); try { const response = await fetch('https://example.com'); if (response.ok) { console.log('✅ Example.com accessible for demo testing'); console.log('✅ Ready for automated testing'); } else { console.log('❌ Example.com not responding properly'); } } catch (e) { console.log('❌ Internet connection issue'); } console.log('\n🎉 Setup Summary:'); console.log('✅ MCP Browser Automation Server configured'); console.log('✅ TypeScript build working'); console.log('✅ VS Code integration ready'); console.log('✅ Playwright browsers installed'); console.log('✅ Test scripts available'); console.log('\n🚀 Usage:'); console.log(' npm run test # Test basic MCP communication'); console.log(' npm run test:demo # Test demo web automation'); console.log(' npm run build # Rebuild TypeScript'); console.log(' npm run start # Run MCP server directly'); console.log('\n📖 Next Steps:'); console.log('1. Run basic tests: npm run test'); console.log('2. Run demo automation: npm run test:demo'); console.log('3. Use in VS Code with MCP extension'); console.log('4. Customize automation scripts for your needs'); console.log('\n✨ MCP Browser Automation Server is ready!');

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/Wladastic/mcp-browser-server'

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