import os
os.environ["HF_HUB_DISABLE_TELEMETRY"] = "1"
os.environ["HF_HUB_DISABLE_IMPLICIT_TOKEN"] = "1"
from smolagents import MCPClient
parameters = {
"url": "https://mcp.magichour.ai/",
"transport": "streamable-http",
"headers": {"Authorization": "Bearer " + os.environ["MAGIC_HOUR_API_KEY"]},
"timeout": 15,
}
with MCPClient(
parameters,
adapter_kwargs={"connect_timeout": 20, "client_session_timeout_seconds": 15},
structured_output=True,
) as tools:
by_name = {tool.name: tool for tool in tools}
print(f"Discovered {len(tools)} tools.")
account = by_name["account_retrieve"]()
if (
not isinstance(account, dict)
or not isinstance(account.get("id"), str)
or not isinstance(account.get("credits"), int)
):
raise RuntimeError("Magic Hour authorization did not return an account.")
print("Magic Hour API authorization confirmed.")
project_id = os.environ["MAGIC_HOUR_IMAGE_PROJECT_ID"]
project = by_name["image_projects_retrieve_details"](id=project_id)
if (
not isinstance(project, dict)
or project.get("id") != project_id
or project.get("status") != "complete"
):
raise RuntimeError("Saved image project is not complete; keep its ID and inspect its status.")
print("Saved image project is complete.")