Security

AdWhiz

Try it

Audit, create, and manage Google Ads and Meta Ads campaigns from your AI coding tool using 102 MCP tools.

What it does

Manage Google Ads and Meta Ads accounts from your AI coding tool through 102 MCP tools that handle audits, performance queries, campaign creation, keyword management, and bid adjustments in natural language. The hosted server authenticates via OAuth 2.0 with refresh and long-lived tokens encrypted at rest (AES-256-GCM), so your Google and Meta credentials never reach the agent. Google Ads write tools create entities in PAUSED status by default, and every write requires explicit user confirmation through the agent's permission flow. A full mutation log is queryable via the get_operation_log tool.

When to use it

  • Auditing wasted spend and CPA outliers across Google Ads campaigns
  • Pausing underperforming campaigns or ad sets above a CPA threshold
  • Creating Search or Performance Max campaigns with target budgets and paused start
  • Querying Meta ad insights with daily breakdowns or audience breakdowns

The skill document

AdWhiz — Google Ads & Meta Ads MCP Server

AdWhiz is a hosted MCP server that connects your AI coding tool to the Google Ads API and Meta (Facebook) Graph API through a secure, authenticated proxy. It exposes 102 tools across 7 categories so you can audit, create, and manage ad campaigns across both platforms using plain English.

All API calls are authenticated via your personal ADWHIZ_API_KEY and routed through the AdWhiz server at mcp.adwhiz.ai. No Google or Meta credentials are stored by the skill — authentication is handled entirely server-side after you link your ad accounts at https://adwhiz.ai/connect.

Security & Permissions Model

  • OAuth 2.0: User authenticates with Google and/or Meta via AdWhiz's web UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted at rest (AES-256-GCM) and never exposed to the agent.
  • API key scoping: Each ADWHIZ_API_KEY is bound to a single user's connected accounts. Cross-user access is not possible.
  • Write safety: All Google Ads write tools create entities in PAUSED status by default. Meta write tools require explicit status parameters.
  • Mutation logging: Every mutation is recorded in the get_operation_log tool for full auditability.
  • Read-only by default: 39 of 102 tools are strictly read-only and cannot modify your accounts.
  • Confirmation required: Write tools require user confirmation before executing via the agent's standard permission flow.
  • No arbitrary code execution: The MCP server is a hosted HTTP service. No code is downloaded or executed on the user's machine beyond the thin MCP client wrapper.

Account (2 tools) — Read-only

ToolDescription
list_accountsList all accessible Google Ads accounts (auto-expands MCC child accounts)
get_account_infoGet account details (currency, timezone, optimization score)

Read (20 tools) — Read-only

ToolDescription
list_campaignsList campaigns with status, type, budget, bidding strategy
get_campaign_performanceCampaign metrics: cost, clicks, conversions, CTR, CPA, ROAS
list_ad_groupsList ad groups with bids, filtered by campaign
list_adsList ads with headlines, descriptions, final URLs
list_keywordsKeywords with match types, bids, quality scores
get_search_termsSearch terms report (actual queries triggering ads)
list_negative_keywordsNegative keywords at campaign, ad group, or account level
list_assetsSitelinks, callouts, structured snippets
list_conversion_actionsConversion actions with status, type, category
list_budgetsCampaign budgets with associated campaigns
list_bidding_strategiesPortfolio bidding strategies
list_audience_segmentsAudience targeting criteria
list_user_listsRemarketing/audience lists for targeting
get_operation_logRecent mutations performed via AdWhiz
list_recommendationsGoogle Ads recommendations (add keywords, raise bids, fix ad strength)
get_change_historyChange audit log: who changed what and when
list_geo_targetsGeographic location targeting on campaigns
list_ad_schedulesAd schedule (dayparting) criteria on campaigns
list_labelsLabels for organizing campaigns, ad groups, ads, keywords
generate_keyword_ideasKeyword ideas with search volume, competition, bid ranges

Write (45 tools) — Requires user confirmation

