Tempio

Claude Code

Claude Code, working on TikTok ad accounts

One command connects the workspace, the structure read answers before anything is drafted, and every change waits at the gate with its before-state on the row.

Point your MCP client at your workspace for 68 scoped tools, with separate keys to read, draft and approve.

Illustrative exchange

Change the schedule on this campaign.
TEMPIO READ
There is no campaign-level schedule on this platform to change. Schedule and targeting are ad-group concepts here, so the structure beneath the campaign comes back first and the change is a set of ad-group edits rather than one campaign edit. The tool layer refuses the campaign-level version instead of choosing an ad group for you.

Illustrative exchange

How did the last ninety days go on this account?
TEMPIO READ
Coverage and totals for the range, with the last twenty-eight days against the twenty-eight before them. Daily insights arrive thirty days at a time on this platform, so a ninety-day question is three requests behind the scenes; today's figures are marked partial rather than presented as final, and the answer carries the day it was read.

Illustrative exchange

Lower the budget on the ad group that is not converting.
TEMPIO DRAFT
First the connection answers whether that ad group owns its budget at all, because a campaign-level budget setting takes it away from the ad groups beneath it. If it does, the change is written with the current amount beside the new one, and it is a draft that awaits approval — yours, or a rule you wrote.

Connecting it

  1. 01

    Mint a key with read and draft

    In the app, open Settings and then MCP. Mint a key with reading and drafting, and leave approving off unless you mean the agent to apply changes itself. The key is shown once, hashed at rest, revocable, and scoped to one workspace.

  2. 02

    Add the server to the client

    One command, over streamable HTTP, with the key in an Authorization header.

  3. 03

    Connect the ad accounts

    In the app, connect the platform and choose the ad accounts the workspace may see. The grant lives in the workspace rather than in the client, so the agent never holds a platform credential of its own.

  4. 04

    Read the connection before drafting

    Ask for the connections first. Each names the operations this platform can express, the levels a budget attaches to, the objectives it accepts, what a removal means here, and whether a draft can be dry-run before it is applied. An operation absent from that list cannot be drafted at all.

  5. 05

    Ask for the account brief

    Ninety days of context per connected account before any change is discussed: totals, a twenty-eight day comparison, objective mix, spend concentration, and the return and cost-per-acquisition rankings inside one currency.

Objections, answered

  • The agent should just set the schedule at the campaign level.

    There is nothing there to set. Schedule and targeting live on the ad group on this platform, and a tool layer that quietly picked an ad group to apply a campaign-level instruction to would be inventing an answer. It refuses, says why, and returns the structure so the real change can be drafted against the right rows.

  • The agent will assume this platform works like the others.

    It will, until it reads the structure, which is why that read is the step before drafting rather than after a refusal. Where it assumes wrongly the tool layer refuses and says what the platform can express, instead of choosing a level on its behalf.

  • Why not just change it at the campaign level like everywhere else?

    Because there is no campaign-level schedule or targeting on this platform to change. The tool layer refuses the campaign-level instruction and returns the structure instead of picking an ad group on your behalf, which is the difference between a tool that says what is true and a tool that guesses.

See the gate on your own accounts

Every change is written as a draft and held at the gate. Publishing to live accounts is in private beta.

Request early access

What this pairing covers

One client and one platform, end to end: what the connection gives a terminal agent here, what to run first, and what happens to a change between the prompt and the account.

This is the platform where reading the structure first is not a nicety. The three levels have familiar names and behave differently underneath — the schedule is one level down, targeting is not a campaign concept at all, and whether a budget is the ad group's to change depends on a setting made when the campaign was created. A terminal agent asked to make a change in one line will otherwise propose the change that exists on other platforms and does not exist on this one.

The setup

The server is one Model Context Protocol endpoint over streamable HTTP, authenticated with a key you mint in the app under Settings and then MCP. Add it in a line:

claude mcp add --transport http tempio https://app.tempio.ai/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"

The key's scopes decide what the session sees. Reading covers connections, ad accounts, campaigns, structure, media assets, metrics, drafts and media plans. Drafting writes change requests and reaches no live account. Approving is opt-in at the moment the key is minted, and most workspaces do not grant it to an agent. Scopes are enforced on the call rather than by hiding it: a capability whose scope the key does not hold answers by naming the scope it needs and the scopes the key holds. What the tool list inside the session shows is the surface chosen at the mint — compact registers two tools, one that describes the catalogue and one that runs it; explicit registers each capability as a tool of its own.

A terminal agent has one habit worth naming: it keeps whatever it was given in the session it was given it in. The key belongs in the header of that command and nowhere near a file under version control, and revoking it is done in the app rather than by editing anything here. The client page covers the configuration; this page covers the platform.

What to run first in the session on this platform: the structure, because whether an ad group owns its budget is decided by how its campaign was created rather than by the platform.

What the agent reads on this platform

Start with the account brief: ninety days per connected ad account, coverage, totals, the last twenty-eight days against the twenty-eight before them, objective mix, spend concentration, the rankings inside one account and one currency, and the weekday rhythm.

Then the tree, and this is the platform where reading it first matters most. The three levels have the names they have elsewhere and behave differently underneath. Schedule and targeting are ad-group concepts here — there is no campaign-level schedule to set and no campaign-level targeting to change — so an instruction that would be a one-line campaign edit elsewhere is a set of ad-group edits on this one. The tool layer refuses the campaign-level version outright instead of picking an ad group on your behalf.

The media library is worth a read before any creative work. Each asset comes back with the id the platform holds those bytes under, so a creative references an upload that already exists rather than sending the same file twice.

One limit shapes every long question asked here. Daily insights come back thirty days at a time — a hard limit on the platform rather than a preference — so a ninety-day question is three requests and the sync plans it that way. Today's figures are fetched and marked partial rather than presented as final, and a trailing fortnight is refetched on every sync to absorb the platform's own restatements.

What a change looks like here

Three facts decide what can be drafted here, and the connection reports all three.

Money can sit at the campaign or at the ad group, and which one is writable is a fact about the campaign rather than about the platform: when campaign budget optimisation owns the money, the ad groups beneath it do not. The connection reports both levels as writable somewhere on this platform; the entity in front of you decides which, and a draft aimed at the wrong one is refused rather than quietly applied to the other.

There is no dry run. A draft is checked against the platform's declared capabilities and the account's own shape when it is written, and the platform's verdict arrives when the change is applied, which is another reason to read the structure before proposing a batch against it.

A removal is terminal. There is no archive state here: the third status value is a delete and it cannot be undone. That makes a reversible status change the instruction of choice and a removal something no rule should clear on its own.

After approval

Approving is not deploying. A creative enters the platform's review queue when the change lands, on the platform's schedule, and a change can be applied, verified as landed, and still not be delivering an hour later.

The reporting window shapes what can honestly be said afterwards. With insights arriving thirty days at a time and today marked partial, a same-day verdict on a change is not available, and an agent that offers one is offering a guess. What is available is the change on the record with the state before it, and the numbers as at the day they were read. Pacing runs against the budget and schedule on the level that holds them from the moment an edit lands, which on this platform means the level that actually owns the money for that campaign.

Applying a cleared change to a live account on this platform is in private beta. Everything before it is built and in use: the reads, the numbers, the media plan a flight is shaped in, and the gate every change waits at — approved by you, or by a rule you wrote.

Also available

Questions

Put frontier AI to work on every ad account you run.

Tempio connects your ad accounts into one workspace and hands your own AI the numbers and the tools. Every change it writes is a draft until you approve it, or until a rule you wrote does.

Request early access
  • Read and draft by default. Approve is a separate permission you grant.