Skip to main content
Glama
EfrainTorres

ArmaVita Meta Ads MCP

list_account_pages

Retrieve Facebook Pages associated with a Meta Ads account to manage page-level advertising permissions and access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ad_account_idYes
meta_access_tokenNo

Implementation Reference

  • The implementation of the `list_account_pages` tool.
    @mcp_server.tool()
    @meta_api_tool
    async def list_account_pages(ad_account_id: str, meta_access_token: Optional[str] = None) -> str:
        if not ad_account_id:
            return _json({"error": "No account ID provided"})
    
        if ad_account_id == "me":
            try:
                payload = await make_api_request("me/accounts", meta_access_token, {"fields": _PAGE_FIELDS, "page_size": 200})
                if isinstance(payload, dict) and isinstance(payload.get("data"), list):
                    for page in payload["data"]:
                        if isinstance(page, dict):
                            page["source"] = "me/accounts"
                            page["confidence"] = "primary_documented"
                return _json(payload)
            except Exception as exc:  # noqa: BLE001
                return _json({"error": "Failed to get user pages", "details": str(exc)})
    
        normalized_account_id = _normalize_ad_account_id(ad_account_id)
    
        try:
            discovery = await _collect_account_page_candidates(normalized_account_id, meta_access_token)
            pages = discovery.get("pages", [])
            if pages:
                return _json(
                    {
                        "data": pages,
                        "total_pages_found": len(pages),
                        "source_counts": discovery.get("source_counts", {}),
                        "failed_sources": discovery.get("failures", []),
                    }
                )
    
            return _json(
                {
                    "data": [],
                    "message": "No pages found associated with this account",
                    "source_counts": discovery.get("source_counts", {}),
                    "failed_sources": discovery.get("failures", []),
                    "suggestion": (
                        "Connect a Facebook page to this ad account or provide facebook_page_id manually. "
                        "Primary documented edges were checked before fallbacks."
                    ),
                }
            )
        except Exception as exc:  # noqa: BLE001
            return _json({"error": "Failed to get account pages", "details": str(exc)})

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EfrainTorres/armavita-meta-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server