<!-- AUTO-MIRROR of _docs/mcp-legacy-tool-mapping.md - keep this file byte-identical with frontend/static/docs/mcp/legacy-tool-mapping.md. -->

# MCP Legacy Tool Mapping

Story 68.4 sunsets the 219 pre-refactor legacy MCP wrappers from public tool discovery. The Python functions remain in code as internal parent-dispatch targets where needed, but MCP clients must call the parent tools listed below. The 30-day telemetry gate was waived for this single-user migration after the 2026-05-27 live retest confirmed no Parent>Child blocker.

The `vNEXT` value is intentional: the concrete release tag is assigned by `scripts/release.sh`.

| Legacy tool | Parent invocation | Annotation | Since (version) | Status |
|---|---|---|---|---|
| `list_presets` | `settings(action="list_presets", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_preset` | `settings(action="create_preset", params={"name": "...", "config": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `delete_preset` | `settings(action="delete_preset", params={"name": "..."})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_tenant_settings` | `settings(action="get_tenant_settings", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_tenant_settings` | `settings(action="update_tenant_settings", params={...})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_naming_conventions` | `settings(action="get_naming_conventions", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_naming_conventions` | `settings(action="update_naming_conventions", params={...})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_delivery_defaults` | `settings(action="get_delivery_defaults", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_delivery_defaults` | `settings(action="update_delivery_defaults", params={...})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `run_pql_query` | `pql(action="run_query", params={"query": "SELECT Id FROM Line_Item"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_preview_urls` | `preview(action="get_preview_urls", params={"lineItemId": 123, "creativeId": 456})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_campaign_preview_urls` | `preview(action="get_campaign_preview_urls", params={"orderId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `check_creative_coverage` | `preview(action="check_creative_coverage", params={"orderId": 123})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_job` | `jobs(action="get_job", params={"jobId": "..."})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_jobs` | `jobs(action="list_jobs", params={"limit": 50})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `duplicate_job` | `jobs(action="duplicate_job", params={"jobId": "..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_audience_segments` | `audiences(action="list_audience_segments", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_audience_segment` | `audiences(action="get_audience_segment", params={"segmentId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_audience_segment` | `audiences(action="create_audience_segment", params={"name": "...", "description": "..."})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_audience_segment` | `audiences(action="update_audience_segment", params={"segmentId": "123", "updates": {...}})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `perform_audience_segment_action` | `audiences(action="perform_audience_segment_action", params={"segmentIds": [123], "actionType": "ActivateAudienceSegments"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `scan_creative_compliance` | `creative_qa(action="scan_creative_compliance", params={"fileContentBase64": "...", "filename": "banner.png"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `validate_creative_ssl` | `creative_qa(action="validate_creative_ssl", params={"creativeId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `validate_creative_ssl_batch` | `creative_qa(action="validate_creative_ssl_batch", params={"creativeIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `audit_creative_tracking` | `creative_qa(action="audit_creative_tracking", params={"creativeId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `audit_order_tracking` | `creative_qa(action="audit_order_tracking", params={"orderId": 123})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `validate_tag_snippet` | `creative_qa(action="validate_tag_snippet", params={"snippet": "<script>...</script>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `pre_archive_check` | `creative_qa(action="pre_archive_check", params={"resourceType": "order", "resourceId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_placements` | `placements(action="list_placements", params={"limit": 50, "offset": 0})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_placement` | `placements(action="create_placement", params={"name": "...", "description": "...", "adUnitIds": ["123"]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_placement` | `placements(action="update_placement", params={"placementId": "123", "name": "..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_placement` | `placements(action="archive_placement", params={"placementId": "123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_ad_units` | `targeting(action="list_ad_units", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `validate_fluid` | `targeting(action="validate_fluid", params={"adUnitIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_custom_targeting_keys` | `targeting(action="list_custom_targeting_keys", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_inventory_forecast` | `targeting(action="get_inventory_forecast", params={"adUnitIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_custom_targeting_key` | `targeting(action="create_custom_targeting_key", params={"name": "...", "displayName": "..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_custom_targeting_values` | `targeting(action="create_custom_targeting_values", params={"keyId": "123", "values": [{"name": "..."}]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_custom_targeting_key` | `targeting(action="update_custom_targeting_key", params={"keyId": "123", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `delete_custom_targeting_key` | `targeting(action="delete_custom_targeting_key", params={"keyId": "123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_custom_targeting_value` | `targeting(action="update_custom_targeting_value", params={"valueId": "123", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `perform_custom_targeting_value_action` | `targeting(action="perform_custom_targeting_value_action", params={"valueIds": [123], "actionType": "ActivateCustomTargetingValues"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `search_ad_units` | `targeting(action="search_ad_units", params={"q": "home"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_ad_unit` | `targeting(action="update_ad_unit", params={"adUnitId": "123", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_ad_unit` | `targeting(action="archive_ad_unit", params={"adUnitId": "123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_custom_targeting_values` | `targeting(action="get_custom_targeting_values", params={"keyId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `search_custom_targeting` | `targeting(action="search_custom_targeting", params={"q": "hb"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_available_countries` | `targeting(action="get_available_countries", params={"q": "France"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_available_languages` | `targeting(action="get_available_languages", params={"q": "French"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_device_categories` | `targeting(action="get_device_categories", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_ad_unit_tree` | `inventory(action="get_ad_unit_tree", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `audit_inventory` | `inventory(action="audit_inventory", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_ad_units_batch` | `inventory(action="create_ad_units_batch", params={"units": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `generate_ads_json` | `inventory(action="generate_ads_json", params={"adUnitIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `generate_inventory_blueprint` | `inventory(action="generate_inventory_blueprint", params={"brand": "brand"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `push_inventory_blueprint` | `inventory(action="push_inventory_blueprint", params={"blueprintJson": "{...}"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_ad_units_by_ids` | `inventory(action="get_ad_units_by_ids", params={"adUnitIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `find_inactive_ad_units` | `inventory(action="find_inactive_ad_units", params={"days": 90})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_inactive_ad_units` | `inventory(action="archive_inactive_ad_units", params={"adUnitIds": ["123"]})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_ad_unit_sizes` | `inventory(action="list_ad_unit_sizes", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_credit_balance` | `billing(action="get_credit_balance", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_transactions` | `billing(action="list_transactions", params={"limit": 20})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_network_info` | `network(action="get_network_info", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `switch_network` | `network(action="switch_network", params={"networkCode": "12345678"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_accessible_networks` | `network(action="list_accessible_networks", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_network` | `network(action="update_network", params={"displayName": "New Network"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_gam_features` | `gam_features(action="get_gam_features", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `probe_gam_features` | `gam_features(action="probe_gam_features", params={})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `refresh_gam_features` | `gam_features(action="refresh_gam_features", params={})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `query_audit_log` | `audit(action="query_audit_log", params={"auditAction": "deploy_campaign", "resourceType": "campaign", "limit": 20})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_advertisers` | `companies(area="advertisers", action="list", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_advertiser` | `companies(area="advertisers", action="get", params={"advertiserId": "<id>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `find_advertiser` | `companies(area="advertisers", action="find", params={"name": "<name>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_advertiser` | `companies(area="advertisers", action="create", params={"name": "<name>"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_advertiser` | `companies(area="advertisers", action="update", params={"advertiserId": "<id>", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `find_or_create_advertiser` | `companies(area="advertisers", action="find_or_create", params={"name": "<name>"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_agencies` | `companies(area="agencies", action="list", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_agency` | `companies(area="agencies", action="create", params={"name": "<name>"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_agency` | `companies(area="agencies", action="update", params={"agencyId": "<id>", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_contacts` | `companies(area="contacts", action="list", params={"companyId": "<id>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_contact` | `companies(area="contacts", action="create", params={"name": "<n>", "email": "<e>", "companyId": <id>})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_contact` | `companies(area="contacts", action="update", params={"contactId": "<id>", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `check_delivery_status` | `reporting(action="check_delivery_status", params={"jobId": "<job>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `fetch_delivery_report` | `reporting(action="fetch_delivery_report", params={"jobId": "<job>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `run_custom_report` | `reporting(action="run_custom_report", params={"dimensions": [...], "metrics": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `fetch_inventory_report` | `reporting(action="fetch_inventory_report", params={"adUnitId": "<id>"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_report_result` | `reporting(action="get_report_result", params={"resultId": "<uuid>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `export_report_csv` | `reporting(action="export_report_csv", params={"dimensions": [...], "metrics": [...], "startDate": "YYYY-MM-DD", "endDate": "YYYY-MM-DD"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_report_dimensions` | `reporting(action="get_report_dimensions", params={"api": "all"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_report_metrics` | `reporting(action="get_report_metrics", params={"api": "all"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_report_date_ranges` | `reporting(action="get_report_date_ranges", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_standalone_forecast` | `reporting(action="get_standalone_forecast", params={"adUnitIds": ["123"], "startDate": "...", "endDate": "..."})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_delivery_forecast_by_line_item` | `reporting(action="get_delivery_forecast_by_line_item", params={"lineItemId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_prospective_delivery_forecast` | `reporting(action="get_prospective_delivery_forecast", params={"lineItems": [...]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_traffic_data` | `reporting(action="get_traffic_data", params={"adUnitIds": ["123"], "startDate": "...", "endDate": "..."})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_report_templates` | `reporting(action="list_report_templates", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `save_report_template` | `reporting(action="save_report_template", params={"dimensions": [...], "metrics": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `delete_report_template` | `reporting(action="delete_report_template", params={"templateId": "<id>"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `duplicate_report_template` | `reporting(action="duplicate_report_template", params={"templateId": "<id>", "name": "Copy"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_report_template` | `reporting(action="update_report_template", params={"templateId": "<id>", "name": "New name"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `run_report_from_template` | `reporting(action="run_report_from_template", params={"templateId": "<id>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_gam_reports` | `reporting(action="list_gam_reports", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_gam_report` | `reporting(action="get_gam_report", params={"reportId": "<id>"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_gam_report` | `reporting(action="create_gam_report", params={"dimensions": [...], "metrics": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_gam_report` | `reporting(action="update_gam_report", params={"reportId": "<id>", "displayName": "New name"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `delete_gam_report` | `reporting(action="delete_gam_report", params={"reportId": "<id>"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `run_gam_report` | `reporting(action="run_gam_report", params={"reportId": "<id>"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `run_ga_report` | `reporting(action="run_ga_report", params={"dimensions": [...], "metrics": [...]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_ga_dimensions` | `reporting(action="get_ga_dimensions", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_ga_metrics` | `reporting(action="get_ga_metrics", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `check_underdelivery_alerts` | `reporting(action="check_underdelivery_alerts", params={"threshold": 0.8})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `check_budget_alerts` | `reporting(action="check_budget_alerts", params={"thresholdPct": 95})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `generate_billing_report` | `reporting(action="generate_billing_report", params={"startDate": "YYYY-MM-DD", "endDate": "YYYY-MM-DD"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `bulk_upload_creatives` | `creative_assets(action="bulk_upload", params={"files": [...], "advertiserId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `upload_creative_from_url` | `creative_assets(action="upload_from_url", params={"assetUrl": "https://...", "name": "Creative", "advertiserId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `upload_and_associate_creative` | `creative_assets(action="upload_and_associate", params={"lineItemId": 123, "advertiserId": 456, "width": 300, "height": 250})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `upload_html5_zip_creative` | `creative_assets(action="upload_html5_zip", params={"advertiserId": 123, "zipBase64": "...", "zipFilename": "bundle.zip"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_image_creative` | `creative_assets(action="create_image", params={"advertiserId": 123, "name": "Creative", "width": 300, "height": 250})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_html5_creative` | `creative_assets(action="create_html5", params={"advertiserId": 123, "name": "Creative", "htmlSnippet": "<html>..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_html5_creative_from_files` | `creative_assets(action="create_html5_from_files", params={"advertiserId": 123, "name": "Creative", "width": 300, "height": 250})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_video_creative` | `creative_assets(action="create_video", params={"advertiserId": 123, "name": "Video", "vastRedirectUrl": "https://..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_audio_creative` | `creative_assets(action="create_audio", params={"advertiserId": 123, "name": "Audio", "vastRedirectUrl": "https://..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_vast_redirect_creative` | `creative_assets(action="create_vast_redirect", params={"advertiserId": 123, "name": "VAST", "vastXmlUrl": "https://..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_companion_creative` | `creative_assets(action="create_companion", params={"advertiserId": 123, "name": "Companion", "width": 300, "height": 250})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_third_party_creative` | `creative_assets(action="create_third_party", params={"advertiserId": 123, "name": "Third-party", "htmlSnippet": "<script>..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_classic_native_creative` | `creative_assets(action="create_classic_native", params={"advertiserId": 123, "name": "Native", "headline": "Headline", "clickUrl": "https://..."})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `compress_image_creative` | `creative_assets(action="compress_image", params={"fileContentBase64": "...", "filename": "banner.jpg"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_creatives_by_advertiser` | `creatives(action="list_creatives_by_advertiser", params={"advertiserId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_creatives_by_line_item` | `creatives(action="list_creatives_by_line_item", params={"lineItemId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_creatives_by_network` | `creatives(action="list_creatives_by_network", params={"q": "banner", "limit": 100})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_creative` | `creatives(action="get_creative", params={"creativeId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_creative` | `creatives(action="update_creative", params={"creativeId": 123, "updateFields": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_creative` | `creatives(action="archive_creative", params={"creativeId": 123})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `duplicate_creative` | `creatives(action="duplicate_creative", params={"creativeId": 123, "overrides": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_creative_preview_url` | `creatives(action="get_creative_preview_url", params={"lineItemId": "123", "creativeId": "456", "siteUrl": "https://example.com"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_native_style_preview_urls` | `creatives(action="get_native_style_preview_urls", params={"lineItemId": "123", "creativeId": "456", "siteUrl": "https://example.com"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_campaign_preview_links` | `creatives(action="get_campaign_preview_links", params={"liCreativePairs": [...], "defaultSiteUrl": "https://example.com"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_video_transcode_status` | `creatives(action="get_video_transcode_status", params={"creativeId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_native_styles` | `creatives(action="list_native_styles", params={"limit": 100})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_native_style` | `creatives(action="get_native_style", params={"nativeStyleId": 123})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_native_style` | `creatives(action="update_native_style", params={"nativeStyleId": 123, "name": "New name"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_native_style` | `creatives(action="archive_native_style", params={"nativeStyleId": 123})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `duplicate_native_style` | `creatives(action="duplicate_native_style", params={"nativeStyleId": 123, "overrides": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `ensure_classic_native_template` | `creatives(action="ensure_classic_native_template", params={"templateId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_creative_templates` | `creatives(action="list_creative_templates", params={"limit": 100})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_creative_template` | `creatives(action="get_creative_template", params={"templateId": 123})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `discover_native_formats` | `creatives(action="discover_native_formats", params={"limit": 100})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `associate_creative` | `creatives(action="associate_creative", params={"lineItemId": 123, "creativeId": 456})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `bulk_associate_creatives` | `creatives(action="bulk_associate_creatives", params={"lineItemIds": [123], "creativeIds": [456]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_licas_by_line_item` | `creatives(action="get_licas_by_line_item", params={"lineItemId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_licas_batch` | `creatives(action="get_licas_batch", params={"lineItemIds": ["123"]})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `deactivate_lica` | `creatives(action="deactivate_lica", params={"lineItemId": 123, "creativeId": 456})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_lica` | `creatives(action="update_lica", params={"lineItemId": 123, "creativeId": 456, "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `delete_licas` | `creatives(action="delete_licas", params={"lineItemId": "123", "creativeIds": [456]})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_line_item` | `line_items(action="get", params={"lineItemId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_line_items_by_order` | `line_items(action="list_by_order", params={"orderId": 123, "limit": 100, "offset": 0})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_line_item` | `line_items(action="update", params={"lineItemId": "123", "update": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_line_item_targeting` | `line_items(action="update_targeting", params={"lineItemId": "123", "targetingFields": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `duplicate_line_item` | `line_items(action="duplicate", params={"lineItemId": "123", "overrides": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `verify_line_item_setup` | `line_items(action="verify", params={"lineItemId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `approve_line_item` | `line_items(action="approve", params={"lineItemId": "123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_line_item` | `line_items(action="archive", params={"lineItemId": "123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_line_items` | `line_items(action="create_batch", params={"jobId": "job_123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `activate_line_items` | `line_items(action="activate_batch", params={"jobId": "job_123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `pause_line_items` | `line_items(action="pause_batch", params={"jobId": "job_123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_adexchange_line_item` | `line_items(action="create_adexchange", params={"orderId": 123, "adUnitIds": ["au"], "name": "ADX"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_open_bidding_line_item` | `line_items(action="create_open_bidding", params={"orderId": 123, "adUnitIds": ["au"], "name": "OB"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_preferred_deal_line_item` | `line_items(action="create_preferred_deal", params={"orderId": 123, "adUnitIds": ["au"], "name": "PD", "dealId": 456})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_private_deals` | `line_items(action="list_private_deals", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_delivering_orders` | `orders(action="list_delivering", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_order` | `orders(action="get", params={"orderId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_orders` | `orders(action="list", params={"q": "Campaign", "offset": 0, "limit": 50})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_order` | `orders(action="create", params={"name": "Campaign order", "advertiserId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_order` | `orders(action="archive", params={"orderId": "123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `approve_order` | `orders(action="approve", params={"orderId": "123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `verify_order_setup` | `orders(action="verify_setup", params={"orderId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_order` | `orders(action="update", params={"orderId": "123", "updates": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `find_or_create_order` | `orders(action="find_or_create", params={"advertiserId": "123", "orderName": "Campaign order"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_users` | `orders(action="list_users", params={"search": "Jane", "limit": 200, "offset": 0})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_roles` | `orders(action="list_roles", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_pmp_deals` | `deals(action="list_deals", params={"pageSize": 200})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_pmp_deal` | `deals(action="get_deal", params={"dealId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_pmp_deal` | `deals(action="create_deal", params={"privateAuctionId": "123", "buyerAccountId": "456", "floorPriceMicros": 5000000})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_pmp_deal` | `deals(action="update_deal", params={"dealId": "123", "floorPriceMicros": 6000000})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_private_auctions` | `deals(action="list_auctions", params={"pageSize": 200})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_private_auction` | `deals(action="get_auction", params={"auctionId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_private_auction` | `deals(action="create_auction", params={"displayName": "Auction"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_private_auction` | `deals(action="update_auction", params={"auctionId": "123", "displayName": "Auction 2"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_programmatic_buyers` | `deals(action="list_buyers", params={"pageSize": 200})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_programmatic_buyer` | `deals(action="get_buyer", params={"buyerId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_proposal` | `deals(action="get_proposal", params={"proposalId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_proposal` | `deals(action="create_proposal", params={"name": "PG", "advertiserCompanyId": 123, "buyerAccountId": 456, "primarySalespersonUserId": 789, "primaryTraffickerId": 101})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_proposal` | `deals(action="update_proposal", params={"proposalId": "123", "name": "PG 2"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_proposal` | `deals(action="archive_proposal", params={"proposalIds": ["123"]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `request_buyer_acceptance` | `deals(action="request_buyer_acceptance", params={"proposalIds": ["123"], "allowOverbook": false})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `reserve_proposal` | `deals(action="reserve_proposal", params={"proposalIds": ["123"], "allowOverbook": false})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `edit_proposal_for_negotiation` | `deals(action="edit_proposal_for_negotiation", params={"proposalIds": ["123"]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `terminate_proposal_negotiations` | `deals(action="terminate_proposal_negotiations", params={"proposalIds": ["123"]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `get_marketplace_comments` | `deals(action="get_marketplace_comments", params={"proposalId": "123", "limit": 200})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `list_proposal_line_items` | `deals(action="list_proposal_line_items", params={"proposalId": "123"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_proposal_line_items` | `deals(action="create_proposal_line_items", params={"proposalId": "123", "lineItems": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_proposal_line_items` | `deals(action="update_proposal_line_items", params={"lineItems": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_proposal_line_items` | `deals(action="archive_proposal_line_items", params={"pliIds": ["123"]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_makegoods` | `deals(action="create_makegoods", params={"makegoods": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_deal` | `deals(action="create_deal", params={"dealType": "pmp_auction", "pmpSpec": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `estimate_deal_cost` | `deals(action="estimate_deal_cost", params={"dealType": "pg_guaranteed", "lineItemsCount": 2})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `validate_adcp_request` | `deals(action="adcp_validate", params={"request": {...}})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `preview_media_buy_from_adcp` | `deals(action="adcp_preview", params={"request": {...}})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_media_buy_from_adcp` | `deals(action="adcp_create", params={"request": {...}})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `deploy_campaign` | `campaign(action="deploy", params={"jobId": "job_123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `update_campaign` | `campaign(action="update", params={"jobId": "job_123", "changes": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `ensure_template` | `campaign(action="ensure_template", params={"templateId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_native_style` | `campaign(action="create_native_style", params={"htmlSnippet": "<div></div>", "templateId": 123})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_line_items_batch` | `campaign(action="create_line_items_batch", params={"orderId": 123, "adUnitIds": ["au"], "goals": [1000], "startDateTime": "2026-01-01T00:00:00"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_licas` | `campaign(action="create_licas", params={"creativeId": 123, "lineItemIds": [456]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_display_campaign` | `campaign(action="create_display", params={"orderName": "Campaign", "advertiserId": 123, "adUnitIds": ["au"], "creatives": [...]})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `rollback_resources` | `campaign(action="rollback", params={"lineItemIds": [123]})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `pause_campaign` | `campaign(action="pause", params={"jobId": "job_123"})` | none | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `archive_campaign` | `campaign(action="archive", params={"jobId": "job_123"})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.4; use parent tool |
| `create_premium_rate` | `products(action="pricing_create_premium_rate", params={...})` | `destructiveHint` | `vNEXT` | SERVICE_UNAVAILABLE (PremiumRateService removed from GAM SOAP v202502+). Sunset in Story 68.8; use `products` parent for resource management |
| `update_premium_rate` | `products(action="pricing_update_premium_rate", params={...})` | `destructiveHint` | `vNEXT` | SERVICE_UNAVAILABLE (PremiumRateService removed from GAM SOAP v202502+). Sunset in Story 68.8; use `products` parent for resource management |
| `get_product` | `products(action="get", params={"productId": "..."})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `list_products` | `products(action="list", params={})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `create_product` | `products(action="create", params={...})` | none | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `update_product` | `products(action="update", params={...})` | none | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `archive_product` | `products(action="archive", params={...})` | `destructiveHint` | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `get_products_adcp` | `products(action="get_adcp", params={...})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `get_pricing_suggestion` | `products(action="pricing_suggestion", params={"productId": "..."})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use parent tool |
| `audit_skill_estimate_cost` | `audit_skill(action="estimate_cost", params={"scope": "full", "framework": "orbiads_baseline"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use `audit_skill` parent for cost audits |
| `export_authoring_audit` | `audit_skill(action="export_authoring", params={"scope": "full", "format": "csv"})` | `readOnlyHint` | `vNEXT` | Sunset in Story 68.8; use `audit_skill` parent for authoring audits |

Reference: Epic 68 MCP catalogue refactor in `_bmad-output/planning-artifacts/epic-68-mcp-catalogue-refactor.md`.
