import subprocess import time import os from support.log_manager import logger def start_mcp_servers(): """Start both MCP servers as separate processes""" # Start boss server as subprocess boss_process = subprocess.Popen( ["python", "-m", "mcp_servers.boss_server"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=os.getcwd() ) # Start captain server as subprocess captain_process = subprocess.Popen( ["python", "-m", "mcp_servers.captain_server"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=os.getcwd() ) # Give servers time to start time.sleep(3) # Check if processes are running if boss_process.poll() is None: logger.info("BossServer started successfully as subprocess") else: logger.error("BossServer failed to start") if captain_process.poll() is None: logger.info("CaptainServer started successfully as subprocess") else: logger.error("CaptainServer failed to start") # Store process references for cleanup if needed return boss_process, captain_process