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()