ToolDescription
create_campaignCreate Search, Display, PMax, or Video campaign (starts PAUSED)
update_campaignUpdate campaign name
set_campaign_statusPause, enable, or remove a campaign
create_ad_groupCreate an ad group in a campaign
update_ad_groupUpdate ad group name or CPC bid
set_ad_group_statusPause, enable, or remove an ad group
create_responsive_search_adCreate RSA with headlines + descriptions (starts PAUSED)
set_ad_statusPause, enable, or remove an ad
add_keywordsAdd keywords with match types and bids
update_keyword_bidChange a keyword's CPC bid
set_keyword_statusPause, enable, or remove a keyword
add_negative_keywordAdd negative keyword at campaign or ad group level
remove_negative_keywordRemove a negative keyword
create_shared_negative_listCreate a shared negative keyword list
add_to_shared_listAdd keywords to a shared negative list
attach_shared_listAttach shared list to a campaign
create_sitelinkCreate a sitelink asset
create_calloutCreate a callout asset
create_structured_snippetCreate a structured snippet asset
create_price_extensionCreate a price extension asset
link_asset_to_campaignLink asset to a campaign
unlink_asset_from_campaignUnlink asset from a campaign
create_conversion_actionCreate a conversion tracking action
update_conversion_actionUpdate conversion action name or status
create_budgetCreate a campaign budget
update_budgetUpdate budget amount or name
create_bidding_strategyCreate a portfolio bidding strategy
add_audience_to_campaignAdd audience targeting to a campaign
update_responsive_search_adUpdate RSA headlines, descriptions, or URLs
link_asset_to_ad_groupLink asset to an ad group
unlink_asset_from_ad_groupRemove asset-to-ad-group linkage
upload_click_conversionsUpload offline click conversions (gclid-based)
upload_customer_listUpload hashed PII to Customer Match user list
apply_recommendationApply a Google Ads recommendation
dismiss_recommendationDismiss a Google Ads recommendation
add_geo_targetingAdd geographic location targeting to a campaign
remove_geo_targetingRemove geographic location target from a campaign
add_ad_scheduleAdd ad schedule (dayparting) to a campaign
remove_ad_scheduleRemove ad schedule criterion from a campaign
set_device_bid_adjustmentSet device bid adjustment (mobile, desktop, tablet)
set_demographic_targetingSet demographic targeting (age, gender, income)
create_labelCreate a label for organizing entities
apply_labelApply a label to a campaign, ad group, or ad
remove_labelRemove a label from a campaign, ad group, or ad
create_asset_groupCreate an asset group for Performance Max campaigns

Audit (2 tools) — Read-only analysis

ToolDescription
run_mini_auditQuick 3-metric audit: wasted spend, best/worst CPA, projected savings
run_full_auditComprehensive audit: campaigns, keywords, search terms, issues, recommendations

Query (1 tool) — Read-only, bounded

ToolDescription
run_gaql_queryExecute a read-only GAQL query against your account (max 1,000 rows, SELECT only)

Meta (Facebook) Ads Tools (32)

Meta Read (15 tools) — Read-only

ToolDescription
meta_list_ad_accountsList all connected Meta ad accounts
meta_list_campaignsList campaigns with status, objective, budget
meta_get_campaign_insightsPer-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns)
meta_list_ad_setsList ad sets with targeting, status, budget, and promoted_object
meta_list_adsList ads with creative details (title, body, image URL)
meta_get_account_insightsAccount-level aggregated metrics with daily breakdown
meta_get_ad_set_insightsPer-ad-set performance metrics: spend, clicks, CPA, frequency
meta_get_ad_insightsPer-ad performance metrics: spend, clicks, conversions, CPA
meta_get_ad_creativesList ad creatives or get creative for a specific ad
meta_search_interestsSearch targetable interest audiences by keyword
meta_search_geo_locationsSearch geographic locations for targeting
meta_estimate_audience_sizeEstimate reach of a targeting spec
meta_get_account_pagesList Facebook pages available for running ads
meta_get_change_historyView recent changes (audit log) — who changed what and when
meta_get_instagram_mediaList Instagram media with Media V2 IDs for partnership/branded content ads

Meta Write (16 tools) — Requires user confirmation

