File tree Expand file tree Collapse file tree
src/alertmanager_mcp_server Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22import os
33import logging
44import socket
5+ import signal
56import sys
67from contextvars import ContextVar
78from dataclasses import dataclass
2425)
2526logger = logging .getLogger (__name__ )
2627
28+ def handle_interrupt (signum , frame ):
29+ """Handle keyboard interrupt (Ctrl+C) gracefully."""
30+ logger .info (f"Received signal { signum } , shutting down gracefully..." )
31+ sys .exit (0 )
2732
2833def safe_print (text ):
2934 # Don't print to stderr when running as MCP server via uvx to avoid JSON parsing errors
@@ -731,6 +736,9 @@ async def _shutdown() -> None:
731736def run_server ():
732737 """Main entry point for the Prometheus Alertmanager MCP Server"""
733738 setup_environment ()
739+ # Set up signal handler for graceful shutdown
740+ signal .signal (signal .SIGINT , handle_interrupt )
741+ signal .signal (signal .SIGTERM , handle_interrupt )
734742 # Get the underlying MCP server from the FastMCP instance
735743 mcp_server = mcp ._mcp_server # noqa: WPS437
736744
You can’t perform that action at this time.
0 commit comments