Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Adrex AI

NPM · ADREX-AI · SCANNED SEP 20

Open-source MCP server for Google Ads & Meta Ads — manage campaigns from any AI assistant.

Available components

+1 this week 82 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability77
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2908 tokens (~53/item across 54 items; 54 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "google_ads_delete_campaign" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 54 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Adrex AI MCP server?

Adrex AI runs locally as an npm package, launched with npx -y adrex-ai. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · adrex-ai

# add to Claude Code
claude mcp add gauravapiscean-adrex-ai -- npx -y adrex-ai
// .cursor/mcp.json
{
  "mcpServers": {
    "gauravapiscean-adrex-ai": {
      "command": "npx",
      "args": [
        "-y",
        "adrex-ai"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "gauravapiscean-adrex-ai": {
      "command": "npx",
      "args": [
        "-y",
        "adrex-ai"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add gauravapiscean-adrex-ai -- npx -y adrex-ai
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gauravapiscean-adrex-ai": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "adrex-ai"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add gauravapiscean-adrex-ai --command npx --arg -y --arg adrex-ai
# ~/.hermes/config.yaml
mcp_servers:
  gauravapiscean-adrex-ai:
    command: "npx"
    args: ["-y", "adrex-ai"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "gauravapiscean-adrex-ai": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "adrex-ai"
      ]
    }
  }
}
# add to Vellum
assistant mcp add gauravapiscean-adrex-ai -t stdio -c npx -a -y adrex-ai
// mcp.json
{
  "mcpServers": {
    "gauravapiscean-adrex-ai": {
      "command": "npx",
      "args": [
        "-y",
        "adrex-ai"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 18 Sept 26 +1
    • Security disclosure: fail → unverified functional
  • 17 Sept 26 −3
    • Stability: pass → 0.83 functional
  • 16 Sept 26 +1
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1
    • Security disclosure: unverified → fail functional
  • 13 Sept 26 0
    • Security disclosure: fail → unverified functional
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/adrex-ai@1.0.12

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 54 exposed · ~2,908 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
google_ads_add_keywords ~58

Add keywords to a Google Ads ad group with specified match types

NameTypeReqDescription
ad_group_idstringyesAd group ID
customer_idstringyesGoogle Ads customer/account ID
keywordsarrayyesKeywords to add

No output schema declared.

No examples provided.

google_ads_add_negative_keywords ~57

Add negative keywords to a Google Ads campaign to exclude irrelevant searches

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID
keywordsarrayyesNegative keyword texts

No output schema declared.

No examples provided.

google_ads_auction_insights ~47

Get competitive auction insights showing how you compare against other advertisers

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_breakdowns ~57

Get campaign breakdowns by device or network for a Google Ads campaign

NameTypeReqDescription
breakdown_typestringBreakdown dimension
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_campaign_performance ~60

Get performance summary across all Google Ads campaigns with spend, clicks, conversions, and ROAS

NameTypeReqDescription
customer_idstringyesGoogle Ads customer/account ID
daysnumberNumber of days to look back (default 30)

No output schema declared.

No examples provided.

google_ads_create_ad_group ~69

Create a new ad group within a Google Ads campaign

NameTypeReqDescription
campaign_idstringyesCampaign ID
cpc_bidnumberMax CPC bid in dollars
customer_idstringyesGoogle Ads customer/account ID
namestringyesAd group name

No output schema declared.

No examples provided.

google_ads_create_responsive_search_ad ~104

Create a Responsive Search Ad with multiple headlines and descriptions. Ad is created PAUSED for review.

NameTypeReqDescription
ad_group_idstringyesAd group ID
customer_idstringyesGoogle Ads customer/account ID
descriptionsarrayyes2-4 descriptions (max 90 chars each)
final_urlstringyesLanding page URL
headlinesarrayyes3-15 headlines (max 30 chars each)

No output schema declared.

No examples provided.

google_ads_create_search_campaign ~94

Create a new Google Ads Search campaign. Campaign is created PAUSED for safety — no money will be spent until you resume it.

NameTypeReqDescription
bidding_strategystringBidding strategy
customer_idstringyesGoogle Ads customer/account ID
daily_budgetnumberyesDaily budget in dollars
namestringyesCampaign name
target_countriesarrayTarget country codes

No output schema declared.

No examples provided.

google_ads_delete_ad ~60

Permanently remove a Google Ads ad — IRREVERSIBLE

NameTypeReqDescription
ad_group_idstringyesAd group ID
ad_idstringyesAd ID to delete
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_delete_ad_group ~52

Permanently remove a Google Ads ad group — IRREVERSIBLE

NameTypeReqDescription
ad_group_idstringyesAd group ID to delete
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_delete_campaign ~51

Permanently remove a Google Ads campaign — this action is IRREVERSIBLE

NameTypeReqDescription
campaign_idstringyesCampaign ID to delete
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_enable_ad ~59

Enable a paused Google Ads ad — it will start serving

NameTypeReqDescription
ad_group_idstringyesAd group ID
ad_idstringyesAd ID to enable
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_get_budget ~42

Get budget details for a Google Ads campaign

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_get_campaign ~45

Get detailed information and metrics for a specific Google Ads campaign

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_list_accounts ~17

List all accessible Google Ads accounts

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

google_ads_list_ad_groups ~47

List all ad groups for a Google Ads campaign with performance metrics

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_list_ads ~48

List all ads in a Google Ads ad group with performance metrics

NameTypeReqDescription
ad_group_idstringyesAd group ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_list_campaigns ~52

List all campaigns for a Google Ads account with performance metrics

NameTypeReqDescription
customer_idstringyesGoogle Ads customer/account ID
statusstringFilter by status: ENABLED, PAUSED

No output schema declared.

No examples provided.

google_ads_list_keywords ~50

List keywords in a Google Ads ad group with quality score and performance metrics

NameTypeReqDescription
ad_group_idstringyesAd group ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_pause_ad ~53

Pause a Google Ads ad

NameTypeReqDescription
ad_group_idstringyesAd group ID
ad_idstringyesAd ID to pause
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_pause_ad_group ~45

Pause a Google Ads ad group

NameTypeReqDescription
ad_group_idstringyesAd group ID to pause
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_pause_campaign ~46

Pause a Google Ads campaign — stops ad delivery immediately

NameTypeReqDescription
campaign_idstringyesCampaign ID to pause
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_pause_keyword ~56

Pause a keyword in a Google Ads ad group

NameTypeReqDescription
ad_group_idstringyesAd group ID
criterion_idstringyesKeyword criterion ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_remove_keyword ~63

Permanently remove a keyword from a Google Ads ad group — IRREVERSIBLE

NameTypeReqDescription
ad_group_idstringyesAd group ID
criterion_idstringyesKeyword criterion ID
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_resume_campaign ~49

Resume a paused Google Ads campaign — this will start spending your budget

NameTypeReqDescription
campaign_idstringyesCampaign ID to resume
customer_idstringyesGoogle Ads customer/account ID

No output schema declared.

No examples provided.

google_ads_time_series ~58

Get daily performance time series for a Google Ads campaign

NameTypeReqDescription
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID
daysnumberNumber of days (default 30)

No output schema declared.

No examples provided.

google_ads_update_ad_group ~81

Update a Google Ads ad group's name, bid, or status

NameTypeReqDescription
ad_group_idstringyesAd group ID
cpc_bidnumberNew CPC bid in dollars
customer_idstringyesGoogle Ads customer/account ID
namestringNew name
statusstringNew status

No output schema declared.

No examples provided.

google_ads_update_campaign ~81

Update a Google Ads campaign's name, budget, or bidding strategy

NameTypeReqDescription
bidding_strategystringNew bidding strategy
campaign_idstringyesCampaign ID
customer_idstringyesGoogle Ads customer/account ID
daily_budgetnumberNew daily budget in dollars
namestringNew campaign name

No output schema declared.

No examples provided.

list_connected_platforms ~21

Check which ad platforms are configured and ready to use

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

meta_ads_breakdowns ~47

Get campaign breakdowns by device, platform, placement, age, or gender

NameTypeReqDescription
breakdown_typestringBreakdown dimension
campaign_idstringyesMeta campaign ID

No output schema declared.

No examples provided.

meta_ads_campaign_performance ~56

Get performance summary across all Meta campaigns with spend, clicks, and conversions

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID
daysnumberNumber of days to look back (default 30)

No output schema declared.

No examples provided.

meta_ads_create_ad ~134

Create a new Meta ad with creative (image, copy, link). Ad is created PAUSED for review.

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID
ad_set_idstringyesAd set ID
bodystringyesAd body text
call_to_actionstringCall to action button
image_urlstringImage URL for the ad creative
link_urlstringyesDestination URL
namestringyesAd name
page_idstringyesFacebook page ID
titlestringyesAd headline/title

No output schema declared.

No examples provided.

meta_ads_create_ad_set ~128

Create a new ad set in a Meta campaign with targeting options

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID
age_maxnumberMaximum age
age_minnumberMinimum age
campaign_idstringyesCampaign ID
countriesarrayTarget country codes
daily_budgetnumberyesDaily budget in dollars
gendersarrayGenders: 1=Male, 2=Female
namestringyesAd set name
optimization_goalstringOptimization goal

No output schema declared.

No examples provided.

meta_ads_create_campaign ~90

Create a new Meta Ads campaign. Created PAUSED for safety — no money spent until you activate it.

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID
daily_budgetnumberDaily budget in dollars
lifetime_budgetnumberLifetime budget in dollars (alternative to daily)
namestringyesCampaign name
objectivestringyesCampaign objective

No output schema declared.

No examples provided.

meta_ads_delete_ad ~35

Permanently delete a Meta ad — IRREVERSIBLE

NameTypeReqDescription
ad_idstringyesMeta ad ID to delete

No output schema declared.

No examples provided.

meta_ads_delete_ad_set ~39

Permanently delete a Meta ad set — IRREVERSIBLE

NameTypeReqDescription
ad_set_idstringyesMeta ad set ID to delete

No output schema declared.

No examples provided.

meta_ads_delete_campaign ~35

Permanently delete a Meta campaign — IRREVERSIBLE

NameTypeReqDescription
campaign_idstringyesMeta campaign ID to delete

No output schema declared.

No examples provided.

meta_ads_enable_ad ~34

Activate a paused Meta ad — it will start serving

NameTypeReqDescription
ad_idstringyesMeta ad ID to activate

No output schema declared.

No examples provided.

meta_ads_get_campaign ~32

Get detailed information and metrics for a specific Meta campaign

NameTypeReqDescription
campaign_idstringyesMeta campaign ID

No output schema declared.

No examples provided.

meta_ads_list_accounts ~20

List all accessible Meta (Facebook) ad accounts

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

meta_ads_list_ad_sets ~35

List all ad sets for a Meta campaign with targeting and metrics

NameTypeReqDescription
campaign_idstringyesMeta campaign ID

No output schema declared.

No examples provided.

meta_ads_list_ads ~37

List all ads in a Meta ad set with creative details and metrics

NameTypeReqDescription
ad_set_idstringyesMeta ad set ID

No output schema declared.

No examples provided.

meta_ads_list_audiences ~34

List custom audiences for a Meta ad account

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID

No output schema declared.

No examples provided.

meta_ads_list_campaigns ~58

List all campaigns for a Meta ad account with performance metrics

NameTypeReqDescription
ad_account_idstringyesMeta ad account ID (with or without act_ prefix)
statusstringFilter by status: ACTIVE, PAUSED

No output schema declared.

No examples provided.

meta_ads_list_pages ~21

List Facebook pages you manage (needed for creating ads)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

meta_ads_pause_ad ~28

Pause a Meta ad

NameTypeReqDescription
ad_idstringyesMeta ad ID to pause

No output schema declared.

No examples provided.

meta_ads_pause_ad_set ~32

Pause a Meta ad set

NameTypeReqDescription
ad_set_idstringyesMeta ad set ID to pause

No output schema declared.

No examples provided.

meta_ads_pause_campaign ~33

Pause a Meta campaign — stops ad delivery immediately

NameTypeReqDescription
campaign_idstringyesMeta campaign ID to pause

No output schema declared.

No examples provided.

meta_ads_resume_campaign ~36

Activate a paused Meta campaign — this will start spending your budget

NameTypeReqDescription
campaign_idstringyesMeta campaign ID to activate

No output schema declared.

No examples provided.

meta_ads_search_interests ~45

Search Meta's targeting interests and behaviors for audience building

NameTypeReqDescription
querystringyesSearch term (e.g., 'fitness', 'cooking', 'real estate')

No output schema declared.

No examples provided.

Common questions

What is the Adrex AI MCP server?

Adrex AI is an MCP server listed in the public MCP registry as io.github.gauravapiscean/adrex-ai. Open-source MCP server for Google Ads & Meta Ads, manage campaigns from any AI assistant. This page covers its npm package (adrex-ai).

Is the Adrex AI MCP server safe to use?

Adrex AI scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Adrex AI MCP server expose?

Adrex AI exposes 54 tools: google_ads_list_accounts, google_ads_list_campaigns, google_ads_get_campaign, google_ads_create_search_campaign, google_ads_update_campaign, and 49 more. Their descriptions and schemas cost roughly 2,908 tokens of context every time the server is loaded.

Is the Adrex AI MCP server still maintained?

Adrex AI is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Adrex AI MCP server under?

Adrex AI declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.