@mcp_server.tool()
@meta_api_tool
async def list_ads(
ad_account_id: str,
meta_access_token: Optional[str] = None,
page_size: int = 10,
campaign_id: str = "",
ad_set_id: str = "",
page_cursor: str = "",
) -> str:
if not ad_account_id:
return _json({"error": "No account ID specified"})
target_id = ad_set_id or campaign_id or ad_account_id
endpoint = f"{target_id}/ads"
params: Dict[str, Any] = {"fields": _AD_FIELDS, "page_size": int(page_size)}
if page_cursor:
params["page_cursor"] = page_cursor
payload = await make_api_request(endpoint, meta_access_token, params)
return _json(payload)