Adops MCP server
CSV-first analytics for Google Ads + Meta Ads: reporting, anomaly detection, budget optimization.
0 stars84 downloads/wk
Reviews
Write oneNobody has reviewed Adops yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Adops tools (17, 4 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
ab_test_analyzeCompare two campaigns as A/B test variants and determine statistical significance. Input: campaign_id_a, campaign_id_b, primary_metric ("ctr"|"conversion_rate"|"roas"|"cpc"|"cpa"). Runs a two-proportion z-test (or means comparison for continuous metrics), computes p-value and 95% confidence interval, identifies the winner, and returns {winner, confidence_level, p_value, lift_percent, sample_size_a
ad_csv_importad_demo_seedwrite actionCreate a realistic cross-platform ad portfolio for trying AdOps without real data. Seeds 2 connections (Google + Meta), 8 campaigns across performance tiers, 30 days of daily metrics (240 rows), and pre-computed anomaly alerts. Use this to explore what AdOps can do, then switch to `ad_csv_import` with your real Google/Meta exports for production use. Safe to call multiple times — appends a new por
ads_export_recommendationsads_reportAggregate performance metrics across Google Ads and Meta Ads into a single unified view. Input: date_range ({start, end} as YYYY-MM-DD, defaults to the last 7 days), optional platform filter, optional campaign_ids filter, optional sort_by ("spend"|"roas"|"conversions"|"ctr"|"cpc"), and limit. Returns {period, totals (spend, impressions, clicks, conversions, revenue, ROAS, CPC, CTR), by_platform, c
anomaly_detectScan campaigns for statistical anomalies vs. a rolling baseline. Flags CPC spikes, CTR drops, sudden spend surges, and conversion cliffs. Input: sensitivity ("low"|"medium"|"high" — controls the z-score threshold), lookback_days (baseline window, default 14), optional platform filter. Returns {anomalies_found, severity_breakdown (critical|high|medium|low counts), alerts[] (each with campaign_id, m
audience_insightsDemographic and behavioural breakdown of the audiences served by your ads. Input: platform (optional — omit for all platforms) and optional campaign_id to scope to a single campaign. Returns {age_distribution, gender_distribution, top_geos, top_interests, device_breakdown, total_impressions, engagement_rate}. Use when refining targeting or reporting audience coverage.
budget_analyzeAnalyze how the current ad budget is distributed and produce actionable reallocation recommendations. Input: optimization_goal ("maximize_roas"|"maximize_conversions"|"minimize_cpa") and optional platform filter. Returns {goal, current_allocation (by platform + campaign), recommendations[] (each with campaign_id, current_budget, suggested_budget, rationale, expected_impact), projected_lift}. Pair
budget_reallocatewrite actionTransfer a dollar amount from one campaign's daily budget to another. Works across platforms (e.g. shift $50/day from a Google Ads search campaign to a Meta Ads retargeting campaign). Input: from_campaign_id, to_campaign_id (UUIDs, must differ), amount (positive number in campaign currency). Rejects the call if from_campaign_id === to_campaign_id or if the source campaign would go below zero. Retu
campaign_createwrite actionCreate a new ad campaign in the AdOps workspace. Accepts unified parameters (platform, name, objective, bidding_strategy, daily_budget, currency, start_date, end_date, targeting) and stores a canonical UnifiedCampaign record with status="draft". Returns the created campaign summary plus next_steps guidance. Requires an active platform connection (see platform_connect) — will auto-associate the fir
campaign_listUnified listing of campaigns across Google Ads and Meta Ads in a single view. Optional filters: platform ("google_ads"|"meta_ads"), status ("draft"|"active"|"paused"|"ended"|"archived"), query (free-text over campaign name). Pagination via limit (default 20, max 100) and offset. Returns {total, showing, offset, campaigns[]} where each campaign summary includes id, name, platform, status, objective
campaign_pause_resumeBatch-change the status of up to 50 campaigns in one call. action="pause" sets status to "paused"; action="resume" sets status to "active". Missing campaign_ids are reported in the errors array but do not fail the whole batch. Returns {action, updated, failed, campaigns[], errors?}. Use this for emergency pause during an incident or weekend shutoff.
campaign_updatewrite actionPatch-update an existing campaign. Pass campaign_id (UUID from campaign_list or campaign_create) plus any subset of: name, status, daily_budget, bidding_strategy, end_date. Fields you omit are left unchanged. Returns {message, updated_fields[], campaign} or an error if campaign_id is not found. Prefer campaign_pause_resume for batch status changes.
competitor_benchmarkCompare your ad performance against industry averages for a chosen vertical. Input: industry (e.g. "ecommerce", "saas", "finance", "healthcare", "education", "travel", "real_estate", "legal"), optional platform filter. Returns {industry, your_metrics, benchmarks (CTR, CPC, CPM, conversion_rate, CPA, ROAS industry averages), comparison (percent above/below benchmark per metric), recommendations[]}.
creative_specsPlatform-specific creative requirements for ad formats. Returns the exact image dimensions, aspect ratios, video duration and codec, headline/primary-text character limits, supported CTA buttons, and file size ceilings for each ad format. Input: platform ("google_ads"|"meta_ads") and optional format filter (e.g. "responsive_display", "video", "carousel", "single_image"). Use this before building c
forecast_spendProject future ad spend and performance based on recent historical trends. Input: period_days ("7"|"14"|"30") and optional platform filter. Uses moving-average extrapolation of spend, impressions, clicks, conversions, and revenue across the last 14 days. Returns {period_days, platform, projected (spend, impressions, clicks, conversions, revenue, ROAS, CPC, CTR), confidence_level, warnings[]}. Conf
platform_connectRegister a Google Ads or Meta Ads account in the AdOps workspace so subsequent tools (campaign_list, campaign_create, ads_report) can target it. Input: platform ("google_ads"|"meta_ads"), name (display label), account_id (the external ad account id). Returns the stored connection object with a generated UUID and status="active". Safe to call with the same platform+account_id — returns the existing
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan50 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 14 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
Install Adops in Claude Code, Cursor or VS Code
Runs npx -y adops-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add adops-mcp -- npx -y adops-mcp-server
What the publisher says
From the Adops repository's README, as published. We do not edit it. Read it on GitHub
AdOps MCP
CSV-first analytics & optimization for Google Ads + Meta Ads — inside Claude, Cursor, and any MCP client.
Export a CSV from Google Ads or Meta Ads Manager → import into AdOps → ask your AI assistant anything about your campaigns.
No OAuth. No developer tokens. No API approval queues. Your data stays on your machine.
Why CSV-first?
Google Ads API and Meta Marketing API are powerful but gated: developer token approval takes days, Meta app review takes weeks, OAuth flows are fragile. For most advertisers those barriers never clear.
AdOps takes a different path. Every ad platform's dashboard already has a Download / Export button that produces a CSV of exactly what you care about: campaign performance, day-segmented metrics, spend, conversions, ROAS. AdOps reads that CSV and runs the same analysis you'd get from a $200/mo optimization suite — anomaly detection, budget allocation, A/B significance, forecasting, industry benchmarks — directly inside your AI assistant.
You stay in control of your data. You don't hand credentials to a third party. You don't wait 3 weeks for a review.
Features
- 17 MCP tools covering the full ad analytics lifecycle
- 4 MCP resources for at-a-glance dashboards
- CSV import from Google Ads Editor, Google Ads web UI, and Meta Ads Manager — with automatic format detection (US vs European number formatting, CRLF vs LF, BOM handling)
- Unified cross-platform schema — Google and Meta campaigns normalized into a single UnifiedCampaign / UnifiedMetrics model
- AI-powered recommendations — budget reallocation, scaling high-ROAS campaigns, pausing zero-conversion ones
- Bulk-edit CSV export — turn recommendations into Google Ads Editor / Meta Ads Manager CSVs you can paste straight into the dashboard for one-click bulk updates
- Statistical anomaly detection — CPC spikes, CTR drops, spend surges, sensitivity-configurable
- A/B test analysis with confidence scoring
- 9-vertical industry benchmarks built-in (eCommerce, SaaS, B2B, etc.)
- Spend & conversion forecasting (7/14/30 days)
- Demo mode — seed a realistic portfolio to try the tools before importing your own data
- 91 automated tests — TypeScript strict mode, Zod validation throughout
Quick Start
npm i adops-mcp-serverAdd to your MCP client (Claude Desktop claudedesktopconfig.json, Cursor, VS Code, Windsurf):
{
"mcpServers": {
"adops": {
"command": "node",
"args": ["path/to/node_modules/adops-mcp-server/dist/index.js"]
}
}
}Restart your client. Then, inside Claude:
> Seed demo data so I can explore AdOps(calls addemoseed)
Or import your real data:
> Import ~/Downloads/google-ads-report.csv as a Google Ads CSV(calls adcsvimport with platform=google, csv_path=...)
Exporting CSV from Your Ad Dashboard
Google Ads
- Open ads.google.com → Campaigns view
- (Optional) Click Segment → Day in the toolbar for daily metrics
- Click Download (⬇) icon → choose .csv format
- Save to disk, give the absolute path to adcsvimport
Meta Ads Manager
- Open business.facebook.com → Ads Manager
- Switch to Campaigns tab (not Ad Sets or Ads — campaign-level rollups)
- (Optional) Breakdown → Time → Day for daily metrics
- Click Reports → Export → Campaign performance (.csv)
- Save to disk, give the absolute path to adcsvimport
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Adops: common questions
- Is Adops MCP server safe?
- Yes, by our scan: it is graded A (94/100). Read the Adops safety report
- How do I install Adops?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Adops need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Adops maintained?
- The last commit was 15 days ago (2026-09-13). The latest release is v1.3.0.
- What can I use instead of Adops?
- Servers from other publishers that do the same job: NotFair-MetaAds MCP server and Netdata MCP server.
Alternatives to Adops
Same job from other publishers: the closest match first, then the best rated.
NotFair-MetaAdsMeta Ads MCP (Facebook + Instagram) - analyze performance, manage budgets, pause campaigns.not reviewedEstablishedA- NetdataReal-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.not reviewedWidely usedA