Skip to main content
Glama
main.py1.71 kB
"""Main entry point for the Playwright MCP Server.""" import asyncio import logging import signal import sys from typing import Optional from playwright_mcp_server.server import PlaywrightMCPServer # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) def main() -> None: """Main entry point wrapper for CLI.""" try: asyncio.run(async_main()) except KeyboardInterrupt: logger.info("Server stopped by user") except Exception as e: logger.error(f"Fatal error: {e}", exc_info=True) sys.exit(1) async def async_main() -> None: """Main entry point for the Playwright MCP Server.""" server = PlaywrightMCPServer() # Set up signal handlers for graceful shutdown def signal_handler(signum, frame): logger.info(f"Received signal {signum}, shutting down...") raise KeyboardInterrupt() signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) try: logger.info("Starting Playwright MCP Server...") await server.run() except KeyboardInterrupt: logger.info("Shutting down server gracefully...") except Exception as e: logger.error(f"Error running server: {e}", exc_info=True) sys.exit(1) finally: try: await server.cleanup() logger.info("Server cleanup completed") except Exception as e: logger.error(f"Error during cleanup: {e}", exc_info=True) def cli_main() -> None: """CLI entry point wrapper.""" main() if __name__ == "__main__": main()

Latest Blog Posts

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/nolecram/Build_MCP_Server'

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