Coverage
What the REST API covers today, what it never will, and what is still to come.
The MCP server exposes 87 tools. The REST API covers 77 of them. This page is generated from the same map a CI check reads, so it cannot drift: a new tool fails the build until it is either built here or listed below.
Covered
| Tool | REST operation |
|---|---|
gads_approve_action | approveAction |
gads_dismiss_recommendation | dismissRecommendation |
gads_get_account_overview | getAccountOverview |
gads_get_asset_performance | listAssets |
gads_get_audit_report | getAuditReport |
gads_get_change_history | listHistory |
gads_get_competitive_pressure | getCompetitivePressure |
gads_get_connection_status | getConnection |
gads_get_conversion_actions | listConversionActions |
gads_get_experiments | listExperiments |
gads_get_intraday_pulse | getIntradayPulse |
gads_get_optimization_plan | getOptimizationPlan |
gads_get_search_terms | listSearchTerms |
gads_get_segment_performance | getSegmentPerformance |
gads_get_sync_status | getSyncStatus |
gads_get_tracking_health | getTrackingHealth |
gads_list_action_history | listHistory |
gads_list_ad_accounts | listAdAccounts |
gads_list_ad_groups | listAdGroups |
gads_list_ads | listAds |
gads_list_audiences | listAudiences |
gads_list_audit_runs | listAuditRuns |
gads_list_campaigns | listCampaigns |
gads_list_keywords | listKeywords |
gads_list_pending_actions | listActions |
gads_list_projects | listAdAccounts |
gads_propose_account_tracking | proposeAccountTracking |
gads_propose_add_ad_schedule | proposeAddAdSchedule |
gads_propose_add_geo_targets | proposeAddGeoTargets |
gads_propose_add_keywords | addKeywords |
gads_propose_add_negative_keywords | addNegativeKeywords |
gads_propose_ad_group_status | proposeAdGroupStatus |
gads_propose_ad_schedule_bid_modifier | proposeAdScheduleBidModifier |
gads_propose_ad_status | proposeAdStatus |
gads_propose_ai_max_experiment | proposeAiMaxExperiment |
gads_propose_ai_max_setting | proposeAiMaxSetting |
gads_propose_ai_max_text_guidelines | proposeAiMaxTextGuidelines |
gads_propose_asset_link_status | proposeAssetLinkStatus |
gads_propose_attach_audience | proposeAttachAudience |
gads_propose_brand_exclusion | proposeBrandExclusion |
gads_propose_budget_change | proposeBudgetChange |
gads_propose_campaign_bid_strategy | proposeCampaignBidStrategy |
gads_propose_campaign_status | proposeCampaignStatus |
gads_propose_campaign_target | proposeCampaignTarget |
gads_propose_change_keyword_match_type | proposeChangeKeywordMatchType |
gads_propose_clone_ad_group | proposeCloneAdGroup |
gads_propose_clone_campaign | proposeCloneCampaign |
gads_propose_create_ad_group | proposeCreateAdGroup |
gads_propose_create_assets | proposeCreateAssets |
gads_propose_create_campaign | proposeCreateCampaign |
gads_propose_create_custom_audience | proposeCreateCustomAudience |
gads_propose_create_experiment | proposeCreateExperiment |
gads_propose_create_rsa | proposeCreateRsa |
gads_propose_detach_asset | proposeDetachAsset |
gads_propose_detach_audience | proposeDetachAudience |
gads_propose_device_bid_modifier | proposeDeviceBidModifier |
gads_propose_end_experiment | proposeEndExperiment |
gads_propose_geo_bid_modifier | proposeGeoBidModifier |
gads_propose_keyword_bid | proposeKeywordBid |
gads_propose_keyword_status | proposeKeywordStatus |
gads_propose_promote_experiment | proposePromoteExperiment |
gads_propose_remove_ad_schedule | proposeRemoveAdSchedule |
gads_propose_remove_geo_target | proposeRemoveGeoTarget |
gads_propose_remove_negative_keyword | proposeRemoveNegativeKeyword |
gads_propose_rename_ad_group | proposeRenameAdGroup |
gads_propose_rename_campaign | proposeRenameCampaign |
gads_propose_replace_ad | proposeReplaceAd |
gads_reject_action | rejectAction |
gads_revert_action | revertAction |
gads_run_gaql_query | runGaqlQuery |
gads_score_keywords | scoreKeywords |
gads_set_optimization_targets | setOptimizationTargets |
gads_suggest_keywords | suggestKeywords |
gads_trigger_audit | triggerAudit |
gads_trigger_sync | triggerSync |
gads_undismiss_recommendation | undismissRecommendation |
gads_update_project_brief | updateProjectBrief |
Not planned
Structural — these cannot be REST endpoints.
| Tool | Why |
|---|---|
gads_discover_ad_accounts | org-level: lists the Google Ads customers the workspace's OAuth grant can see, and exists only to feed importAdAccount |
gads_discover_search_term_silos | LLM clustering — same reasoning as ideateKeywordSilos |
gads_explain_policy | explains the safe-apply policy in prose for a model; the API returns policy_reasons on every proposal instead |
gads_generate_free_audit | client-facing pitch report with an LLM narrative pass — a sales artifact; account audits are GET/POST /accounts/{projectId}/audits |
gads_get_free_audit | reads the free-audit pitch report — same reasoning as generateFreeAudit |
gads_get_funnel | reads PostHog with the workspace's stored PostHog key — a third-party system, not a resource of this API |
gads_ideate_keyword_silos | LLM generation — non-deterministic output, belongs behind an agent run |
gads_import_ad_account | org-level: creates a project, which an API key (scoped to existing accounts) cannot be scoped to — accounts are imported in the app or over MCP |
gads_search_audience_ideas | LLM-assisted ideation over Google's audience taxonomy |
gads_share_free_audit | mints or revokes the pitch report's public link — same reasoning as generateFreeAudit |