> For the complete documentation index, see [llms.txt](https://docs.moleculedata.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moleculedata.com/mcp/what-your-ai-app-can-do.md).

# What your AI app can do

Everything an AI app can read and change in Molecule over MCP, what each level needs, and what it never does.

Your AI app sees one company: the one you picked when it signed in. What it can do depends on the three levels in [Molecule MCP](/mcp.md): **read**, **make changes** and **change ad spend**. The tool names are what your app shows when it uses each one.

## Read

Every connection can read.

| What                                                                                                                                                                                                | Tool                                                                |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| Sales, spend, ROAS, CAC, AOV, LTV, retention and stock, by channel, campaign, country or product (Molecule attribution)                                                                             | `run_cube_query`, `get_data_schema`                                 |
| Compare two periods, and find what drove a change                                                                                                                                                   | `compare_periods`, `decompose_change`                               |
| Today's live spend and sales per platform                                                                                                                                                           | `get_live_today`                                                    |
| Live Meta detail down to ad, placement and audience                                                                                                                                                 | `get_meta_drilldown`                                                |
| Live Google detail down to keyword and search term: every keyword and search term Google reports (up to 10,000 per ad account), and only those that spent at least an amount, or had no conversions | `get_google_drilldown`                                              |
| What is on, off or not delivering on Meta, Google Ads and TikTok, with budgets                                                                                                                      | `get_ad_objects`                                                    |
| Which ad platforms and Shopify are connected                                                                                                                                                        | `get_connection_status`                                             |
| Ads on Meta, Google Ads and TikTok with each platform's own numbers (up to 90 days), and one ad in full: where it sits, its texts, links and tracking, and the ad it was copied from                | `search_creatives`, `get_ad_detail`                                 |
| Insight cards                                                                                                                                                                                       | `list_insights`                                                     |
| GA4 sessions                                                                                                                                                                                        | `get_ga4_sessions`                                                  |
| Tracked competitors and their ads                                                                                                                                                                   | `list_competitors`, `get_competitor_ads`, `get_competitor_activity` |
| Your team's dashboards (definitions, not numbers)                                                                                                                                                   | `get_dashboards`                                                    |
| The LaunchPad creative library (all of it, or only what was uploaded since a given time) and launches                                                                                               | `list_creatives`, `get_launches`                                    |
| What Fritz (Autopilot) recommends, when Autopilot is on                                                                                                                                             | `get_autopilot_summary`                                             |
| Ads with missing or wrong UTM tracking (admins only)                                                                                                                                                | `get_utm_summary`                                                   |

The drill-downs and the ads' numbers are each platform's own reporting, not Molecule attribution.

### Reads that come with changes

When your plan includes changes over MCP, every connection also gets these reads. The changes below use them.

| What                                                                      | Tool                                                                 | Needs             |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------- | ----------------- |
| A link to upload your own images and videos to the LaunchPad library      | `creative_upload_link`                                               |                   |
| Look up accounts, pages, pixels, audiences and more for LaunchPad         | `launchpad_lookup`                                                   |                   |
| LaunchPad drafts, with their new campaigns, ad sets and copies            | `get_launch_drafts`                                                  |                   |
| Live budgets on Meta, Google, TikTok, Snapchat, Pinterest and ChatGPT Ads | `get_channel_budgets`                                                |                   |
| See where a change stands                                                 | `get_change_status`                                                  |                   |
| Budget cards                                                              | `get_budget_cards`                                                   | Budget management |
| Your BuilderPad brand kit, projects and banner runs                       | `get_builderpad_brand`, `list_builderpad_projects`, `get_banner_run` | BuilderPad        |
| One Autopilot job                                                         | `get_autopilot_job`                                                  | Autopilot         |

### Your own images and videos

Images and videos you show your AI app in the chat can't reach Molecule. To use your own files in ads, ask your app for an upload link (`creative_upload_link`). Open it and upload the files to the LaunchPad library, signed in to Molecule as yourself. Your app then finds them with `list_creatives` and can put them in a LaunchPad draft. The answer also says how much room your library has left.

## Make changes

For admins, when your plan includes changes over MCP. Nothing here starts spending on its own.

| What                                                                                                   | Tool                                                                                                                                   | Needs                          |
| ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Save a LaunchPad draft of ads (up to 20 ads)                                                           | `save_launch_draft`                                                                                                                    |                                |
| Plan a new campaign with its ad set in a draft (Meta, Google Ads, TikTok)                              | `create_campaign`                                                                                                                      |                                |
| Plan a new ad set in a draft (Meta, TikTok), or a new Google Search ad group with its keywords         | `create_ad_set`                                                                                                                        |                                |
| Plan a copy of an ad set or ad group, without ads (Meta, Google Ads, TikTok)                           | `duplicate_ad_set`                                                                                                                     |                                |
| Plan copies of existing ads into an ad set or ad group (Meta, Google Ads, TikTok)                      | `copy_ads`                                                                                                                             |                                |
| Change one part of a draft: rename it, plan a new item again or remove it, change its ads              | `update_launch_draft`                                                                                                                  |                                |
| Cancel a LaunchPad launch (your own, or one an AI app made)                                            | `cancel_launch`                                                                                                                        |                                |
| Add 1 to 200 negative keywords to a Google Search ad group, or to a Search or Performance Max campaign | `add_negative_keywords`                                                                                                                | Your yes                       |
| Add Molecule's UTM tracking to a Google Ads ad, ad group or campaign                                   | `add_utm_parameters`                                                                                                                   | Your yes                       |
| Save a dashboard chart                                                                                 | `save_dashboard_chart`                                                                                                                 |                                |
| Add a tracked competitor                                                                               | `add_competitor`                                                                                                                       |                                |
| Mark an insight card                                                                                   | `update_insight`                                                                                                                       |                                |
| Draft a budget change or a move; reject or snooze a card                                               | `draft_budget_card`, `draft_budget_move`, `reject_budget_card`, `snooze_budget_card`                                                   | Budget management              |
| Make banners and send them to LaunchPad                                                                | `make_banners`, `send_banners_to_launchpad`                                                                                            | BuilderPad; uses image credits |
| Draft, make, edit, place or skip Autopilot ads                                                         | `draft_autopilot_job`, `make_autopilot_job`, `edit_autopilot_job`, `retry_autopilot_make`, `place_autopilot_job`, `skip_autopilot_job` | Autopilot; uses image credits  |

**Your yes:** negative keywords and UTM tracking change live objects on Google Ads, so each takes two steps. Your app shows you exactly what it adds, and makes the change only after your yes. See [Approvals and limits](/mcp/approvals-and-limits.md).

### Everything new waits in a LaunchPad draft

`create_campaign`, `create_ad_set`, `duplicate_ad_set` and `copy_ads` create nothing on the ad platform. Each adds a planned item to a LaunchPad draft, and your app gives you the draft's link. Your app can start a new draft or add to one, and change it with `update_launch_draft`.

Nothing is made until the draft is launched:

* by you, in LaunchPad;
* or by your app with `publish_launch_draft`, if it can change ad spend, after your yes.

At launch, new campaigns, ad sets and ad groups are made paused, so nothing spends until someone turns them on. A draft holds up to 20 ads, copies included. The new campaigns and ad sets one call plans have a daily budget of at most 500 in the ad account's currency, in all. A copy of an ad set keeps its original's budget.

Before your app publishes a draft, its summary shows every new item (budget, bidding, where it runs, audience, keywords), every new ad, and how many land in active ad sets, ad groups or campaigns, where they start spending. Some drafts can only be launched in LaunchPad, for example when a new item is over an AI app's limits or Molecule can't count what an ad would start. Molecule says why.

New Meta ads from an AI app post as LaunchPad's default Facebook page and Instagram account, which you set in LaunchPad. Until Meta is set up in LaunchPad (the ad account connected in Integrations, Meta connected in LaunchPad, and a default page), your app lists the steps left.

### Copying ads

`copy_ads` adds copies of existing ads to a draft, for example to give a few ads their own ad set and budget. They go into an ad set or ad group of the same ad account, or a new one planned in the draft. The originals keep running, and your app says whether each copy starts on or off.

* **Meta:** into an ad set whose campaign has the same objective. Each copy runs the original ad's creative, so it keeps the post with its likes and comments, its texts, its link and its UTM parameters.
* **Google Ads:** each copy is a new ad with the same texts, images, videos and links, and Google reviews it. A responsive search ad goes only into a Search ad group, a responsive display ad into a Display ad group, and a Demand Gen ad into a Demand Gen ad group. Expanded text, video and call ads can't be copied.
* **TikTok:** a copy runs the same TikTok post when the original has one, so it keeps its likes and comments. A manual ad goes only into a manual ad group, and a Smart+ ad into a Smart+ one.

The platform reviews each copy before it spends, and it learns again in its new ad set. A copy made on in an active ad set can start spending that ad set's budget once the draft is launched. A typical move: `duplicate_ad_set`, then `copy_ads` into the planned copy, then launch the draft; then `set_budget` on the new ad set and `set_ad_status` to turn it on.

## Change ad spend

For admins, when your plan includes ad-spend changes over MCP. These changes also need Budget management on your plan. Every one takes two steps and your yes: see [Approvals and limits](/mcp/approvals-and-limits.md).

| What                                                                                                                          | Tool                                                                                               |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| Turn one campaign, ad set or ad on or off; on Google also a keyword or asset group                                            | `set_ad_status`                                                                                    |
| Turn up to 500 campaigns, ad sets, ads, Google keywords or asset groups on or off in one change (Google Ads, Meta and TikTok) | `set_ad_statuses`                                                                                  |
| Raise or cut a daily budget                                                                                                   | `set_budget`                                                                                       |
| Add 1 to 49 keywords to an existing Google Search ad group, on or off                                                         | `add_keywords`                                                                                     |
| Apply a budget card                                                                                                           | `apply_budget_card`                                                                                |
| Publish a LaunchPad draft                                                                                                     | `publish_launch_draft`                                                                             |
| Upload Autopilot ads, undo, retry an upload, resume an account                                                                | `upload_autopilot_job`, `undo_autopilot_job`, `retry_autopilot_upload`, `resume_autopilot_account` |

`set_ad_status` and `set_budget` work on Meta, Google, TikTok, Snapchat, Pinterest and ChatGPT Ads, on your company's own ad accounts. Only daily budgets can be changed: not lifetime budgets, Google shared budgets, or budgets of Meta ad accounts in a currency without cents, such as JPY.

## What an AI app never does

* Change anything live on an ad platform without your yes: changes to ad spend, negative keywords and UTM tracking take two steps, and new campaigns, ad sets and copies of ads wait in a draft until it is launched.
* Create a campaign, ad set or ad group that starts spending: new ones are made paused.
* Change anything in Criteo.
* Pause the last delivering Meta ad, or the last enabled Google keyword, ad, ad group or asset group, where that would stop it, or turn all of them off together in one list.
* Copy an ad into an ad set that already runs it.
* Reject or snooze a budget card that cuts or pauses (the stop-loss stays in your hands).
* Let Autopilot upload an ad it touched on its own: a person uploads it.
* Teach Fritz, read Fritz's memory or confirm prices.
* Switch company, or see another company's data.
* Follow instructions written inside your data, such as the text of a competitor's ad.

## Where its changes show

Every change is recorded as **"{member} via {app}"**, for example *"Anna via Claude Code"*:

* **Agent activity** on the MCP page lists every change an AI app made, including those inside Molecule. See [Managing connections](/mcp/managing-connections.md).
* Changes on the ad platforms also go into Molecule's change history, which the change cards in the [Control Room](https://docs.moleculedata.com/dashboards/insights) are built from. An ad, ad set or campaign Molecule creates shows there once, and a copied ad also says which ad it was copied from.
* LaunchPad's **Drafts** page shows a draft an AI app made as **"{member} via {app}"** under **Made by**.