ToolDescription
meta_set_campaign_statusPause or activate a Meta campaign
meta_update_campaign_budgetUpdate a Meta campaign's daily or lifetime budget
meta_set_ad_set_statusPause or activate a Meta ad set
meta_set_ad_statusPause or activate a Meta ad
meta_create_campaignCreate a new Meta campaign with objective and budget
meta_create_ad_setCreate an ad set with targeting, budget, optimization goal
meta_create_ad_creativeCreate ad creative with image/video, link, CTA. Supports partnership ads via source_instagram_media_id or object_story_id
meta_create_adCreate an ad linking an ad set to a creative
meta_update_campaignUpdate campaign name, budget, end time, spend cap
meta_update_ad_setUpdate ad set name, budget, targeting, schedule
meta_update_adUpdate ad name, creative, or status
meta_create_custom_audienceCreate custom audience from customer lists or website visitors
meta_create_lookalike_audienceCreate lookalike audience from source audience
meta_upload_ad_imageUpload image from URL for ad creatives
meta_upload_partnership_videoUpload Instagram creator video via partnership ad code for branded content ads
meta_duplicate_campaignDuplicate campaign with all ad sets and ads

Meta Audit (1 tool) — Read-only analysis

ToolDescription
meta_run_mini_auditQuick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue

MCP Server Configuration

AdWhiz uses HTTP transport to connect to the hosted MCP server. No npm packages are downloaded or executed at runtime.

{
  "mcpServers": {
    "adwhiz": {
      "transport": "http",
      "url": "https://mcp.adwhiz.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${ADWHIZ_API_KEY}"
      }
    }
  }
}

REST API (Alternative to MCP)

For platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or any HTTP-based workflow), AdWhiz also exposes all 102 tools as a standard REST API with an OpenAPI 3.1.0 spec:

# Example: list campaigns via REST API
curl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \
  -H "Authorization: Bearer $ADWHIZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"customer_id": "1234567890"}'

Import the OpenAPI spec URL into any platform that supports OpenAPI actions to auto-discover all 102 tools.

Quick Install

clawhub install adwhiz

This adds the MCP server configuration above to your settings. You will be prompted to provide your ADWHIZ_API_KEY.

Getting Your API Key

  1. Sign up at https://adwhiz.ai
  2. Connect your Google Ads and/or Meta Ads account via OAuth
  3. Copy your API key from the dashboard settings page

Example Prompts

  • "Audit my Google Ads account and show the top 5 waste areas"
  • "Pause all campaigns with CPA above $150"
  • "Add these negative keywords to my Search campaigns: [list]"
  • "Create a new Search campaign targeting lawyers in New York with $100/day budget"
  • "Show me search terms wasting money and suggest negatives"
  • "What is my account's average Quality Score this month?"

Meta Ads

  • "Audit my Meta Ads account and show the health score"
  • "List all active Meta campaigns with their spend and CTR"
  • "Pause the Meta campaign with the highest frequency"
  • "Show me daily spend trends for my Meta account over the last 30 days"
  • "Which Meta ad sets have the worst CPA?"

Data Handling

  • AdWhiz only accesses the ad accounts you explicitly linked
  • No campaign data is stored beyond the duration of each API request
  • Mutation logs are retained for 30 days for auditability
  • You can revoke access at any time from https://adwhiz.ai/connect

Documentation

Full documentation: https://adwhiz.ai/docs

Related skills

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván556 installs18 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

More from iamzifei

Browse all skills

AI KEY ——两套技能的总入口:做内容(选题/写稿/审核/复盘)+ 看生意(组合体检/营收归因/客户集中度/依赖风险/拿不准的决策)。三种模式:新手上路演示、任务前路由、任务后导航。不知道用哪个就回这里。 触发方式:/aikey、/新手上路、/aikey 教程、「做条视频」「出个口播」「今天拍什么」「内容下一步怎么走」;新手教程:/aikey 新手指南、/aikey 新手、「这个怎么用」「第一次用,带我走一遍」「不知道能干嘛」 Single entry point for both skill sets — content (topic, script, review, retro) and business (portfolio, revenue, concentration, dependency, decisions). Three modes: guided onboarding demo, pre-task routing, post-task navigation. Trigger: /aikey, "make a short video", "what should I shoot today", "how do I use this" —— AI KEY · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei2 installs

