MCP Notify Server

by Cactusinhand
Verified
MIT License
5
  • Apple
  • Linux
""" MCP Notification Server Package Exports the main server class and version information. """ import argparse import logging.config from .server import NotificationServer from .sound import SoundPlayer from .schemas import NotificationRequest import asyncio import logging # Version should match pyproject.toml __version__ = "0.1.0" # 显式导出公共接口 __all__ = [ "NotificationServer", "SoundPlayer", "NotificationRequest", "NotificationType", "__version__", "main", ] logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) logger = logging.getLogger(__name__) logger.info(f"Loaded mcp-server-notify version {__version__}") def main(): """ MCP Notification Server Args: --debug: Enable debug mode --log-file: Specify log file path (works with --debug) Examples: python -m mcp_server_notify --debug python -m mcp_server_notify --debug --log-file=logfile.log """ parser = argparse.ArgumentParser(description='MCP Notification Server') parser.add_argument('--debug', action='store_true', help='Enable debug mode') parser.add_argument('--log-file', type=str, help='Specify log file path (works with --debug)') args = parser.parse_args() log_level = logging.DEBUG if args.debug else logging.INFO if args.debug and args.log_file: # 创建文件处理器 file_handler = logging.FileHandler(args.log_file) file_handler.setLevel(log_level) file_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")) # 添加到根日志记录器 logging.getLogger().addHandler(file_handler) logger.setLevel(log_level) logger.info(f"Debug mode enabled, logging to file: {args.log_file}") elif args.debug: logger.setLevel(log_level) logger.info("Debug mode is enabled") # 确保服务器持续运行 server = NotificationServer() try: asyncio.run(server.serve()) except KeyboardInterrupt: logger.info("Server stopped by user") except Exception as e: logger.error(f"Server error: {str(e)}") raise if __name__ == "__main__": main()