BareGit
import os
import sys
from src.trilium_client import TriliumClient
from src.handlers import ToolHandlers
from src.server import MCPServer

def main():
    # Load configuration from environment variables
    url = os.environ.get("TRILIUM_URL", "").strip()
    token = os.environ.get("TRILIUM_TOKEN", "").strip()

    if not url or not token:
        sys.stderr.write("Error: TRILIUM_URL and TRILIUM_TOKEN environment variables must be set.\n")
        sys.exit(1)

    # Initialize components
    client = TriliumClient(url, token)
    handlers = ToolHandlers(client)
    server = MCPServer(handlers)

    # Start the JSON-RPC loop
    try:
        server.run()
    except KeyboardInterrupt:
        pass
    except Exception:
        import traceback
        sys.stderr.write(f"Critical error:\n{traceback.format_exc()}\n")
        sys.exit(1)

if __name__ == "__main__":
    main()