Files
scribe/scraibe/__main__.py
T
admin cd0c730abe
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
Ensure WebUI always loads even if MCP/watcher fail
- Wrap MCP server and watcher startup in try/except.
- Log warnings but never block WebUI launch.
2026-06-19 17:50:49 +00:00

60 lines
1.5 KiB
Python

"""
Entrypoint for running ScrAIbe as a module:
python -m scraibe
Always launches the Web GUI (Gradio).
Optionally launches:
- MCP-style API server
- Watch-folder mode
"""
import os
import threading
import logging
logger = logging.getLogger("scraibe.__main__")
from .webui import create_app
def _run_mcp_server():
"""
Run MCP server in a separate thread.
"""
import uvicorn
from . import mcp_server
host = os.getenv("MCP_SERVER_HOST", "0.0.0.0")
port = int(os.getenv("MCP_SERVER_PORT", "8000"))
uvicorn.run(
mcp_server.app,
host=host,
port=port,
log_level="info",
)
if __name__ == "__main__":
# Optionally start MCP server in background (non-blocking)
mcp_enabled = os.getenv("MCP_SERVER_ENABLED", "false").strip().lower() in ("true", "1", "yes")
if mcp_enabled:
try:
t = threading.Thread(target=_run_mcp_server, daemon=True)
t.start()
logger.info("MCP server started in background.")
except Exception as e:
logger.warning("Failed to start MCP server (WebUI will continue): %s", e)
# Optionally start watch-folder mode (non-blocking)
try:
from .watcher import start_watcher
start_watcher()
logger.info("Watch-folder mode started.")
except Exception as e:
logger.warning("Failed to start watch-folder mode (WebUI will continue): %s", e)
# Always start WebUI (Gradio)
create_app()