{
  "$schema": "https://modelcontextprotocol.io/schema/manifest",
  "name": "Get MCP Ads",
  "description": "A hosted Model Context Protocol gateway for advertising accounts. One URL exposes Google Ads, Meta, TikTok, Pinterest, GA4 and Search Console, restricted to the ad accounts the account owner explicitly ticked.",
  "version": "1",
  "vendor": {
    "name": "BENLY HLG",
    "url": "https://www.getmcpads.com",
    "email": "contact@getmcpads.com"
  },
  "documentation": "https://www.getmcpads.com/llms.txt",
  "endpoints": {
    "all": {
      "url": "https://mcp.getmcpads.com/mcp",
      "transport": "streamable-http"
    },
    "per_source": {
      "meta_ads": {
        "url": "https://mcp.getmcpads.com/meta-ads/mcp",
        "transport": "streamable-http"
      },
      "pinterest_ads": {
        "url": "https://mcp.getmcpads.com/pinterest-ads/mcp",
        "transport": "streamable-http"
      },
      "google_ads": {
        "url": "https://mcp.getmcpads.com/google-ads/mcp",
        "transport": "streamable-http"
      },
      "tiktok_ads": {
        "url": "https://mcp.getmcpads.com/tiktok-ads/mcp",
        "transport": "streamable-http"
      },
      "search_console": {
        "url": "https://mcp.getmcpads.com/search-console/mcp",
        "transport": "streamable-http"
      },
      "ga4": {
        "url": "https://mcp.getmcpads.com/ga4/mcp",
        "transport": "streamable-http"
      }
    }
  },
  "authentication": {
    "type": "oauth2",
    "protected_resource_metadata": "https://mcp.getmcpads.com/.well-known/oauth-protected-resource",
    "authorization_server_metadata": "https://mcp.getmcpads.com/.well-known/oauth-authorization-server",
    "dynamic_client_registration": true,
    "pkce": [
      "S256"
    ],
    "note": "Paste the endpoint URL into your MCP client. It registers itself and opens the sign-in page. No API key to copy."
  },
  "capabilities": {
    "tools": {
      "total": 185,
      "announced_by_default": "A fraction of the total. Roughly 15 for a three platform account on the Free plan, around 32 once writes are included, and under 60 with all six sources connected.",
      "progressive_discovery": {
        "enabled": true,
        "reason": "Announcing every tool would put a 170KB tool list in front of the model on every turn. The gateway announces routing tools, the core tools of each connected platform, and the write tools the plan allows.",
        "routing_tools": [
          "list_accounts",
          "search_tools",
          "describe_tool",
          "run_tool"
        ],
        "how_to_reach_the_rest": "Call search_tools with a task in plain words, then describe_tool for the schema, then run_tool to execute. run_tool goes through the same permission checks as a direct call, so it cannot be used to bypass anything."
      }
    },
    "resources": true,
    "prompts": false,
    "per_platform": [
      {
        "platform": "meta_ads",
        "name": "Meta Ads",
        "tools": 39,
        "write_tools": 10,
        "reads": "Facebook and Instagram delivery, creatives, audiences, lift studies, catalogue joins.",
        "writes": "Pause or resume a campaign, ad set or single ad. Rename any of the three. Change an ad set or campaign budget, and an ad set schedule. Create a campaign, always paused."
      },
      {
        "platform": "pinterest_ads",
        "name": "Pinterest Ads",
        "tools": 31,
        "write_tools": 5,
        "reads": "Delivery and catalogue reporting, targeting analytics, audience insights, billing.",
        "writes": "Pause, resume or archive a campaign or ad group. Change a campaign or ad group budget. Create a campaign, always paused."
      },
      {
        "platform": "google_ads",
        "name": "Google Ads",
        "tools": 38,
        "write_tools": 7,
        "reads": "Raw GAQL, search terms, Shopping, Performance Max diagnostics, change history.",
        "writes": "Pause, resume or remove a campaign or ad group. Rename a campaign, change its dates, change a daily budget or an ad group CPC bid. Create a campaign, always paused."
      },
      {
        "platform": "tiktok_ads",
        "name": "TikTok Ads",
        "tools": 32,
        "write_tools": 5,
        "reads": "Auction reporting, creative fatigue recipes, audience overlap, Spark Ads joins.",
        "writes": "Pause or resume a campaign or ad group. Change a campaign or ad group budget. Create a campaign, always paused."
      },
      {
        "platform": "search_console",
        "name": "Search Console",
        "tools": 18,
        "write_tools": 0,
        "reads": "Search Analytics, cannibalisation, query clustering, indexation watchlists, sitemaps.",
        "writes": null
      },
      {
        "platform": "ga4",
        "name": "Google Analytics 4",
        "tools": 27,
        "write_tools": 0,
        "reads": "Reports, realtime, funnels, key events, ecommerce and server-side tagging diagnostics.",
        "writes": null
      }
    ]
  },
  "constraints": {
    "account_scoping": "Tools only reach the ad accounts ticked in the dashboard. An account that was not ticked is refused server side, including through run_tool.",
    "writes": "Write tools are absent from the tool list on the Free plan and refused if called. Every write returns a preview until it is called again with confirm true. Created campaigns are always PAUSED and there is no option to create them active.",
    "plans": [
      {
        "plan": "free",
        "name": "Free",
        "price_eur_per_month": null,
        "ad_accounts": 1,
        "seats": 1,
        "tool_calls_per_period": 200,
        "writes": false
      },
      {
        "plan": "pro",
        "name": "Pro",
        "price_eur_per_month": 39,
        "ad_accounts": 5,
        "seats": 5,
        "tool_calls_per_period": null,
        "writes": true
      },
      {
        "plan": "team",
        "name": "Team",
        "price_eur_per_month": 99,
        "ad_accounts": 15,
        "seats": 15,
        "tool_calls_per_period": null,
        "writes": true
      },
      {
        "plan": "agency",
        "name": "Agency",
        "price_eur_per_month": 199,
        "ad_accounts": 50,
        "seats": 50,
        "tool_calls_per_period": null,
        "writes": true
      }
    ],
    "allowance_period": "Allowances run from the day the organisation signed up to the same day the following month, not from the first of the calendar month. Only the Free plan has a call allowance; paid plans are unlimited.",
    "refused_calls": "A refused call does not consume quota."
  },
  "signup": {
    "url": "https://app.getmcpads.com/sign-up",
    "requires_human": "Connecting an ad platform is an OAuth consent screen at Google, Meta, TikTok or Pinterest, and picking which ad accounts to expose. Both steps need the account owner. An agent cannot complete them and should hand back to the person."
  },
  "machine_readable": {
    "llms_txt": "https://www.getmcpads.com/llms.txt",
    "llms_full_txt": "https://www.getmcpads.com/llms-full.txt",
    "tools": "https://www.getmcpads.com/tools.md",
    "skills": "https://www.getmcpads.com/skills.md",
    "skills_manifest": "https://www.getmcpads.com/skills.json",
    "capabilities": "https://www.getmcpads.com/capabilities.json",
    "pricing": "https://www.getmcpads.com/pricing.md",
    "pricing_manifest": "https://www.getmcpads.com/pricing.json",
    "security": "https://www.getmcpads.com/security.md",
    "security_manifest": "https://www.getmcpads.com/security.json",
    "changelog": "https://www.getmcpads.com/changelog.md",
    "changelog_manifest": "https://www.getmcpads.com/changelog.json",
    "scopes": "https://www.getmcpads.com/scopes.md",
    "oauth_scopes": "https://www.getmcpads.com/.well-known/oauth-scopes",
    "sitemap": "https://www.getmcpads.com/sitemap.xml"
  }
}
