# Adrex AI (npm · adrex-ai)

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

- Trust score: 70/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `adrex-ai`: 70/100 (this document), [markdown](https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai.md), [page](https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai)

## Channel facts

- Registry: `npm`
- Package: `adrex-ai`
- Version: `1.0.12`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2908 tokens (~53/item across 54 items; 54 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add gauravapiscean-adrex-ai -- npx -y adrex-ai
```

### Codex

```bash
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
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gauravapiscean-adrex-ai --command npx --arg -y --arg adrex-ai
```

### Hermes

```yaml
mcp_servers:
  gauravapiscean-adrex-ai:
    command: "npx"
    args: ["-y", "adrex-ai"]
```

### Other

```json
{
  "mcpServers": {
    "gauravapiscean-adrex-ai": {
      "command": "npx",
      "args": [
        "-y",
        "adrex-ai"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 70, +1)

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

### 2026-08-02 (score 69, +43)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 26, +5)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass

### 2026-07-31 (score 21, −25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (54)

### `google_ads_list_accounts` (~17 tokens)

List all accessible Google Ads accounts

### `google_ads_list_campaigns` (~52 tokens)

List all campaigns for a Google Ads account with performance metrics

Input parameters:

- `customer_id` (string, required): Google Ads customer/account ID
- `status` (string): Filter by status: ENABLED, PAUSED

### `google_ads_get_campaign` (~45 tokens)

Get detailed information and metrics for a specific Google Ads campaign

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_create_search_campaign` (~94 tokens)

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

Input parameters:

- `bidding_strategy` (string): Bidding strategy
- `customer_id` (string, required): Google Ads customer/account ID
- `daily_budget` (number, required): Daily budget in dollars
- `name` (string, required): Campaign name
- `target_countries` (array): Target country codes

### `google_ads_update_campaign` (~81 tokens)

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

Input parameters:

- `bidding_strategy` (string): New bidding strategy
- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID
- `daily_budget` (number): New daily budget in dollars
- `name` (string): New campaign name

### `google_ads_pause_campaign` (~46 tokens)

Pause a Google Ads campaign — stops ad delivery immediately

Input parameters:

- `campaign_id` (string, required): Campaign ID to pause
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_resume_campaign` (~49 tokens)

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

Input parameters:

- `campaign_id` (string, required): Campaign ID to resume
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_delete_campaign` (~51 tokens)

Permanently remove a Google Ads campaign — this action is IRREVERSIBLE

Input parameters:

- `campaign_id` (string, required): Campaign ID to delete
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_list_ad_groups` (~47 tokens)

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

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_create_ad_group` (~69 tokens)

Create a new ad group within a Google Ads campaign

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `cpc_bid` (number): Max CPC bid in dollars
- `customer_id` (string, required): Google Ads customer/account ID
- `name` (string, required): Ad group name

### `google_ads_update_ad_group` (~81 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `cpc_bid` (number): New CPC bid in dollars
- `customer_id` (string, required): Google Ads customer/account ID
- `name` (string): New name
- `status` (string): New status

### `google_ads_pause_ad_group` (~45 tokens)

Pause a Google Ads ad group

Input parameters:

- `ad_group_id` (string, required): Ad group ID to pause
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_delete_ad_group` (~52 tokens)

Permanently remove a Google Ads ad group — IRREVERSIBLE

Input parameters:

- `ad_group_id` (string, required): Ad group ID to delete
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_list_ads` (~48 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_create_responsive_search_ad` (~104 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `customer_id` (string, required): Google Ads customer/account ID
- `descriptions` (array, required): 2-4 descriptions (max 90 chars each)
- `final_url` (string, required): Landing page URL
- `headlines` (array, required): 3-15 headlines (max 30 chars each)

### `google_ads_pause_ad` (~53 tokens)

Pause a Google Ads ad

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `ad_id` (string, required): Ad ID to pause
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_enable_ad` (~59 tokens)

Enable a paused Google Ads ad — it will start serving

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `ad_id` (string, required): Ad ID to enable
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_delete_ad` (~60 tokens)

Permanently remove a Google Ads ad — IRREVERSIBLE

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `ad_id` (string, required): Ad ID to delete
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_list_keywords` (~50 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_add_keywords` (~58 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `customer_id` (string, required): Google Ads customer/account ID
- `keywords` (array, required): Keywords to add

### `google_ads_add_negative_keywords` (~57 tokens)

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

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID
- `keywords` (array, required): Negative keyword texts

### `google_ads_pause_keyword` (~56 tokens)

Pause a keyword in a Google Ads ad group

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `criterion_id` (string, required): Keyword criterion ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_remove_keyword` (~63 tokens)

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

Input parameters:

- `ad_group_id` (string, required): Ad group ID
- `criterion_id` (string, required): Keyword criterion ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_campaign_performance` (~60 tokens)

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

Input parameters:

- `customer_id` (string, required): Google Ads customer/account ID
- `days` (number): Number of days to look back (default 30)

### `google_ads_time_series` (~58 tokens)

Get daily performance time series for a Google Ads campaign

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID
- `days` (number): Number of days (default 30)

### `google_ads_breakdowns` (~57 tokens)

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

Input parameters:

- `breakdown_type` (string): Breakdown dimension
- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_auction_insights` (~47 tokens)

Get competitive auction insights showing how you compare against other advertisers

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID

### `google_ads_get_budget` (~42 tokens)

Get budget details for a Google Ads campaign

Input parameters:

- `campaign_id` (string, required): Campaign ID
- `customer_id` (string, required): Google Ads customer/account ID

### `meta_ads_list_accounts` (~20 tokens)

List all accessible Meta (Facebook) ad accounts

### `meta_ads_list_campaigns` (~58 tokens)

List all campaigns for a Meta ad account with performance metrics

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID (with or without act_ prefix)
- `status` (string): Filter by status: ACTIVE, PAUSED

### `meta_ads_get_campaign` (~32 tokens)

Get detailed information and metrics for a specific Meta campaign

Input parameters:

- `campaign_id` (string, required): Meta campaign ID

### `meta_ads_create_campaign` (~90 tokens)

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

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID
- `daily_budget` (number): Daily budget in dollars
- `lifetime_budget` (number): Lifetime budget in dollars (alternative to daily)
- `name` (string, required): Campaign name
- `objective` (string, required): Campaign objective

### `meta_ads_update_campaign` (~65 tokens)

Update a Meta campaign's name, budget, or status

Input parameters:

- `campaign_id` (string, required): Meta campaign ID
- `daily_budget` (number): New daily budget in dollars
- `name` (string): New campaign name
- `status` (string): New status

### `meta_ads_pause_campaign` (~33 tokens)

Pause a Meta campaign — stops ad delivery immediately

Input parameters:

- `campaign_id` (string, required): Meta campaign ID to pause

### `meta_ads_resume_campaign` (~36 tokens)

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

Input parameters:

- `campaign_id` (string, required): Meta campaign ID to activate

### `meta_ads_delete_campaign` (~35 tokens)

Permanently delete a Meta campaign — IRREVERSIBLE

Input parameters:

- `campaign_id` (string, required): Meta campaign ID to delete

### `meta_ads_list_ad_sets` (~35 tokens)

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

Input parameters:

- `campaign_id` (string, required): Meta campaign ID

### `meta_ads_create_ad_set` (~128 tokens)

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

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID
- `age_max` (number): Maximum age
- `age_min` (number): Minimum age
- `campaign_id` (string, required): Campaign ID
- `countries` (array): Target country codes
- `daily_budget` (number, required): Daily budget in dollars
- `genders` (array): Genders: 1=Male, 2=Female
- `name` (string, required): Ad set name
- `optimization_goal` (string): Optimization goal

### `meta_ads_update_ad_set` (~68 tokens)

Update a Meta ad set's name, budget, or status

Input parameters:

- `ad_set_id` (string, required): Meta ad set ID
- `daily_budget` (number): New daily budget in dollars
- `name` (string): New name
- `status` (string): New status

### `meta_ads_pause_ad_set` (~32 tokens)

Pause a Meta ad set

Input parameters:

- `ad_set_id` (string, required): Meta ad set ID to pause

### `meta_ads_delete_ad_set` (~39 tokens)

Permanently delete a Meta ad set — IRREVERSIBLE

Input parameters:

- `ad_set_id` (string, required): Meta ad set ID to delete

### `meta_ads_list_ads` (~37 tokens)

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

Input parameters:

- `ad_set_id` (string, required): Meta ad set ID

### `meta_ads_create_ad` (~134 tokens)

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

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID
- `ad_set_id` (string, required): Ad set ID
- `body` (string, required): Ad body text
- `call_to_action` (string): Call to action button
- `image_url` (string): Image URL for the ad creative
- `link_url` (string, required): Destination URL
- `name` (string, required): Ad name
- `page_id` (string, required): Facebook page ID
- `title` (string, required): Ad headline/title

### `meta_ads_pause_ad` (~28 tokens)

Pause a Meta ad

Input parameters:

- `ad_id` (string, required): Meta ad ID to pause

### `meta_ads_enable_ad` (~34 tokens)

Activate a paused Meta ad — it will start serving

Input parameters:

- `ad_id` (string, required): Meta ad ID to activate

### `meta_ads_delete_ad` (~35 tokens)

Permanently delete a Meta ad — IRREVERSIBLE

Input parameters:

- `ad_id` (string, required): Meta ad ID to delete

### `meta_ads_search_interests` (~45 tokens)

Search Meta's targeting interests and behaviors for audience building

Input parameters:

- `query` (string, required): Search term (e.g., 'fitness', 'cooking', 'real estate')

### `meta_ads_list_audiences` (~34 tokens)

List custom audiences for a Meta ad account

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID

### `meta_ads_list_pages` (~21 tokens)

List Facebook pages you manage (needed for creating ads)

### `meta_ads_update_targeting` (~99 tokens)

Update targeting settings on a Meta ad set (age, gender, countries, interests)

Input parameters:

- `ad_set_id` (string, required): Meta ad set ID
- `age_max` (number): Maximum age
- `age_min` (number): Minimum age
- `countries` (array): Target country codes
- `genders` (array): Genders: 1=Male, 2=Female
- `interests` (array): Interest targeting

### `meta_ads_campaign_performance` (~56 tokens)

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

Input parameters:

- `ad_account_id` (string, required): Meta ad account ID
- `days` (number): Number of days to look back (default 30)

### `meta_ads_time_series` (~45 tokens)

Get daily performance time series for a Meta campaign

Input parameters:

- `campaign_id` (string, required): Meta campaign ID
- `days` (number): Number of days (default 30)

### `meta_ads_breakdowns` (~47 tokens)

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

Input parameters:

- `breakdown_type` (string): Breakdown dimension
- `campaign_id` (string, required): Meta campaign ID

### `list_connected_platforms` (~21 tokens)

Check which ad platforms are configured and ready to use

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai#diagnostics

## Score history

- 2026-08-03: 70
- 2026-08-02: 69
- 2026-08-01: 26
- 2026-07-31: 21
- 2026-07-30: 46
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/adrex-ai
- Socket report: https://socket.dev/npm/package/adrex-ai
- Repository: https://github.com/adrex-ai/adrex-ai
- Website: https://adrex.ai/
- Changelog RSS feed: https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gauravapiscean-adrex-ai/adrex-ai
