#!/usr/bin/env python3 """ Spotify MCP Server Launcher for OpenClaw. Ensures credentials.json is configured from SPOTIFY_REFRESH_TOKEN, then executes uvx mcp-server-spotify. """ import json import os import sys from pathlib import Path def main(): refresh_token = os.environ.get("SPOTIFY_REFRESH_TOKEN") client_id = os.environ.get("SPOTIFY_CLIENT_ID") client_secret = os.environ.get("SPOTIFY_CLIENT_SECRET") creds_dir = Path.home() / ".spotify-mcp" creds_file = creds_dir / "credentials.json" if refresh_token: try: creds_dir.mkdir(parents=True, exist_ok=True) creds = { "access_token": "init", "refresh_token": refresh_token, "expires_at": 0, } creds_file.write_text(json.dumps(creds, indent=2)) try: creds_file.chmod(0o600) except Exception: pass except Exception as e: print(f"[run_spotify_mcp] Warning: Could not write credentials file: {e}", file=sys.stderr) # Launch mcp-server-spotify via uvx os.execvp("uvx", ["uvx", "mcp-server-spotify"]) if __name__ == "__main__": main()