AI KEY·口播稿写作 ——口播稿协作写作技能(知识付费口播为主形态)。三类脚本选型 + 从内容单元装配 + 逐段共创,不一键成稿。 触发方式:/aikey-script、/写口播、/写稿、/aikey-写稿、「写个口播稿」「帮我把这个题写出来」「知识付费口播」「写条视频文案」 Collaborative koubo (talking-head) script writing: script-type selection, unit assembly, section-by-section co-writing. Trigger: /aikey-script, "write a talking-head script", "turn this topic into a video script" —— AI KEY · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei1 installs

AI KEY·今天拍什么 ——短视频选题技能。先探寻现象、检验假设、比较解释,把问题转成观众在意的选择。交互式选题:供需判定 + 对标信号 + 本人真实数据佐证 + 配比检查,不一键生成选题清单。 触发方式:/aikey-topic、/拍什么、/选题、/aikey-选题、「今天拍什么」「帮我出选题」「这个题能不能做」「有个想法你帮我判断下」「这题只有一头」「这题没劲」「帮我把它讲出两头来」 Topic selection for short videos: supply-demand test, benchmark signals, real data evidence. Trigger: /aikey-topic, "what topic should I shoot", "is this topic worth making" —— AI KEY · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei1 installs

AI KEY·口播剪辑 ——口播成片剪辑技能。把拍好的素材剪成可发布的成片:**按文案规则做内容层重组**(删废镜头/去重复/重排顺序)→ 语音剪辑(去口癖/停顿)→ 加速 → 字幕 → B-roll → 交付。 🔴 **只删和重排,不加词** —— 说话人没说过的话一个字都不加。 中文口播的剪辑工作流(判据按中文口播写;用户用别的语言时照常用他的语言交流,并说明规则是按中文口播定的)。 默认参数(抖音 · 保持原长 · 1.15× · HarmonyOS Sans 粗体字幕 · 黄色 #FFE20A 高亮)属于澳洲AI教父账号:**确认是这个账号**才直接用;其他账号先读 `config`,读不到就问,不套用。 检测不到 ChatCut 会引导安装,并给出**本机转写旁路** —— 内容层的活全部不需要 ChatCut。 用户要 B-roll / 特效 / 转场而手上没有真素材时,可按文案逐句判哪几句能配生成画面(比喻、过程、氛围、转场可以;「我做过」「真实发生」这类证言绝不),写成 Seedance 提示词交给 chatcut-video-gen 出片,提交前先确认花费,发布时提醒打开 AI 生成声明。 触发方式:/aikey-cut、/剪片、/aikey-剪、「把这条口播剪出来」「口播素材剪成成片」「用 aikey-cut 剪」。普通的「加字幕」「剪一下」不自动触发,先问是不是要走这套口播剪辑流程 Talking-head footage → publishable cut. Restructures content by copy rules (delete/reorder only, never add words), then cleans speech, speeds up, captions, B-roll. When the user wants B-roll, effects or transitions and has no real footage, picks which lines may take generated inserts (metaphor, process, mood, transitions — never testimony) and writes Seedance prompts for chatcut-video

by iamzifei

AI KEY·标题与封面 ——多平台标题与封面。按内容本身的形状选结构(12 种结构清单),过卖真 / 违禁词 / 不点名 / 黑话红线,每个标题说清用了什么结构、为什么配这条内容。**不给「通用爆款公式」——实证显示标题结构在不同账号间不通用,附脚本让你算出自己账号的规律。** 触发方式:/aikey-title、/封面、/标题、/aikey-标题、「起个标题」「抖音封面写什么」「小红书标题」「封面大字怎么写」「帮我优化这个标题」 Multi-platform titles and cover text. Picks a structure that fits the content rather than applying a "proven formula" — cross-source testing found none of 12 common title structures replicate across differently-styled accounts. Ships a script to derive your own. Trigger: /aikey-title, "give me a title", "Douyin cover text", "xiaohongshu title" —— AI KEY · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei