diff options
Diffstat (limited to 'servers/gitlab_python/src/mcp_server_gitlab_python/cli.py')
| -rw-r--r-- | servers/gitlab_python/src/mcp_server_gitlab_python/cli.py | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/servers/gitlab_python/src/mcp_server_gitlab_python/cli.py b/servers/gitlab_python/src/mcp_server_gitlab_python/cli.py index 9374520..7df7aa8 100644 --- a/servers/gitlab_python/src/mcp_server_gitlab_python/cli.py +++ b/servers/gitlab_python/src/mcp_server_gitlab_python/cli.py @@ -10,10 +10,12 @@ import os import sys import mcp_server_gitlab_python + from .server import main logger = logging.getLogger("mcp_gitlab_python_server") + def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description="GitLab Python MCP Server") parser.add_argument( @@ -41,37 +43,46 @@ def parse_args() -> argparse.Namespace: ) return parser.parse_args() + def validate_args(args: argparse.Namespace) -> argparse.Namespace: - if (args.transport == "remote" and args.port < 1024 - and not sys.platform.startswith("win")): + if ( + args.transport == "remote" + and args.port < 1024 + and not sys.platform.startswith("win") + ): logger.warning( "Using a port below 1024 may require root privileges on Unix-like systems." ) return args + def setup_logging(level: str, transport: str) -> None: os.makedirs("logs", exist_ok=True) file_handler = logging.FileHandler("logs/mcp_server.log") file_handler.setLevel(getattr(logging, level)) - file_handler.setFormatter(logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s" - )) + file_handler.setFormatter( + logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") + ) console_handler = logging.StreamHandler() if transport == "stdio": console_handler.setLevel(logging.WARNING) else: console_handler.setLevel(getattr(logging, level)) - console_handler.setFormatter(logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s" - )) + console_handler.setFormatter( + logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") + ) root_logger = logging.getLogger() root_logger.setLevel(getattr(logging, level)) root_logger.handlers = [] root_logger.addHandler(file_handler) root_logger.addHandler(console_handler) + def run_server() -> None: - logger.error(f"MCP GitLab Python Server CLI starting, version: {mcp_server_gitlab_python.__version__}") + logger.error( + f"MCP GitLab Python Server CLI starting, version: " + f"{mcp_server_gitlab_python.__version__}" + ) args = validate_args(parse_args()) setup_logging(args.log_level, args.transport) try: @@ -80,4 +91,4 @@ def run_server() -> None: logger.info("Server stopped by user") except Exception as e: logger.error(f"Error running server: {e}") - sys.exit(1)
\ No newline at end of file + sys.exit(1) |
