MCP App Store
by KeenEthics
Business & Operations
Koast icon

Koast

by Reign Technologies Inc.

Overview

Koast connects your assistant to your own Meta ad accounts, so it can read real performance and make real changes instead of guessing. Ask how ad sets performed, which ads stopped delivering and why, where budget is pacing off, or which creatives are fatiguing. Build a campaign from a structure template, move a batch through your pipeline, adjust budgets, and prepare a launch for sign-off. On clients that support interactive views, results come back as a readable panel -- a campaign tree, a metrics table, a delivery triage -- rather than a wall of JSON. What your assistant can see and do is filtered on every request: by the permission you granted the connection, by your role on the team, by your plan, and by what the brand's ad provider supports. A read-only connection sees 33 tools; a full read, write and publish connection sees the whole surface. Publishing is a separate permission again, and the publishing tools stay hidden until you set a spend ceiling on the connection -- so an assistant can draft an entire launch and still not be able to push it live. The same tools are also available as a command line client, so the assistant, the CLI and Koast's own agent cannot drift apart.

Tools

add-ads

ChatGPT
Create one or many ads under ad sets. Pass an ads: [...] array — each entry targets its own adsetNodeId and may attach creativeId and/or copyGenerationId in the same call, avoiding follow-up update-node. Unknown adsetIds return in notFound, per-ad create errors in failed; the rest are created (partial success is fine). When the user provided explicit per-ad names in their message, pass each literal name verbatim per ads[].name — naming convention applies only when the user did not specify names.

add-adset

ChatGPT
Add a new ad set to a campaign — and optionally apply targeting/budget/schedule/goal settings AT CREATE time via the settings map (dot-notation paths, same shape as update-settings). The response reports appliedSettings (paths whose stored value matches the request) and notApplied (paths that did NOT land — e.g. invalid value, schema mismatch, or coupling guard). NEVER confirm a setting to the user unless it appears in appliedSettings.

add-campaign

ChatGPT
Add a new campaign node to the campaign tree. Each batch holds AT MOST ONE campaign — if one already exists in this launch, the tool will refuse. Use only when the user is explicitly creating the first campaign in a fresh batch. Canonical objective values are 'website-conversions' | 'lead-form' | 'traffic' — Meta's internal enums (OUTCOME_SALES, OUTCOME_LEADS, OUTCOME_TRAFFIC, etc.) are NOT accepted. If the user provided an explicit name in their message ('called X', 'named Y', 'name it Z'), pass that literal string as name — do NOT modify it to match the brand's naming convention. The naming convention is the DEFAULT pattern when the user did NOT specify a name; it is never an override of explicit user intent.

apply-snapshot-template

ChatGPT
Apply a saved CAMPAIGN-SNAPSHOT template to the current campaign launch. It copies the snapshot's CAMPAIGN SETTINGS onto the campaign(s) already in the launch — it does not create ad sets or ads, and it refuses on a launch that has no campaign yet. For rule-based structure templates that do build ad sets and ads, use applyStructureTemplate instead.

apply-structure-template

ChatGPT
Apply a structure template to a pipeline card — POPULATES the card (an existing PENDING draft batch) with the template's campaign/ad set/ad structure. Never creates a launch and never publishes. Re-applying an already-populated card needs overwrite=true (hard overwrite — confirm with the user first). WRITE.

attach-lead-form

ChatGPT
Attach a Meta instant lead form to a lead-generation ad set so the campaign can launch. Turns on instant forms and sets the chosen form on the ad set's campaign, which owns the lead form for all of its ad sets. Get the leadFormId from list-lead-forms(never invent one). Works on DRAFT ad sets — a live ad set returns a 409 (live entities are edited in Meta Ads Manager). Use this instead of telling the user to attach the form themselves.

author-structure-template

ChatGPT
Create a new structure template from an engine StructureState you constructed for the user. Validates the rules against the engine before saving and requires at least one audience. Use after translating the user's natural-language description into a representable StructureState (validate it first). WRITE.

