IACR MCP Server

from ..storage.configuration import Configuration from .level_one.call import Call from ..server_manager import ServerManager from .api import app from .level_one.server.server import * from .level_two.server.server import * from .storage.server.server import * from .tools.server import * from .markdown.server.server import * from .others.server.server import * import warnings from multiprocessing import freeze_support from ..tools_server import run_tools_server, stop_tools_server, is_tools_server_running warnings.filterwarnings("ignore", category=UserWarning) warnings.filterwarnings("ignore", category=ResourceWarning) warnings.filterwarnings("ignore", category=PendingDeprecationWarning) _server_manager = ServerManager( app_path="DigitalFate.server.api:app", host="localhost", port=7541, name="main" ) def run_main_server(redirect_output: bool = False): """Start the main server if it's not already running.""" _server_manager.start(redirect_output=redirect_output) def run_main_server_internal(reload: bool = True): """Run the main server directly (for development)""" import uvicorn uvicorn.run("DigitalFate.server.api:app", host="0.0.0.0", port=7541, reload=reload) def stop_main_server(): """Stop the main server if it's running.""" _server_manager.stop() def is_main_server_running() -> bool: """Check if the main server is currently running.""" return _server_manager.is_running() def run_dev_server(redirect_output=True): """Run both main and tools servers for development""" run_main_server(redirect_output=redirect_output) run_tools_server(redirect_output=redirect_output) import time while not is_main_server_running() or not is_tools_server_running(): time.sleep(0.1) def stop_dev_server(): """Stop both main and tools servers""" stop_main_server() stop_tools_server() if __name__ == '__main__': freeze_support() __all__ = ["Configuration", "Call", "app", "run_main_server", "stop_main_server", "is_main_server_running", "run_main_server_internal", "run_dev_server", "stop_dev_server"]