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
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 11 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add gauravapiscean-adrex-ai -- npx -y adrex-ai
{
"mcpServers": {
"gauravapiscean-adrex-ai": {
"command": "npx",
"args": [
"-y",
"adrex-ai"
]
}
}
} {
"servers": {
"gauravapiscean-adrex-ai": {
"command": "npx",
"args": [
"-y",
"adrex-ai"
]
}
}
} codex mcp add gauravapiscean-adrex-ai -- npx -y adrex-ai
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gauravapiscean-adrex-ai": {
"type": "local",
"command": [
"npx",
"-y",
"adrex-ai"
],
"enabled": true
}
}
} openclaw mcp add gauravapiscean-adrex-ai --command npx --arg -y --arg adrex-ai
mcp_servers:
gauravapiscean-adrex-ai:
command: "npx"
args: ["-y", "adrex-ai"] {
"McpServers": {
"gauravapiscean-adrex-ai": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"adrex-ai"
]
}
}
} assistant mcp add gauravapiscean-adrex-ai -t stdio -c npx -a -y adrex-ai
{
"mcpServers": {
"gauravapiscean-adrex-ai": {
"command": "npx",
"args": [
"-y",
"adrex-ai"
]
}
}
} 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.
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 →
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 →
google_ads_add_keywords ~58
Add keywords to a Google Ads ad group with specified match types
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| customer_id | string | yes | Google Ads customer/account ID |
| keywords | array | yes | Keywords 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google Ads customer/account ID |
| keywords | array | yes | Negative 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| breakdown_type | string | – | Breakdown dimension |
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Google Ads customer/account ID |
| days | number | – | Number 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| cpc_bid | number | – | Max CPC bid in dollars |
| customer_id | string | yes | Google Ads customer/account ID |
| name | string | yes | Ad 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| customer_id | string | yes | Google Ads customer/account ID |
| descriptions | array | yes | 2-4 descriptions (max 90 chars each) |
| final_url | string | yes | Landing page URL |
| headlines | array | yes | 3-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.
| Name | Type | Req | Description |
|---|---|---|---|
| bidding_strategy | string | – | Bidding strategy |
| customer_id | string | yes | Google Ads customer/account ID |
| daily_budget | number | yes | Daily budget in dollars |
| name | string | yes | Campaign name |
| target_countries | array | – | Target country codes |
No output schema declared.
No examples provided.
google_ads_delete_ad ~60
Permanently remove a Google Ads ad — IRREVERSIBLE
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| ad_id | string | yes | Ad ID to delete |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID to delete |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID to delete |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| ad_id | string | yes | Ad ID to enable |
| customer_id | string | yes | Google Ads customer/account ID |
No output schema declared.
No examples provided.
google_ads_get_budget ~42
Get budget details for a Google Ads campaign
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Google Ads customer/account ID |
| status | string | – | Filter 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| customer_id | string | yes | Google Ads customer/account ID |
No output schema declared.
No examples provided.
google_ads_pause_ad ~53
Pause a Google Ads ad
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| ad_id | string | yes | Ad ID to pause |
| customer_id | string | yes | Google Ads customer/account ID |
No output schema declared.
No examples provided.
google_ads_pause_ad_group ~45
Pause a Google Ads ad group
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID to pause |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID to pause |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| criterion_id | string | yes | Keyword criterion ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| criterion_id | string | yes | Keyword criterion ID |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID to resume |
| customer_id | string | yes | Google 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google Ads customer/account ID |
| days | number | – | Number 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID |
| cpc_bid | number | – | New CPC bid in dollars |
| customer_id | string | yes | Google Ads customer/account ID |
| name | string | – | New name |
| status | string | – | New status |
No output schema declared.
No examples provided.
google_ads_update_campaign ~81
Update a Google Ads campaign's name, budget, or bidding strategy
| Name | Type | Req | Description |
|---|---|---|---|
| bidding_strategy | string | – | New bidding strategy |
| campaign_id | string | yes | Campaign ID |
| customer_id | string | yes | Google Ads customer/account ID |
| daily_budget | number | – | New daily budget in dollars |
| name | string | – | New 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
| Name | Type | Req | Description |
|---|---|---|---|
| breakdown_type | string | – | Breakdown dimension |
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta ad account ID |
| days | number | – | Number 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta ad account ID |
| ad_set_id | string | yes | Ad set ID |
| body | string | yes | Ad body text |
| call_to_action | string | – | Call to action button |
| image_url | string | – | Image URL for the ad creative |
| link_url | string | yes | Destination URL |
| name | string | yes | Ad name |
| page_id | string | yes | Facebook page ID |
| title | string | yes | Ad 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta ad account ID |
| age_max | number | – | Maximum age |
| age_min | number | – | Minimum age |
| campaign_id | string | yes | Campaign ID |
| countries | array | – | Target country codes |
| daily_budget | number | yes | Daily budget in dollars |
| genders | array | – | Genders: 1=Male, 2=Female |
| name | string | yes | Ad set name |
| optimization_goal | string | – | Optimization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta ad account ID |
| daily_budget | number | – | Daily budget in dollars |
| lifetime_budget | number | – | Lifetime budget in dollars (alternative to daily) |
| name | string | yes | Campaign name |
| objective | string | yes | Campaign objective |
No output schema declared.
No examples provided.
meta_ads_delete_ad ~35
Permanently delete a Meta ad — IRREVERSIBLE
| Name | Type | Req | Description |
|---|---|---|---|
| ad_id | string | yes | Meta ad ID to delete |
No output schema declared.
No examples provided.
meta_ads_delete_ad_set ~39
Permanently delete a Meta ad set — IRREVERSIBLE
| Name | Type | Req | Description |
|---|---|---|---|
| ad_set_id | string | yes | Meta ad set ID to delete |
No output schema declared.
No examples provided.
meta_ads_delete_campaign ~35
Permanently delete a Meta campaign — IRREVERSIBLE
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_set_id | string | yes | Meta ad set ID |
No output schema declared.
No examples provided.
meta_ads_list_audiences ~34
List custom audiences for a Meta ad account
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_account_id | string | yes | Meta ad account ID (with or without act_ prefix) |
| status | string | – | Filter 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
| Name | Type | Req | Description |
|---|---|---|---|
| ad_id | string | yes | Meta ad ID to pause |
No output schema declared.
No examples provided.
meta_ads_pause_ad_set ~32
Pause a Meta ad set
| Name | Type | Req | Description |
|---|---|---|---|
| ad_set_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Meta 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
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search term (e.g., 'fitness', 'cooking', 'real estate') |
No output schema declared.
No examples provided.
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.