{
  "checker": {
    "details": {
      "argv": [
        "<host-path>",
        "-m",
        "adloop"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "icons": [
          {
            "mimeType": "image/png",
            "sizes": [
              "512x512"
            ],
            "src": "https://getadloop.com/icon-512.png"
          },
          {
            "mimeType": "image/svg+xml",
            "sizes": [
              "any"
            ],
            "src": "https://getadloop.com/favicon.svg"
          }
        ],
        "name": "AdLoop",
        "version": "4.1.1",
        "websiteUrl": "https://getadloop.com"
      },
      "tools": [
        "health_check",
        "get_account_summaries",
        "run_ga4_report",
        "run_realtime_report",
        "get_tracking_events",
        "list_key_events",
        "list_ga4_dimensions_and_metrics",
        "list_gsc_sites",
        "run_gsc_report",
        "analyze_page_speed",
        "list_merchant_accounts",
        "get_merchant_feed_health",
        "get_merchant_product_issues",
        "list_accounts",
        "get_campaign_performance",
        "get_ad_performance",
        "get_keyword_performance",
        "get_search_terms",
        "get_negative_keywords",
        "get_negative_keyword_lists",
        "get_negative_keyword_list_keywords",
        "get_negative_keyword_list_campaigns",
        "get_recommendations",
        "get_pmax_performance",
        "get_pmax_assets",
        "get_detailed_asset_performance",
        "get_audience_performance",
        "get_demographic_targeting",
        "get_change_history",
        "analyze_campaign_conversions",
        "landing_page_analysis",
        "attribution_check",
        "audit_event_coverage",
        "list_gtm_accounts",
        "list_gtm_containers",
        "list_gtm_tags",
        "get_gtm_tag",
        "list_gtm_triggers",
        "get_gtm_trigger",
        "list_gtm_variables",
        "list_gtm_workspaces",
        "get_gtm_workspace_diff",
        "list_gtm_versions",
        "get_gtm_version",
        "get_gtm_version_diff",
        "draft_gtm_tag",
        "draft_gtm_trigger",
        "draft_gtm_variable",
        "draft_delete_gtm_entity",
        "draft_publish_gtm_workspace",
        "draft_rollback_gtm_version",
        "run_gaql",
        "get_audience_lists",
        "search_audience_segments",
        "get_audience_targeting",
        "draft_audience_attachment",
        "get_shopping_product_performance",
        "get_asset_group_signals",
        "draft_asset_group_signals",
        "draft_pmax_product_exclusions",
        "draft_asset_group_assets",
        "draft_shopping_campaign",
        "draft_campaign",
        "draft_ad_group",
        "update_campaign",
        "draft_responsive_search_ad",
        "update_responsive_search_ad",
        "draft_keywords",
        "get_custom_conversion_goals",
        "draft_custom_conversion_goal",
        "draft_update_custom_conversion_goal",
        "draft_assign_custom_conversion_goal",
        "draft_clear_custom_conversion_goal",
        "add_negative_keywords",
        "add_negative_locations",
        "propose_negative_keyword_list",
        "add_to_negative_keyword_list",
        "attach_shared_set_to_campaigns",
        "detach_shared_set_from_campaigns",
        "get_ai_max_settings",
        "draft_ai_max_settings",
        "draft_prepare_brand_exclusions",
        "draft_demographic_targeting",
        "update_ad_group",
        "draft_callouts",
        "draft_structured_snippets",
        "draft_image_assets",
        "pause_entity",
        "enable_entity",
        "remove_entity",
        "draft_sitelinks",
        "confirm_and_apply",
        "upload_images",
        "upload_conversion_csv",
        "list_uploads",
        "list_reddit_accounts",
        "list_reddit_funding_instruments",
        "get_reddit_campaigns",
        "get_reddit_ad_groups",
        "get_reddit_ads",
        "get_reddit_performance",
        "run_reddit_report",
        "get_reddit_pixels",
        "get_reddit_audiences",
        "search_reddit_targeting",
        "get_reddit_account_history",
        "estimate_reddit_ad_group",
        "pause_reddit_entity",
        "enable_reddit_entity",
        "remove_reddit_entity",
        "update_reddit_campaign",
        "update_reddit_ad_group",
        "update_reddit_ad",
        "draft_reddit_custom_audience",
        "draft_reddit_campaign",
        "draft_reddit_ad_group",
        "draft_reddit_ad",
        "draft_key_event",
        "draft_delete_key_event",
        "draft_create_conversion_action",
        "draft_update_conversion_action",
        "draft_remove_conversion_action",
        "draft_upload_call_conversions",
        "draft_upload_enhanced_conversions_for_leads",
        "validate_tracking",
        "generate_tracking_code",
        "estimate_budget",
        "discover_keywords",
        "suggest_brands",
        "check_brand_names",
        "get_brand_lists",
        "get_brand_list_brands",
        "get_brand_list_campaigns",
        "propose_brand_list",
        "add_to_brand_list",
        "remove_from_brand_list",
        "attach_brand_list_to_campaigns",
        "detach_brand_list_from_campaigns"
      ],
      "working": true
    },
    "status": "PASS"
  },
  "deviations": [
    "README 'From source' lists 'uv sync' and 'uv run adloop init'; uv was not present in the guest, so it was installed with pip first (--break-system-packages, --user).",
    "Did not run 'uv run adloop init' (interactive OAuth/Google Cloud setup, out of scope for smoke). The MCP server still starts and lists tools without credentials.",
    "Did not run the test suite (tests/ via pytest) per task instructions."
  ],
  "main_blocker": null,
  "operation": "Start the AdLoop stdio MCP server (README: 'From source' install, then MCP server via .venv/bin/python -m adloop per the Claude Code snippet) and call initialize + tools/list",
  "operation_scope": "Verified server startup and tool discovery only (138 tools, serverInfo AdLoop 4.1.1). Tool calls against Google Ads/GA4 were not exercised: they require OAuth via 'adloop init' (interactive, browser sign-in and a Google Cloud project), which is outside this smoke task.",
  "outcome": "working",
  "steps": [
    "git clone/pinned source already present in <host-path>",
    "Installed uv 0.13.1 via python3 -m pip install --user --break-system-packages uv (uv not preinstalled in guest)",
    "uv sync (README 'From source' install step; resolved and installed dependencies into .venv)",
    "Started MCP server: <host-path> -m adloop; sent initialize, notifications/initialized, tools/list; received 138 tools"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
