AI-powered cross-platform ad management for MCP. Manage Google Ads and Meta Ads campaigns, analyze performance, optimize budgets, and detect anomalies — all through natural language.
Strong tool definitions with comprehensive descriptions and well-structured schemas. All 11 tools have clear, action-oriented names (ad_demo_seed, ad_csv_import, ads_report, etc.) and detailed descriptions (avg 250+ chars) explaining WHAT, WHEN, and HOW. Input schemas use Zod with proper enums and type constraints. However, output schemas are not explicitly documented in the visible code, responses are inferred from implementation. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint). Error handling via handleToolError() exists but lacks recovery guidance in descriptions. Some parameter descriptions could be more concise; a few lack explicit format/range constraints.
Compare two campaign variants as an A/B test. Uses Z-test for proportions (CTR, conversion rate) and heuristic analysis for continuous metrics (CPA, ROAS). Reports statistical significance, winner, and recommendations. Requires at least 100 clicks per variant for reliable results. Use this to validate creative, targeting, or bidding changes: "Is variant B really better?"
Import real campaign + performance data from a Google Ads or Meta Ads CSV export. After import, every AdOps tool (ads_report, budget_analyze, anomaly_detect, ab_test_analyze, competitor_benchmark, forecast_spend) operates on your real data. No API keys or OAuth required — just export from your ad dashboard and import here. HOW TO EXPORT: • Google Ads: Reports → Campaign performance → Download → Comma-separated (.csv). Include "Day" segment for daily metrics. • Meta Ads Manager: Campaigns view → Export → Campaign performance (.csv). Check "Include breakdowns: By day" for daily metrics. INPUT: Provide either csv_path (absolute path to file on disk) OR csv_content (raw CSV string). Optional connection_name groups imports; re-importing with the same name appends new data. Returns a summary with campaigns_imported, metrics_imported, warnings, and the connection id to reference in other tools.
Create 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 portfolio each call.
Output schemas not explicitly documented in tool definitions. Responses are inferred from implementation (analytics.js, optimizer.js) but not declared in registerTool() calls. LLMs cannot reliably predict response structure.
Error handling lacks recovery guidance in tool descriptions. handleToolError() exists but descriptions do not explain what to do on failure (e.g., 'If CSV import fails, check file format' or 'If anomaly detection finds no data, try a longer lookback_days').
Some parameter descriptions lack explicit format/range constraints. E.g., 'date_start' and 'date_end' state 'YYYY-MM-DD' but do not specify min/max date ranges or whether past dates are allowed. 'limit' parameters lack min/max bounds (e.g., 1 - 100).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Export budget_analyze recommendations as a Google Ads Editor CSV, Meta Ads Manager CSV, JSON, or Markdown — so you can take action in one bulk paste instead of editing campaigns one by one. AdOps does not call Google/Meta write APIs (that would require OAuth + developer token approval for every user); instead, this tool hands you the exact CSV rows those dashboards expect, and you paste them in. Perfect for the "pause anything with CPA over 50 and reallocate budget" workflow. Use platform=google with format=google_ads_csv (import into Google Ads Editor). Use platform=meta with format=meta_ads_csv (bulk edit in Meta Ads Manager Power Editor). Use json to pipe into n8n or your own automation. Use markdown for human review before acting. min_delta_pct filters out noise (e.g. 0.15 = only show changes >=15%).
Generate a unified cross-platform performance report. Aggregates Google Ads + Meta Ads metrics into a single view with blended KPIs (CTR, CPC, ROAS, CPA), breakdowns by platform and campaign, top performers, and underperformers. Supports filtering by date range, platform, and campaign IDs. Use this to answer "How are all my ads doing?" and spot winners/losers at a glance.
Scan active campaigns for performance anomalies by comparing recent metrics against baseline. Detects CPC spikes, CTR drops, spend surges, and conversion declines with configurable sensitivity. Returns a prioritized list of alerts (critical → low) with descriptions and recommendations. Use this to catch problems early: "Why did my CPC jump 50%?"
Generate audience demographic insights for a platform or specific campaign. Returns age, gender, location, interest, and device breakdowns with CTR and impression counts. Use this to understand who is engaging with your ads and optimize targeting: "Which age group converts best?"
Analyze budget allocation across campaigns and platforms. Compares daily budget vs. actual spend, calculates utilization rates, and recommends budget shifts (increase, decrease, reallocate, pause) based on ROAS, CPA, or conversion volume. Use this to answer "Which campaigns should get more budget?" and "Which are wasting money?"
Benchmark your campaign performance against industry averages. Compares your ROAS, CPA, CTR, and CPC against typical ranges for your objective (awareness, conversions, sales, etc.) and platform. Returns your percentile rank and recommendations to close gaps. Use this to answer "Am I competitive?" and "Where should I focus optimization?"
Get platform-specific creative specifications filtered by platform and optional format. Returns image sizes, video specs, text limits, and CTA options for Google Ads (Responsive Search Ads, Display Ads, YouTube Video Ads) and Meta Ads (Single Image, Video, Stories/Reels, Carousel). Use this to validate creative before uploading: "What are the image dimensions for Meta Stories?"
Forecast daily and total spend for the next N days based on recent burn rate and budget constraints. Accounts for budget caps, daily limits, and seasonal trends. Returns projected spend, confidence interval, and alerts if you're on track to exceed budget. Use this to plan cash flow and avoid overspend: "Will I hit my monthly budget cap?"
Tool descriptions are verbose (250+ chars) and could be condensed to 50 - 150 chars for faster LLM parsing. Current descriptions include implementation details ('appends a new portfolio each call') that belong in parameter docs, not the summary.
No pagination support visible in ads_report, audience_insights, or competitor_benchmark. If these return large result sets, context window exhaustion is possible. Descriptions do not mention limits or pagination.