# The SaaS Ads Studio developer docs (full text) > The complete The SaaS Ads Studio developer documentation (the Connect Atlas MCP server and the API) in one file. A map of the whole site, including blog posts as individual markdown files, is at https://saasadsstudio.com/llms.txt. --- # Connect Atlas MCP Server: Connect Claude to Google Ads > Connect Claude, ChatGPT or Cursor to your Google Ads account with Connect Atlas, the SaaS Ads Studio MCP server. Sign in with OAuth, no API keys, revoke any time. Source: https://saasadsstudio.com/docs/mcp/ Published: 2026-07-19 --- Connect Atlas lets you plug your AI assistant straight into your ad account. Once connected, you can ask Claude, ChatGPT or Cursor to check your Google Ads performance, run an optimisation, approve changes, or build a whole campaign, all in plain language. This page covers what Connect Atlas is, how to set it up in each client, and what to try first. For the full list of tools, see the [MCP tool reference](/docs/mcp/tools/). For everything Atlas can run on a schedule, see [Atlas automations](/docs/mcp/automations/). ## What is Connect Atlas MCP (Model Context Protocol) is an open standard that lets AI assistants use other software. An MCP server describes a set of tools, and any MCP client (Claude, ChatGPT, Cursor and many others) can discover those tools and call them on your behalf. Connect Atlas is the SaaS Ads Studio MCP server. It exposes Atlas, our AI ads manager, as a set of 21 tools your assistant can use. In practice this means your assistant becomes a second interface to your ad account: you talk, Atlas does the work, and the same safety rules apply as when you use the app. The MCP server is also our API. There is no separate REST API today, and no API keys to manage. If you want programmatic access to Atlas, MCP is the way in. The [API page](/docs/api/) explains this in more detail. ## What you can do The tools fall into four groups. **Read your account.** Confirm the connection, list Atlas's automations and whether each is enabled, see recent actions Atlas has proposed or made, inspect one action in detail, and pull a Google Ads performance summary for the last 7, 30 or 90 days. **Manage Google Ads.** Run any of Atlas's 18 optimisation automations on demand, approve or reject the changes Atlas proposes (in full or item by item), and set your approval tier so changes apply the way you want. On Google, Atlas manages the account for real: approved changes are applied to Google Ads. **Build a Google Ads campaign.** Go from business profile to a ready campaign in one conversation: set the budget and countries, generate and save keywords grouped into ad groups, generate and save responsive search ads, then create the campaign. Campaigns are always created paused, so nothing spends until you unpause it in Google Ads. **Generate for Meta.** Generate audience ideas, ad copy variants and creative concept briefs for Facebook and Instagram. These tools produce plans for you to apply yourself in Meta Ads Manager. They never create or change anything in your Meta account. ## Requirements - A SaaS Ads Studio account with an **active or trialing subscription**. Without one, tools return a `no_subscription` error. - For the Google Ads tools to do useful work, a Google Ads account connected in the app. - An AI client that supports remote MCP servers over Streamable HTTP. Claude (web, desktop and Claude Code), ChatGPT with Developer mode, and Cursor all qualify. ## Server details | Detail | Value | | --- | --- | | Server URL | `https://clgrwyawpxkagaqukmqf.supabase.co/functions/v1/mcp-server` | | Transport | Streamable HTTP (stateless) | | Authentication | OAuth 2.1 (sign in with your SaaS Ads Studio account) | | Server name | `saas-ads-studio` | | Tools | 21 (no MCP resources or prompts) | The connection URL is the same for everyone: ``` https://clgrwyawpxkagaqukmqf.supabase.co/functions/v1/mcp-server ``` There is nothing secret in it. Access is controlled by the OAuth sign-in, not by the URL. ## Set up your AI client ### Claude Code Run this in your terminal: ``` claude mcp add --transport http saas-ads-studio https://clgrwyawpxkagaqukmqf.supabase.co/functions/v1/mcp-server ``` The first time you use a tool, your browser opens so you can sign in to SaaS Ads Studio and approve the connection. ### Claude (web and desktop) 1. Open Settings, then Connectors. 2. Choose Add custom connector. 3. Give it a name (for example "Atlas") and paste the server URL above. 4. Click Add, then sign in and approve when your browser prompts you. Custom connectors are available on Claude Free, Pro, Max, Team and Enterprise plans. ### ChatGPT 1. Open Settings, then Connectors. 2. Under Advanced, enable Developer mode. 3. Choose Create connector, paste the server URL, and set authentication to OAuth. 4. Save, then sign in and approve when your browser prompts you. Custom MCP connectors require Developer mode, available on ChatGPT Plus, Pro, Team, Enterprise and Edu. ### Cursor 1. Open Cursor Settings, then MCP. 2. Add a new server and paste the server URL as an HTTP (streamable) server. 3. The first time a tool runs, your browser opens so you can sign in and approve. ### Other MCP clients Any client or SDK that supports remote MCP servers over Streamable HTTP with OAuth should work. Point it at the server URL and complete the sign-in when prompted. ## How sign in works Connect Atlas uses OAuth 2.1, the same standard that powers "Sign in with Google". In plain words: 1. Your AI client registers itself with our authorisation server automatically. You do not need to create anything first. 2. Your browser opens the SaaS Ads Studio consent screen. 3. You sign in with your normal account and click Allow. 4. Your client receives a token and uses it for every tool call from then on. There are no API keys to copy, store or rotate. One honest note: a connection currently acts with your account's full abilities, so treat it like your login. Connect assistants you trust. You can see and revoke every connected app on the [Connect Atlas page in the app](https://app.saasadsstudio.com/connect-atlas). Revoking takes effect immediately. ## First things to try Ask your assistant to call `whoami` first. It confirms the connection works and shows which account it is acting as. Then try a few of these, in your own words: - "Check my Google Ads performance for the last 30 days and tell me what stands out" - "List the Atlas automations on my account and tell me which are enabled" - "Run a mini search term review and show me anything worth blocking" - "Show me Atlas's pending actions and walk me through the first one" - "Set my approval tier to smart" Your assistant discovers the tools on its own, so you rarely need to name them. Plain requests work. ## Safety and control Everything an assistant does through Connect Atlas runs inside the same guardrails as the app. - **Approval tiers govern changes.** On `manual`, you approve every change. On `smart`, low-risk changes apply automatically and the rest wait for you. On `auto`, changes apply automatically, still within Atlas's safety rails. You can set a different tier per automation. - **Campaigns are created paused.** A campaign built over MCP never spends a penny until you unpause it in Google Ads yourself. - **Safety rails outrank approvals.** Some protections cannot be overridden, for example a converting or brand keyword cannot be blocked even if an assistant approves the block. - **Overwrite and duplicate guards.** Saving keywords over an existing draft, or creating a campaign when one already exists, requires an explicit confirmation flag, so an assistant cannot clobber your work by accident. - **Cooldowns.** Each automation can be run at most once an hour on demand. - **Everything is audited.** Every tool call is logged against your account. - **Revoke any time.** Remove a connected app on the Connect Atlas page and its access ends immediately. ## Errors and troubleshooting Tools return errors as a short code plus a human explanation. The common ones: | Error code | What it means | | --- | --- | | `no_subscription` | Your subscription is not active or trialing. Reactivate in the app. | | `missing_permission` | The connection lacks the permission for that tool. | | `unknown_automation` | The automation id was not recognised. Use `list_automations` to see valid ids. | | `not_found` | The action id does not exist or belongs to another account. | | `query_failed` | A read failed on our side. Try again shortly. | | `exists` | Saved keywords already exist. Confirm, then retry with `replace: true`. | | `already_created` | A campaign already exists. Confirm, then retry with `force: true`. | | `cooldown` | That automation ran within the last hour. Wait and retry. | | `pending_exists` | An action of that type is already awaiting review. Review it first. | | `generation_empty` | Generation produced nothing. Fill in your business profile and retry. | Two connection-level problems worth knowing: - **401 Unauthorized** means the sign-in expired or failed. Reconnect the server in your client (sign in again). - **503 Service Unavailable** means MCP access is temporarily switched off on our side. Try again later. If a tool misbehaves in a way these do not explain, email us at the address in the app and include roughly when you called it. Every call is logged, so we can find it quickly. ## Frequently asked questions ### Is there a REST API or an API key? Not yet. The MCP server is the SaaS Ads Studio API today. It speaks standard Streamable HTTP and works with any MCP client or SDK, and you sign in with your normal account instead of managing keys. API keys for headless server-to-server use are on the roadmap. See the API page for the full picture. ### Does it work with ChatGPT? Yes. ChatGPT supports custom MCP connectors through Developer mode on ChatGPT Plus, Pro, Team, Enterprise and Edu plans. Add the Connect Atlas URL as a custom connector with OAuth authentication and approve the connection when your browser opens. ### Is it safe to let an AI assistant touch my ad account? The same safety rails that govern Atlas in the app govern every change made through MCP. Your approval tier decides whether changes apply automatically or wait for you, campaigns built this way are always created paused so nothing spends until you unpause it, and Atlas will not block a converting or brand keyword even if an assistant approves it. You can also revoke the connection at any time from the Connect Atlas page in the app. ### Do I need a paid plan? You need an active or trialing SaaS Ads Studio subscription. Any signed-in user can connect an assistant, but the tools themselves check your subscription and return a friendly error if it is not active. ### Can Atlas manage my Meta ads through this? No. On Google Ads, Atlas manages the account and applies changes at your approval tier. On Meta, the MCP tools generate audiences, ad copy and creative briefs for you to review and apply yourself in Meta Ads Manager. Nothing is ever created or changed in your Meta account through MCP. ### What can a connected assistant see and do? Treat a connection like your own login. A connected assistant acts as your SaaS Ads Studio account and can currently do everything your account can do through the 21 tools, from reading performance to approving changes. Connect assistants you trust, and revoke any connection you no longer use. --- # MCP Tool Reference: All 21 Connect Atlas Tools > Every tool on the SaaS Ads Studio MCP server: read performance, run Atlas automations, approve changes and build paused Google Ads campaigns from any MCP client. Source: https://saasadsstudio.com/docs/mcp/tools/ Published: 2026-07-19 --- This page describes every tool on the Connect Atlas MCP server. You normally never call these by name: you ask your assistant for what you want in plain language, and it picks the right tool. The reference exists so you know exactly what your assistant can and cannot do. For setup, see [Connect Atlas MCP server](/docs/mcp/). A few conventions shared by all tools: - Results come back as JSON your assistant reads and explains. - Errors come back as a short code plus a plain-English message, in the shape `{ "error": "code", "message": "explanation" }`. The full code list is on the [main MCP page](/docs/mcp/). - Every tool except `whoami` requires an active or trialing subscription. - `whoami` is the recommended first call to confirm a new connection. ## Read tools Five tools that look at your account without changing anything. ### whoami Returns the SaaS Ads Studio account the connection is acting as (user id and email) plus the permissions granted. Call it first to confirm a new connection works. Takes no parameters. ### list_automations Lists Atlas's Google Ads optimisation automations, each with its id, name, run cadence, whether it is advisory only, and whether it is currently enabled on your account. Also reports whether a Google Ads account is connected and your current approval tier. Takes no parameters. See [Atlas automations](/docs/mcp/automations/) for what each automation does. ### list_actions Lists Atlas's recent actions on your account (what it proposed or did), newest first. | Parameter | Required | Notes | | --- | --- | --- | | `status` | No | Filter by status, for example `pending`, `completed`, `requires_action` or `failed` | | `limit` | No | 1 to 50, default 20 | ### get_action Returns one action in full, including its individual items, for example the specific negative keywords Atlas proposed. Use it to review the detail before approving or rejecting. | Parameter | Required | Notes | | --- | --- | --- | | `action_id` | Yes | An action id from `list_actions` | Returns `not_found` if the id does not exist or is not yours. ### get_performance_metrics Returns your Google Ads performance summary: KPI totals and period-over-period changes for the chosen window. The verbose day-by-day breakdown is left out on purpose, since totals and changes are what a summary needs. | Parameter | Required | Notes | | --- | --- | --- | | `days` | No | `7`, `30` or `90`, default 30 | ## Manage Google Ads Four tools that run Atlas's management and control how changes get applied. On Google Ads, Atlas manages the account for real: approved changes are applied. ### run_automation Runs one of Atlas's optimisation automations now, instead of waiting for its schedule. Atlas analyses your account and proposes changes. Whether they apply immediately or wait for you depends on your approval tier. | Parameter | Required | Notes | | --- | --- | --- | | `automation_id` | Yes | An id from `list_automations`, for example `search_term_review_quick` | Each automation has a 1 hour cooldown, so the same automation can be run on demand at most once per hour (`cooldown` error). If an action of the same type is already waiting for review, you get `pending_exists` and should review that one first. ### approve_action Approves an Atlas action, executing the change on your Google Ads account. Approve the whole action, or only specific items within it. | Parameter | Required | Notes | | --- | --- | --- | | `action_id` | Yes | The action to approve | | `item_ids` | No | Approve only these items within the action | | `feedback` | No | A note recorded with your decision | Assistants are instructed to confirm with you before calling this. Safety rails still gate execution, so a converting or brand keyword cannot be blocked even if approved. ### reject_action Rejects an Atlas action (or specific items within it), so the proposed change is not made. | Parameter | Required | Notes | | --- | --- | --- | | `action_id` | Yes | The action to reject | | `item_ids` | No | Reject only these items within the action | | `feedback` | No | Optionally say why, recorded with the decision | ### set_approval_tier Sets how Atlas applies changes, globally or for a single automation. | Parameter | Required | Notes | | --- | --- | --- | | `tier` | Yes | `manual`, `smart`, `auto`, or `default` (see below) | | `automation_id` | No | Apply the tier to this automation only | The tiers: `manual` means you approve every change. `smart` means low-risk changes apply automatically and the rest wait for you. `auto` means changes apply automatically, still within Atlas's safety rails. Passing `default` together with an `automation_id` clears that automation's override so it follows your global tier again (`default` is not valid as a global tier). ## Build a Google Ads campaign Nine tools that take you from business profile to a created campaign. The natural order is: check status, check the profile, set the config, generate then save keywords, generate then save ads, create, verify. Your assistant will walk this flow for you. The most important fact in this section: **campaigns are always created paused**. Nothing spends until you unpause the campaign in Google Ads yourself. ### gads_get_status Reports the state of your campaign build: whether a Google Ads account is connected, whether your business profile is complete (and which fields are missing), whether config is saved, how many keywords and RSA sets are prepared, how many conversion goals exist, and which campaigns have already been created. The right first call when starting or resuming a build. Takes no parameters. ### get_business_profile Returns the business profile that drives generation quality: company, product, target customers and language, plus your saved target countries. Flags any gaps worth filling in the app before generating. Takes no parameters. ### gads_set_campaign_config Saves the campaign configuration. Budget and countries are the two decisions your assistant must confirm with you. Bidding, network and tracking settings use sensible defaults, and currency comes from your connected Google Ads account. | Parameter | Required | Notes | | --- | --- | --- | | `monthlyBudget` | Yes | 400 to 50000, in your account currency | | `countries` | Yes | At least one country, names or ISO codes | | `includeBrandCampaign` | No | Also build a brand campaign | | `brandBudgetPercentage` | No | Share of budget for the brand campaign | ### gads_generate_keywords Generates high-intent buying keywords from your business profile and groups them into themed ad groups. Returns the groups for you to review. Saves nothing. | Parameter | Required | Notes | | --- | --- | --- | | `theme` | No | Bias generation toward a theme | | `existingKeywords` | No | Keywords to build around or avoid duplicating | If your business profile is too thin to generate from, you get `generation_empty` with advice to fill it in. ### gads_save_keywords Saves your curated, grouped keywords for the campaign. Wrap a keyword to set its match type: `[square brackets]` for exact match, `"quotes"` for phrase match, bare text for broad match. | Parameter | Required | Notes | | --- | --- | --- | | `groups` | Yes | A list of groups, each with an optional `name` and its `keywords` | | `replace` | No | Must be `true` to overwrite previously saved keywords | Saving replaces what was saved before, so if keywords already exist the tool refuses with `exists` until you confirm and it is called again with `replace: true`. ### gads_generate_rsas Generates a responsive search ad for each saved ad group: headlines, descriptions, sitelinks, callouts and a display path, written against the ad group's target keyword and your landing page. Returns everything for review. Saves nothing. | Parameter | Required | Notes | | --- | --- | --- | | `landingPageUrl` | No | The page the ads should send people to | Requires saved keywords first, otherwise you get `no_keywords`. ### gads_save_rsas Saves the reviewed ads (one per ad group) as a single set and returns its `set_id`, which `gads_create_campaign` uses. | Parameter | Required | Notes | | --- | --- | --- | | `rsasByAdGroup` | Yes | The ads from `gads_generate_rsas`, after any edits you asked for | ### gads_create_campaign Creates the campaign in Google Ads from your saved config, keywords and ad set. The campaign is created **paused**. The response includes any `partialFailures`, meaning individual keywords or ads Google rejected while the rest succeeded. | Parameter | Required | Notes | | --- | --- | --- | | `set_id` | No | The RSA set to use, from `gads_save_rsas` | | `force` | No | Must be `true` to create another campaign when one already exists | If a campaign already exists you get `already_created` until you confirm and it is called again with `force: true`. Assistants are instructed to confirm with you before calling this tool at all. ### gads_verify_campaign Confirms whether your Google Ads account has at least one live (enabled) campaign. Useful as a final check after you unpause. Takes no parameters. ## Generate for Meta, apply it yourself Three tools for Facebook and Instagram. They generate plans and assets from your business profile. **They never create or change anything in your Meta account.** You take the output and build it in Meta Ads Manager yourself, which usually takes a few minutes. ### fb_generate_audiences Generates Meta audience ideas, both prospecting and remarketing, from your business profile. Takes no parameters. ### fb_generate_copy Generates Meta ad copy variants (primary text, headline and description) across different persuasion angles. | Parameter | Required | Notes | | --- | --- | --- | | `additional` | No | Pass `true` to generate more variants after a first batch | ### fb_generate_creatives Generates Meta creative concept briefs, for example before-and-after, testimonial, founder and mockup formats, ready to hand to whoever produces your creative. Takes no parameters. ## Errors Every tool reports failures as `{ "error": "code", "message": "explanation" }`. The canonical code table lives on the [main MCP page](/docs/mcp/), covering `no_subscription`, `missing_permission`, `unknown_automation`, `not_found`, `query_failed`, `exists`, `already_created`, `cooldown`, `pending_exists` and `generation_empty`. ## Frequently asked questions ### Can these tools launch live ads? No. The campaign build tools always create campaigns paused. Nothing spends until you unpause the campaign yourself in Google Ads. The manage tools can apply optimisation changes to a live account, but only at the approval tier you have chosen, and always within Atlas safety rails. ### Can these tools edit my Meta account? No. The three Meta tools generate audience ideas, ad copy and creative briefs for you to apply yourself in Meta Ads Manager. There is no Meta write access of any kind through MCP. ### Are there rate limits? Each automation can be run on demand at most once per hour, per automation. There are no other published limits today. If that changes we will document it here. ### What happens when I approve an action? Atlas executes the change on your Google Ads account, either the whole action or just the items you selected. Safety rails still apply, so a protection like never blocking a converting or brand keyword holds even after an approval. The action then shows as completed in the app and in the actions list. --- # Atlas Automations: 18 Google Ads Automations via MCP > All 18 Atlas automations you can run through the SaaS Ads Studio MCP server, with ids, schedules, what each one changes and which are advisory only. Source: https://saasadsstudio.com/docs/mcp/automations/ Published: 2026-07-19 --- Atlas manages Google Ads accounts through 18 named automations. Each one reviews a specific part of your account on its own schedule, then proposes or applies changes at the approval tier you have chosen. Through the [Connect Atlas MCP server](/docs/mcp/), your AI assistant can list them, see which are enabled, and run any of them on demand. All 18 automations are Google Ads only. On Meta, Atlas generates plans and assets for you to apply yourself; see the [tool reference](/docs/mcp/tools/) for those tools. ## How automations work - **They run on a schedule.** Each automation has its own cadence, from every 4 hours to every 4 months, listed below. - **You can run them on demand.** Ask your assistant to run one and it calls `run_automation` with the automation's id. Each automation can be run this way at most once per hour. - **Your approval tier decides what happens next.** On `manual`, proposed changes wait for your approval. On `smart`, low-risk changes apply automatically and the rest wait. On `auto`, changes apply automatically, still within Atlas's safety rails. You can override the tier for any single automation. - **Advisory findings are yours to action.** Some automations produce findings only you can act on, like fixing a landing page. Those are marked advisory below. They recommend; they do not change. - **You can switch any automation on or off** in the app. Your assistant can see the enabled state through `list_automations`. ## All 18 at a glance | Automation | Id | Runs | Type | | --- | --- | --- | --- | | Mini Search Term Review | `search_term_review_quick` | Every 4 hours | Changes | | Deep Search Term Review | `search_term_review_deep` | Weekly | Changes | | Negative Keyword Lists Audit | `negative_keyword_list_audit` | Every 2 weeks | Changes | | Redirect Traffic | `redirect_traffic` | Monthly | Changes | | Responsive Search Ad Review | `ad_copy_test` | Monthly | Changes | | Keyword Cleanup | `keyword_cull` | Monthly | Changes | | Ad Group Cleanup | `ad_group_cull` | Monthly | Changes | | Device Performance | `device_performance` | Monthly | Changes | | Day of Week Performance | `ad_schedule_performance` | Monthly | Changes | | Bidding Strategy | `bidding_strategy` | Monthly | Changes | | Budget Reallocation | `budget_reallocation` | Monthly | Changes | | Conversion Tracking Audit | `conversion_tracking_audit` | Monthly | Advisory | | Geographic Performance | `geo_performance` | Every 6 weeks | Changes | | Ad Group Expansion | `ad_group_expansion` | Every 12 weeks | Changes | | Ad Relevance Boost | `quality_score_ad_relevance` | Every 12 weeks | Changes | | Landing Page Tune-Up | `quality_score_landing_page` | Every 12 weeks | Advisory | | Ad Assets Review | `ad_assets_review` | Every 12 weeks | Advisory | | Campaign Expansion Ideas | `campaign_expansion` | Every 4 months | Advisory | ## The frequent hygiene work ### Mini Search Term Review Id `search_term_review_quick`, runs every 4 hours. Continuously scans your incoming search terms and catches the obviously bad ones, proposing negatives so junk traffic gets blocked within hours rather than weeks. ### Deep Search Term Review Id `search_term_review_deep`, runs weekly. The thorough version of the review above. It uses up to 270 days of data to find the grey-area waste that only shows up over longer periods, terms that look plausible one click at a time but never convert. ### Negative Keyword Lists Audit Id `negative_keyword_list_audit`, runs every 2 weeks. Audits your shared negative keyword lists in the other direction: it looks for negatives that are over-blocking and proposes removing them, so good traffic is not being silently kept out. ## The monthly work ### Redirect Traffic Id `redirect_traffic`, runs monthly. Audits each campaign for cross-ad-group misdirection, meaning searches landing on the wrong ad group's ads, and proposes ad-group-level negatives that route each search to the most relevant ad group. ### Responsive Search Ad Review Id `ad_copy_test`, runs monthly. Looks at the responsive search ads in each ad group, calls a winner, pauses the weaker ad, and writes a fresh ad to test next, so every ad group keeps testing without you writing copy. ### Keyword Cleanup Id `keyword_cull`, runs monthly. Pauses keywords that are switched on but never spend, plus the single worst keyword by cost per acquisition when it is clearly underperforming. ### Ad Group Cleanup Id `ad_group_cull`, runs monthly. The same discipline one level up: pauses ad groups that are switched on but never spend, plus at most one whole ad group per run when it is clearly the worst by cost per acquisition. ### Device Performance Id `device_performance`, runs monthly. Compares performance across devices and reduces bids on your worst device by cost per acquisition, or excludes it entirely when it is clearly and persistently the worst. ### Day of Week Performance Id `ad_schedule_performance`, runs monthly. When the account is unprofitable and capped by budget, it pauses ads on the single worst day of the week so the spend shifts to your stronger days. ### Bidding Strategy Id `bidding_strategy`, runs monthly. Moves each campaign up or down the bidding ladder as its data allows (Maximize Clicks, then Maximize Conversions, then a target CPA) and nudges the CPA target toward your goal. ### Budget Reallocation Id `budget_reallocation`, runs monthly. Moves small slices of daily budget, up to 10% at a time, toward your better performing campaigns. Brand and non-brand are judged separately, and brand spend is kept within 40% of the account. ### Conversion Tracking Audit Id `conversion_tracking_audit`, runs monthly, advisory. Checks your conversion setup, fixes attribution windows and conversion counting where it safely can, and flags the tracking gaps that only you can fix, since broken tracking quietly poisons every other decision. ## The longer cycles ### Geographic Performance Id `geo_performance`, runs every 6 weeks. Excludes your single worst performing location by cost per acquisition. Usually that is a state or county, and very rarely a whole country. ### Ad Group Expansion Id `ad_group_expansion`, runs every 12 weeks. Takes one proven new search term from your data and turns it into a fresh ad group with two ads, set live, so the account keeps growing from what already works. ### Ad Relevance Boost Id `quality_score_ad_relevance`, runs every 12 weeks. Reviews your keyword Quality Scores, then splits a spending keyword with weak ad relevance into its own tightly themed ad group with two fresh ads, which is the reliable way to lift that score. ### Landing Page Tune-Up Id `quality_score_landing_page`, runs every 12 weeks, advisory. Flags spending keywords whose landing page experience is dragging down Quality Score, with specific advice for fixing each page. Atlas cannot edit your website, so this one is always yours to action. ### Ad Assets Review Id `ad_assets_review`, runs every 12 weeks, advisory. Checks your callouts, sitelinks, business name and logo. It adds more callouts and conversion focused sitelinks where you are light and sets your business name if it is blank, then flags anything only you can provide, like a missing logo. ### Campaign Expansion Ideas Id `campaign_expansion`, runs every 4 months, advisory. When you are hitting your target cost per acquisition but capped on search volume, it flags an idea for a new campaign: a new geography, a new product, or new hero keywords. Ideas only, nothing is built until you decide. ## Frequently asked questions ### Do automations spend money on their own? No automation increases your total budget. Only you set budgets, in the app or in Google Ads. The closest thing is Budget Reallocation, which shifts existing daily budget between your campaigns in small slices of up to 10% at a time, always within what you already agreed to spend. ### What does advisory mean? An advisory automation produces findings for you to act on rather than only changes Atlas can apply. Some advisory automations also make safe changes where they can, for example the Conversion Tracking Audit fixes attribution settings itself and flags the gaps only you can fix. Anything flagged is a recommendation, not a change. ### Can I change how often an automation runs? The schedules are fixed per automation, but you are not stuck waiting: you can run any automation on demand through MCP, at most once per hour per automation. You can also turn individual automations on or off in the app, and your assistant can see which are enabled. ### Do changes apply without my approval? That is your choice, and it is the approval tier setting. On manual, every change waits for you. On smart, low-risk changes apply automatically and the rest wait. On auto, changes apply automatically, still inside Atlas safety rails. You can set a different tier for any single automation. --- # SaaS Ads Studio API: Programmatic Access to Atlas > There is no traditional REST API yet. Programmatic access to Atlas runs through the Connect Atlas MCP server today, with API keys on the roadmap. Here is how to build with it now. Source: https://saasadsstudio.com/docs/api/ Published: 2026-07-19 --- If you searched for the SaaS Ads Studio API, here is the honest, complete answer. ## The straight answer **There is no traditional REST API today.** Programmatic access to SaaS Ads Studio runs through the [Connect Atlas MCP server](/docs/mcp/), and that is a deliberate choice rather than a gap. MCP (Model Context Protocol) is an open standard for letting software, especially AI assistants and agents, call tools on other systems. Our MCP server exposes Atlas as [21 documented tools](/docs/mcp/tools/) over standard Streamable HTTP with OAuth 2.1 sign-in. That is an API by any practical definition: a stable set of callable operations with typed inputs, structured JSON results and documented errors. It just speaks MCP instead of plain REST, which means every MCP-capable client and SDK already knows how to talk to it, and you never handle credentials beyond a browser sign-in. We built this interface first because it is how people actually use Atlas programmatically: through Claude, ChatGPT, Cursor and agent frameworks, not hand-rolled HTTP calls. ## What you can do programmatically today Everything below works right now, through any MCP client, for any account with an active or trialing subscription. - **Read account state and performance.** Confirm the connected account, pull a Google Ads performance summary for the last 7, 30 or 90 days, and list Atlas's automations with their enabled state. - **Review and decide on changes.** List the actions Atlas has proposed or made, inspect one in detail down to individual items, then approve or reject it, in full or item by item. - **Trigger Atlas's management.** Run any of the [18 optimisation automations](/docs/mcp/automations/) on demand, and set the approval tier that governs how changes apply, globally or per automation. - **Build a Google Ads campaign end to end.** Set budget and countries, generate and save grouped keywords, generate and save responsive search ads, then create the campaign. Campaigns are always created paused, so nothing spends until a human unpauses it. - **Generate Meta assets.** Produce audience ideas, ad copy variants and creative briefs for Facebook and Instagram. These are plans to apply yourself in Meta Ads Manager; the API never writes to your Meta account. The [tool reference](/docs/mcp/tools/) documents every tool with its parameters and errors. ## Quickstart The server URL is the same for everyone, with access controlled by OAuth sign-in: ``` https://clgrwyawpxkagaqukmqf.supabase.co/functions/v1/mcp-server ``` 1. Point any MCP client at that URL as a remote Streamable HTTP server. The [setup guide](/docs/mcp/) has exact steps for Claude, Claude Code, ChatGPT and Cursor. 2. Complete the browser sign-in with your SaaS Ads Studio account the first time a tool runs. 3. Call `whoami` to confirm the connection, then use any of the 21 tools. From an agent framework or script, use your language's MCP SDK, connect to the same URL, and complete the one-time OAuth approval in a browser. Your MCP client manages tokens after that. ## On the roadmap **API keys for headless access** are on the roadmap: long-lived keys your servers can use without a browser sign-in, for scheduled jobs and backend integrations. We are not publishing dates or the final shape yet, and nothing on this page depends on them. If API keys, webhooks or a plain REST surface would unlock something for you, tell us through the app. Real requests directly shape the order we build in. ## Frequently asked questions ### Is there a REST API? Not today. The Connect Atlas MCP server is the programmatic surface for SaaS Ads Studio. It is a real API in every practical sense, a documented set of 21 callable tools over standard Streamable HTTP with OAuth, but it speaks MCP rather than plain REST. ### Can I get an API key today? No. Authentication is OAuth only for now: your client signs in as you, with a browser approval the first time. API keys for headless server-to-server access are on the roadmap. If you need them, tell us, since real demand moves roadmap items up. ### Can I use this from a script or an agent framework? Yes. Any MCP SDK or agent framework that supports remote Streamable HTTP servers can call Connect Atlas. The one constraint is the first connection: OAuth needs a browser sign-in to approve access, and tokens are managed by your MCP client from then on. ### Are there webhooks or a Zapier integration? Not today. If you want to react to Atlas activity, the current pattern is to poll the recent-actions tool from your agent or script. Tell us what you would automate, it directly shapes what we build next.