Skip to content

Commit 5af9186

Browse files
committed
handle interrupt
1 parent 6400bcd commit 5af9186

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/alertmanager_mcp_server/server.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import logging
44
import socket
5+
import signal
56
import sys
67
from contextvars import ContextVar
78
from dataclasses import dataclass
@@ -24,6 +25,10 @@
2425
)
2526
logger = 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

2833
def 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:
731736
def 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

0 commit comments

Comments
 (0)