Model Control Plane (MCP) Server

  • scripts
#!/usr/bin/env python3 """ Convenient script to start the MCP server with configurable settings """ import os import sys import argparse import uvicorn def start_server(prometheus_url=None, host="127.0.0.1", port=8000, reload=True, debug=False): """Start the MCP server with the specified Prometheus URL""" # Set environment variables if provided if prometheus_url: print(f"Setting Prometheus URL to: {prometheus_url}") os.environ["PROMETHEUS_URL"] = prometheus_url # Verify the environment variable was set print(f"Verification - PROMETHEUS_URL is now: {os.getenv('PROMETHEUS_URL')}") else: current_url = os.getenv("PROMETHEUS_URL") if current_url: print(f"Using existing PROMETHEUS_URL from environment: {current_url}") else: print("PROMETHEUS_URL not set. Will use default: http://localhost:9090") # Display debug info if requested if debug: print("\nEnvironment Variables:") for key, value in os.environ.items(): if key.startswith("PROMETHEUS") or key.startswith("MCP"): print(f" {key}={value}") print(f"Starting MCP server on {host}:{port}") if reload: print("Hot reload is enabled - code changes will automatically restart the server") # Start the server using uvicorn uvicorn.run( "mcp_server:app", host=host, port=port, reload=reload ) if __name__ == "__main__": # Parse command line arguments parser = argparse.ArgumentParser(description="Start the MCP server with configurable settings") parser.add_argument("--prometheus-url", help="URL of the Prometheus server", default=os.getenv("PROMETHEUS_URL")) parser.add_argument("--host", help="Host to bind the server to", default="127.0.0.1") parser.add_argument("--port", help="Port to bind the server to", type=int, default=8000) parser.add_argument("--no-reload", help="Disable hot reload", action="store_true") parser.add_argument("--debug", help="Show debug information", action="store_true") args = parser.parse_args() # Start the server with the provided arguments start_server( prometheus_url=args.prometheus_url, host=args.host, port=args.port, reload=not args.no_reload, debug=args.debug )