clone-live-campaign

ChatGPT
Clone a live campaign into one or more fresh Koast batches as editable DRAFTS — a full deep-copy of the campaign tree (ad sets, ads, copy, re-imported creatives) with all ad-platform IDs stripped, so each clone is a brand-new launchable draft. This is the correct path for "make a new campaign just like this one / keep everything the same / launch this N more times": clone first, then vary copy or settings on the cloned DRAFT ads (no live-edit needed). Because each batch holds AT MOST ONE campaign, N clones create N separate batches — pass count. Pass the campaign id on the ad platform (from list-account-campaigns), NOT a Koast nodeId. Use this instead of rebuilding from scratch (which drags in stale account defaults) and instead of duplicate-node (which can't duplicate a whole campaign).

compute-creative-fatigue

ChatGPT
Canonical deterministic creative fatigue score for a single ad (or aggregated set) on a campaign launch. The daily series is fetched server-side from the ad platform's live insights — you Do NOT pass it. Pass adId to score one ad; omit to score the whole launch at the chosen level. It is the source for fatigue, creative decline and refresh candidates. Do NOT use get-campaign-tree or other metrics tools for fatigue — this is the canonical fatigue signal.

configure-pipeline-column

ChatGPT
Configure a fixed system column's SETTINGS: rename it, hide/show it, and/or bind a structure template to auto-apply on card entry. Org-admin only. Cannot create or delete columns. WRITE. Get the columnId from list-pipeline-columns first.

create-campaign-launch

ChatGPT
Create an empty campaign launch (batch) under a specific brand/ad account. Returns the new launch id. Use this WHEN the user explicitly asks to create a new batch / launch / campaign group AND you already know which brand to use (from list-my-ad-accounts, then whichever row the user picks). NEVER guess brandId. After creation, surface the new id to the user and immediately switch context to that launch for any follow-up structure work (add-campaign, add-adset, etc.).

create-notification

ChatGPT
Create a notification in the user's Home inbox — a sign-off request, a to-do, or a deferred-work item. Use SIGN_OFF when you have prepared a workflow execution that needs the user's approval before it runs: pass its workflowExecutionId, and approving the notification RUNS that execution. Use TODO for a task you want the user to remember, and DEFERRED for work you have parked for later. NEVER pass brandId/organizationId — the notification is scoped automatically to the current account context. The notification lands PENDING in the user's queue.

create-pipeline-ticket

ChatGPT
Create a new pipeline card (ticket/batch) on the board. WRITE. Optionally set the starting stage, attach creatives, and assign teammates.

delete-automation

ChatGPT
Permanently delete a monitoring automation by automationId. WRITE — destructive.

delete-batch

ChatGPT
Permanently delete a Koast batch (campaign launch) or pipeline card, together with the campaigns, ad sets and ads it holds in the Koast tree. A pipeline card IS a batch, so this removes either. This does NOT touch anything on the ad platform: already-published campaigns keep running and keep spending — pause them with update-node first if that is the intent. Irreversible. WRITE — destructive.

delete-snapshot-template

ChatGPT
Delete a saved CAMPAIGN-SNAPSHOT template. This cannot be undone. Does not affect structure templates.

delete-structure-template

ChatGPT
Permanently delete a saved STRUCTURE template by templateId. Cards already populated from it are not affected. Irreversible. WRITE — destructive.

delete-workflow

ChatGPT
Permanently delete a workflow by workflowId. WRITE — destructive.

distribute-creative

ChatGPT
Distribute a single creative across multiple ad sets or campaigns. Either creates a new ad per target (newAdPerTarget) or replaces the first existing ad (replaceFirstAd).

duplicate-and-vary

ChatGPT
Duplicate a campaign/ad set/ad N times, varying ONE specific settings path across the copies. vary.path is a dotted path into the settings schema — call get-settings-schema first to confirm the path is valid. Common paths: 'targeting.ageRange', 'targeting.locations', 'targeting.interests', 'optimization.bidAmount', 'optimization.bidStrategy', 'budget.dailyAmount', 'budget.lifetimeAmount'. vary.values must be the list of variant values (one per copy, length must equal count).

duplicate-node

ChatGPT
Duplicate an ad set or ad, including all its settings and children. Supports batch duplication with count parameter — use count instead of calling this tool multiple times.

edit-structure-template-rules

ChatGPT
Update an existing structure template's rules/audiences/settings. Pass the full new StructureState in config (validated before save). Omit templateId to edit the template open in the builder. WRITE.

generate-copy

ChatGPT
Generate ad copy (headlines, primary text, descriptions) and store it as a copyGenerationId. The id is what the user later approves and attaches via update-node — generation alone does not change any ad. Brand context (name, URL, business type, voice) is auto-loaded server-side — never ask the user for any of that.

get-account-naming-convention

ChatGPT
Configured naming convention templates for an account (campaign/adset/ad). It is the source for how campaigns, ad sets and ads in that account are named. Pass accountId explicitly when account scope was resolved via list-my-ad-accounts (multi-account / all-accounts dashboard); omit only when a single account is already locked-in by the dashboard context. Do NOT infer the convention from campaign/adset/ad names in get-campaign-tree — the real convention lives here and may differ from historical names.

get-account-overview

ChatGPT
Roll up spend and results across the Koast batches on an ad account — NOT the whole ad account: campaigns that were never launched through Koast are not counted, and at most 10 batches are sampled (the payload reports batchesSampled). For a true account-wide figure, or for campaigns launched outside Koast, use list-account-campaigns. Pass accountId explicitly when account scope was resolved via list-my-ad-accounts (multi-account / all-accounts dashboard); omit only when a single account is already locked-in by the dashboard context.

get-ad-account-request

ChatGPT
Reads one ad account request by its id or its Koast reference (KST-…): its status, the six-stage timeline with when each stage was reached, the ad accounts it produced and every top-up.

get-ad-delivery-status

ChatGPT
Check ad review and delivery status on the ad platform for the current campaign launch. Surfaces disapprovals, limited delivery, and ads still in review — the silent killers of delivery. One call covers all three levels at once: issues holds one entry per ad that has a review or delivery problem (ads with none are absent), and adsetStatuses and campaignStatuses hold the status of every live ad set and campaign. There is no level parameter — review issues only ever attach at the ad level on the platform.

get-ad-details

ChatGPT
Full ad details: creative, copy, links, CTA, tracking. Use when the user asks about a specific ad.

get-adset-details

ChatGPT
Full adset details: settings, targeting, budget, schedule, placements, optimization, assets, links. Use when the user asks about a specific adset by ID, name, or 'this ad set'. Do NOT use get-campaign-tree for adset details — it returns only names and IDs.

get-automation

ChatGPT
Get one monitoring automation (rules + actions + frequency + scope) by automationId. Read-only.

get-available-options

ChatGPT
Look up available options for any asset or targeting type. Use this when the user wants to select a pixel, facebook page, audience, interest, location, or conversion event. Types: pixels, facebookPages, instagramAccounts, audiences, interests, locations, conversionEvents.

get-campaign-tree

ChatGPT
Returns the Koast-tracked campaign STRUCTURE (campaign → adset → ad tree with IDs and names only) for a given campaign launch. Use ONLY to discover IDs or verify what's in Koast. Do NOT use for: ad/adset details (use get-adset-details / get-ad-details), campaigns not yet in Koast (use list-account-campaigns), naming conventions (use get-account-naming-convention), or creative fatigue (use compute-creative-fatigue). Does NOT include settings, metrics, or creative data. campaignLaunchId is required on every call.

get-copy

ChatGPT
Get a previously generated copy by its ID. Shows headlines, primary text, descriptions, and variations.

get-insights-daily

ChatGPT
Fetch daily-breakdown insights (time_increment=1) for the current campaign launch at campaign/adset/ad level. Returns ONE ROW PER DAY, not one row per entity: level chooses which entities are read, then every entity for a date is added together, and entities on each day says how many were. There are no per-entity ids in the response, so do NOT report a day as belonging to a single ad. reach is null whenever entities > 1, because reach counts unique people and cannot be summed across entities. Each day carries spend, impressions, clicks, reach, entities, frequency, hook_rate, hold_rate, results, resultActionType, cpa (cost per result), ctr, cpm.

get-metrics

ChatGPT
Get performance metrics at campaign / adset / ad level for the current launch. Pass level to scope the request; optionally pass id to scope to a specific entity or omit for all. Returns impressions, clicks, spend, CTR, CPC, conversions and per-level collections.

get-settings

ChatGPT
Get current settings (budget, targeting, schedule, placements, optimization) for one or MANY nodes. To read several nodes, pass them all in nodes in a SINGLE call — do NOT call this tool once per node. One call with nodes: [{nodeId, nodeType}, …] returns every node's settings at once and is dramatically faster than repeated single-node calls. Use nodeId+nodeType only for a single node.

get-settings-schema

ChatGPT
Get the configurable settings for a given section and node type. Returns setting paths, types, valid values, and example update payloads. Use this BEFORE updating settings to know the exact format. Every path is owned by one level (campaign, ad set or ad) and is written on that level only: nothing cascades, so a value meant for every ad set is written to each ad set. Sections: budget, targeting, schedule, placements, optimization, links, assets, conversion, enhancements, naming, adCategory, leadForm, shop.

get-structure-template

ChatGPT
Get one structure template (config + settings + audiences + accounts) by templateId. Omit templateId to read the template open in the builder (Current Context). Read-only.

get-structure-template-rules

ChatGPT
Return a human-readable summary of a structure template's engine rules (creative count, ad sets, placement/split, custom-rule flags, ops) and the distribution it will produce (sets x creatives). Use this to explain what a template does before applying. Read-only.

get-targeting-options

ChatGPT
Get available targeting options including audiences, locations, demographics, interests, and behaviors. Use this to help users configure targeting.

get-team-activity-log

ChatGPT
Fetch the team activity log — who changed what and when — for an account or brand. Use for Team Report workflow. Pass accountId explicitly when account scope was resolved via list-my-ad-accounts (multi-account / all-accounts dashboard). brandId is also accepted when only the brand is known (e.g. legacy locked-in callers). Omit both only when a single brand is already locked-in by the dashboard context.

get-workflow

ChatGPT
Get one workflow (spec + nodes + trigger + status) by workflowId. Read-only.

get-workflow-execution

ChatGPT
Get the status and per-node results of a single workflow execution. Read-only.

import-campaigns

ChatGPT
Import existing campaigns from the ad platform into the current campaign launch. Pulls campaign structure including ad sets and ads. Pass sourceAdAccountId to pull from a DIFFERENT ad account than the batch's own — resolve that account with list-my-ad-accounts, list its campaigns with list-account-campaigns({ accountId }), then import the chosen ids. The import runs in the BACKGROUND — large campaigns may still be syncing when this tool returns; in that case it reports "still importing", which is NOT a failure.

import-live-campaign

ChatGPT
Import a live campaign (one that exists in the ad account on the ad platform but NOT yet in Koast) into a Koast batch, so it becomes both reportable AND extendable. Idempotent — if a Koast batch already wraps this providerCampaignId, returns its campaignLaunchId and alreadyExisted: true instead of duplicating. For metrics, fatigue or details on a campaign from list-account-campaigns that has no Koast batch yet, call this FIRST to obtain a campaignLaunchId, then run normal launch-scoped reporting tools against it. THIS IS ALSO HOW YOU ADD TO A LIVE CAMPAIGN: import it, then add-adset / add-ads against the returned campaignLaunchId and launch-campaign, and the new ad sets and ads are published INTO the existing campaign rather than into a new one. Never tell a user that adding an ad set to a live campaign has to be done in the ad platform's own manager — it does not.

list-account-campaigns

ChatGPT
Lists ALL campaigns in the brand's ad account on its ad platform, including those NOT imported to Koast. It is the source for what exists in the ad account itself, as opposed to what Koast tracks. Do NOT use get-campaign-tree — that returns only Koast-tracked data. Pass accountId explicitly when account scope was resolved via list-my-ad-accounts (multi-account / all-accounts dashboard); omit only when a single account is already locked-in by the dashboard context.

list-ad-account-requests

ChatGPT
Lists the organization's requests for new Meta ad accounts made through Koast: each request's status and stage, the ad accounts it produced with their act ids, and the funds added to them.

list-automations

ChatGPT
List monitoring automations (rule-based per-brand watchers that run actions like pause/notify on live campaigns). Read-only. Optionally filter by brandId and status.

list-brands

ChatGPT
Lists the brands this connection can work on, with each brand's ad provider and which brand is active. Most tools operate on the active brand; templates, workflows and pipeline columns are shared across the whole organisation.

list-creatives

ChatGPT
Browse the active brand's creative library — the images and videos available to put in ads. Returns a creativeId for each, which is the id add-ads, distribute-creative and swap-creatives take. Newest first; filter with search and kind, or pass creativeIds to look up an explicit set. Read-only: listing changes nothing. To add a creative that is not here yet, use upload-creative.

list-koast-batches

ChatGPT
List Koast batches (campaign launches) — these are the user's drafts and in-progress launches stored in the Koast DB, separate from live campaigns on the ad platform. It is the source for the user's work in Koast, not for what runs on the ad platform. Pass accountId to scope to one ad account; otherwise uses the current page/account context. Status filter accepts: PENDING, RUNNING, COMPLETED, COMPLETED_WITH_ISSUES, ACTION_REQUIRED, FAILED, CANCELLED. Read-only.

list-lead-forms

ChatGPT
List the instant lead forms that already exist on a Page, so you can attach one to a lead-generation ad set. Pass the Page id (pageId) — read it from the ad set's assets.facebookPage.id via get-settings, or from get-available-options. Returns { id, name } per form. Use this BEFORE attach-lead-form whenever a lead-form campaign needs a form and the user hasn't given an exact id — never tell the user to go create one on the ad platform without first listing what they already have.

list-my-ad-accounts

ChatGPT
Real list of ad accounts the current user can access (one per brand). It is the source for which ad account to act on when the user has not named one, typically on the all-accounts dashboard, or when a named account cannot be matched. NEVER invent account names; always call this first and then ask the user to choose from the real options it returns. Read-only. Output is keyed by brandId; connected: false means the brand has no ad account attached.

list-pipeline-columns

ChatGPT
List the pipeline board columns (the 6 fixed system stages) for the org, with their ids, names, hidden flag, and bound settings. Read-only. Call before configure-pipeline-column to get the columnId.

list-snapshot-templates

ChatGPT
List the user's saved CAMPAIGN-SNAPSHOT templates (full campaign-tree snapshots of an existing launch). These are NOT structure templates (rule-based blueprints) — for those use listStructureTemplates.

list-structure-templates

ChatGPT
List the user's saved STRUCTURE templates (rule-based campaign blueprints applied to pipeline cards). Distinct from the old campaign-snapshot templates. Read-only. Call before apply-structure-template / edit-structure-template-rules when you need the templateId.

list-workflows

ChatGPT
List the org's saved Workflows (multi-step automations that chain nodes like apply_template, launch, attach_monitor, slack_notify, review_gate, agent_prompt). Read-only. Call before getWorkflow / runWorkflow to resolve a workflowId.

move-pipeline-card

ChatGPT
Move a pipeline card (batch) between the columns you can set by hand: REQUESTED, ASSETS_UPLOADED, IN_REVIEW, APPROVED and FAILED. PUBLISHED is NOT settable — a card reaches it by actually publishing, so asking for it is refused; launch the batch instead. FAILED is settable but it is an outcome, so only move a card there to record a launch that really failed, and the Failed column only appears on the board once a card is in it. WRITE. Cannot create or delete columns.

preview-ads

ChatGPT
Preview a campaign launch's ads as they appear in feed: primary text, headline, call to action and the creative image for every ad in the launch, in structure order. Read-only — it renders what is already there and changes nothing.

remove-nodes

ChatGPT
Remove one or many campaign/adset/ad nodes from the KOAST TREE only — this does NOT pause or delete the entity on the ad platform and does NOT stop spend on already-published ads. Pass nodes: [{ nodeId, nodeType }, ...]. Accepts a mix of node types; unknown ids return in notFound, the rest are removed from the Koast tree. To actually stop spend on a live ad/adset/campaign, use update-node with properties: { status: "PAUSED" } instead. Destructive on the Koast tree and cannot be undone.

rename-node

ChatGPT
Rename a campaign, ad set, or ad node.

run-workflow

ChatGPT
Trigger a workflow to run now, starting a new execution. WRITE.

save-automation

ChatGPT
Create or update a monitoring automation for a brand. Omit automationId to create; pass it to update. automation holds the full spec. WRITE.

save-campaign-snapshot

ChatGPT
Save the current campaign's SETTINGS as a reusable CAMPAIGN-SNAPSHOT template. It captures the campaign-level settings only — not ad sets, ads or creatives. NOT a structure template (rule-based blueprint).

save-workflow

ChatGPT
Create or update a Workflow. Omit workflowId to create a new one; pass it to update. spec holds the full workflow definition. WRITE.

select-brand

ChatGPT
Makes a brand the active brand for this session. Most tools operate on the active brand, and the tools available can change with the brand's ad provider; templates, workflows and pipeline columns are shared across the whole organisation. Take the brandId from list-brands.

set-automation-status

ChatGPT
Set a monitoring automation's status: ACTIVE or PAUSED. WRITE.

set-workflow-status

ChatGPT
Set a workflow's status: DRAFT, ACTIVE (armed), or PAUSED. WRITE.

suggest-structure-templates

ChatGPT
Suggest structure templates by reverse-engineering the user's last few launches and AI-naming them. Returns candidate templates (id, name, intent, flags) saved as drafts. Use when the user asks "suggest a template" or "templates from my recent launches".

swap-creatives

ChatGPT
Replace the creatives on an existing ad set's ads while PRESERVING each ad's copy (primary text + headline). For each creative it edits an existing ad's creative in place (copy untouched); if there are more creatives than ads it clones an existing ad (inheriting its copy) and sets the new creative; if fewer, it removes the surplus. NEVER delete-and-re-add ads to change a creative — that drops the copy. Use this for "swap in these creatives" / "use these N videos on this ad set". Pass the Koast adset nodeId and the numeric creativeIds.

turn-launch-into-template

ChatGPT
Reverse a single specified launch (batch) into a saved structure template. Use when the user asks to "turn this batch into a template" or "save this launch as a structure template". WRITE.

update-node

ChatGPT
Update a campaign, ad set, or ad node. To attach a creative to an ad, pass creativeId (numeric). To attach a persisted copy generation to an ad, pass copyGenerationId (numeric). To attach an existing Meta post to an ad, pass postId (string). To pause/activate/resume a live node, pass properties: { status: "PAUSED" | "ACTIVE" } — status is NOT a settings path, it lives on the node itself and must go through update-node. Turning a live node ACTIVE can restart spend, so it runs only on the user's explicit approval: in Koast chat the call returns an approval card and nothing changes until the user approves it. Pausing runs immediately. properties accepts only status and copy: names go through rename-node and settings through update-settings, and any other key is refused with nothing applied. At least one of creativeId / copyGenerationId / postId / properties must be provided.

update-settings

ChatGPT
Apply one or more settings to one or more nodes in a single call. settings is a key-value object of dot-notation paths (1+ paths); nodeIds is an array of node IDs (1+ nodes). Each path is applied to every node. CURRENCY: budget.dailyAmount / budget.lifetimeAmount are CENTS (5000 = $50.00); optimization.bidAmount / budget.adSetMinimumSpend / budget.adSetMaximumSpend are DOLLARS. For varying values PER node use duplicate-and-vary. status is NOT a settings path — to pause/activate/resume a node, use update-node with properties: { status: "PAUSED"|"ACTIVE" }.

upload-creative

ChatGPT
Store an image in the active brand's creative library and return its creativeId, ready to put in an ad with add-ads, distribute-creative or swap-creatives. Give it a public https imageUrl and Koast downloads and re-hosts it. Uploading the same bytes twice returns the creative that already exists rather than duplicating it. Images only — videos are uploaded on the Creatives page. This does NOT create or change any ad; it only adds to the library.

validate-launch

ChatGPT
Read-only check whether the campaign launch is publishable to the ad platform. Returns any missing required assets (for example a Facebook Page, Pixel or conversion event on Meta) and structural validation errors with per-node inputId + message. Call this during wrap-up after a build/edit flow BEFORE offering launch to the user — if valid: false, surface each issue (with its inputId + message) as actionable next steps and DO NOT propose launch. NOT a write; safe to call anytime. Pure validation against the current tree state.

validate-structure-rules

ChatGPT
Validate an engine StructureState against the rules engine WITHOUT saving. Returns whether it is representable and the derived distribution (sets x creatives x max-per-set) plus any issues. Always call before authoring/editing to confirm the distribution is real. Read-only.

add-ads

Claude

add-adset

Claude

add-campaign

Claude

apply-snapshot-template

Claude

apply-structure-template

Claude

attach-lead-form

Claude

author-structure-template

Claude

clone-live-campaign

Claude

compute-creative-fatigue

Claude

configure-pipeline-column

Claude

create-campaign-launch

Claude

create-notification

Claude

create-pipeline-ticket

Claude

delete-automation

Claude

delete-batch

Claude

delete-snapshot-template

Claude

delete-structure-template

Claude

delete-workflow

Claude

distribute-creative

Claude

duplicate-and-vary

Claude

duplicate-node

Claude

edit-live-campaign

Claude

edit-structure-template-rules

Claude

generate-copy

Claude

get-account-naming-convention

Claude

get-account-overview

Claude

get-ad-delivery-status

Claude

get-ad-details

Claude

get-adset-details

Claude

get-automation

Claude

get-available-options

Claude

get-campaign-tree

Claude

get-copy

Claude

get-insights-daily

Claude

get-metrics

Claude

get-settings

Claude

get-settings-schema

Claude

get-structure-template

Claude

get-structure-template-rules

Claude

get-targeting-options

Claude

get-team-activity-log

Claude

get-workflow

Claude

get-workflow-execution

Claude

import-campaigns

Claude

import-live-campaign

Claude

launch-campaign

Claude

list-account-campaigns

Claude

list-automations

Claude

list-brands

Claude

list-creatives

Claude

list-koast-batches

Claude

list-lead-forms

Claude

list-my-ad-accounts

Claude

list-pipeline-columns

Claude

list-snapshot-templates

Claude

list-structure-templates

Claude

list-workflows

Claude

move-pipeline-card

Claude

preview-ads

Claude

remove-nodes

Claude

rename-node

Claude

run-workflow

Claude

save-automation

Claude

save-campaign-snapshot

Claude

save-workflow

Claude

select-brand

Claude

set-automation-status

Claude

set-workflow-status

Claude

suggest-structure-templates

Claude

swap-creatives

Claude

turn-launch-into-template

Claude

update-node

Claude

update-settings

Claude

upload-creative

Claude

validate-launch

Claude

validate-structure-rules

Claude

Capabilities

InteractiveWrites

Example Prompts

Click any prompt to copy it.

App Stats

152

Tools

2

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily