The AI command center for Google Ads, Analytics and Search Console.
Drift inferred · capture-to-capture
- HIGH code analysis flagged committed secret in kLOsk/adloop
transport stdio counts 67 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_negative_keywords
-
add_negative_locations
-
add_to_negative_keyword_list
-
analyze_campaign_conversions
-
analyze_page_speed
-
attach_shared_set_to_campaigns
-
attribution_check
-
audit_event_coverage
-
confirm_and_apply
-
detach_shared_set_from_campaigns
-
discover_keywords
-
draft_ad_group
-
draft_callouts
-
draft_campaign
-
draft_demographic_targeting
-
draft_image_assets
-
draft_key_event
-
draft_keywords
-
draft_responsive_search_ad
-
draft_sitelinks
-
draft_structured_snippets
-
enable_entity
-
estimate_budget
-
generate_tracking_code
-
get_account_summaries
-
get_ad_performance
-
get_asset_performance
-
get_audience_performance
-
get_campaign_performance
-
get_demographic_targeting
-
get_detailed_asset_performance
-
get_gtm_tag
-
get_gtm_trigger
-
get_gtm_version
-
get_gtm_workspace_diff
-
get_keyword_performance
-
get_merchant_feed_health
-
get_negative_keyword_list_campaigns
-
get_negative_keyword_list_keywords
-
get_negative_keyword_lists
-
get_negative_keywords
-
get_pmax_performance
-
get_recommendations
-
get_search_terms
-
get_tracking_events
-
health_check
-
landing_page_analysis
-
list_accounts
-
list_gsc_sites
-
list_gtm_accounts
-
list_gtm_containers
-
list_gtm_tags
-
list_gtm_triggers
-
list_gtm_variables
-
list_gtm_versions
-
list_gtm_workspaces
-
list_merchant_accounts
-
pause_entity
-
propose_negative_keyword_list
-
remove_entity
-
run_ga4_report
-
run_gaql
-
run_gsc_report
-
run_realtime_report
-
update_ad_group
-
update_campaign
-
validate_tracking
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 4f317ce · analyzer v33 · 1w ago
skills & prompt files 9
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/analyze-performance.md
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/budget-plan.md
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/create-ad.md
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/create-campaign.md
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/diagnose-tracking.md
- agent-rules kLOsk-adloop-4f317ce/.claude/commands/optimize-campaign.md
- agent-rules kLOsk-adloop-4f317ce/.cursor/rules/adloop.mdc
- agent-rules kLOsk-adloop-4f317ce/.cursor/rules/releasing.mdc
- agent-rules kLOsk-adloop-4f317ce/CLAUDE.md
danger signals3
- suspicious endpoint analytics.google.com (telemetry) kLOsk-adloop-4f317ce/src/adloop/cli.py :637
_print(" → https://analytics.google.com → Admin → Property Settings") - suspicious endpoint 169.254.169.254 (cloud metadata) kLOsk-adloop-4f317ce/tests/test_runtime.py :141
assert "non-public" in self._err("http://169.254.169.254/latest/meta-data") - suspicious endpoint 93.184.216.34 kLOsk-adloop-4f317ce/tests/test_runtime.py :150
assert self._err("https://93.184.216.34/") is None
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 63
filesystem 9
- fs (weak) kLOsk-adloop-4f317ce/scripts/sync-rules.py :21
import shutil - fs kLOsk-adloop-4f317ce/src/adloop/ads/write.py :11
from pathlib import Path - fs kLOsk-adloop-4f317ce/src/adloop/auth.py :15
from pathlib import Path - fs kLOsk-adloop-4f317ce/src/adloop/cli.py :8
from pathlib import Path - fs kLOsk-adloop-4f317ce/src/adloop/config.py :7
from pathlib import Path - fs kLOsk-adloop-4f317ce/src/adloop/rules_install.py :42
import shutil - fs kLOsk-adloop-4f317ce/src/adloop/safety/audit.py :13
from pathlib import Path - fs (weak) kLOsk-adloop-4f317ce/tests/test_ads_write.py :2469
def open(self, req, timeout=None): - fs (weak) kLOsk-adloop-4f317ce/tests/test_rules_install.py :6
from pathlib import Path
network 7
- net kLOsk-adloop-4f317ce/src/adloop/ads/forecast.py :266
import requests - net kLOsk-adloop-4f317ce/src/adloop/ads/write.py :215
import socket - net kLOsk-adloop-4f317ce/src/adloop/crossref.py :7
from urllib.parse import urlparse - net kLOsk-adloop-4f317ce/src/adloop/pagespeed.py :29
import requests - net (weak) kLOsk-adloop-4f317ce/tests/test_forecast.py :679
import requests as _requests - net (weak) kLOsk-adloop-4f317ce/tests/test_pagespeed.py :75
with patch("requests.get", _fake_get(_psi_payload())) as fake: - net (weak) kLOsk-adloop-4f317ce/tests/test_runtime.py :163
import socket as socket_mod
tool registrations 67
- health_check kLOsk-adloop-4f317ce/src/adloop/server.py :288
- get_account_summaries kLOsk-adloop-4f317ce/src/adloop/server.py :375
- run_ga4_report kLOsk-adloop-4f317ce/src/adloop/server.py :388
- run_realtime_report kLOsk-adloop-4f317ce/src/adloop/server.py :419
- get_tracking_events kLOsk-adloop-4f317ce/src/adloop/server.py :442
- list_gsc_sites kLOsk-adloop-4f317ce/src/adloop/server.py :469
- run_gsc_report kLOsk-adloop-4f317ce/src/adloop/server.py :483
- analyze_page_speed kLOsk-adloop-4f317ce/src/adloop/server.py :533
- list_merchant_accounts kLOsk-adloop-4f317ce/src/adloop/server.py :552
- get_merchant_feed_health kLOsk-adloop-4f317ce/src/adloop/server.py :565
- list_accounts kLOsk-adloop-4f317ce/src/adloop/server.py :584
- get_campaign_performance kLOsk-adloop-4f317ce/src/adloop/server.py :603
- get_ad_performance kLOsk-adloop-4f317ce/src/adloop/server.py :632
- get_keyword_performance kLOsk-adloop-4f317ce/src/adloop/server.py :660
- get_search_terms kLOsk-adloop-4f317ce/src/adloop/server.py :688
- get_negative_keywords kLOsk-adloop-4f317ce/src/adloop/server.py :716
- get_negative_keyword_lists kLOsk-adloop-4f317ce/src/adloop/server.py :736
- get_negative_keyword_list_keywords kLOsk-adloop-4f317ce/src/adloop/server.py :752
- get_negative_keyword_list_campaigns kLOsk-adloop-4f317ce/src/adloop/server.py :771
- get_recommendations kLOsk-adloop-4f317ce/src/adloop/server.py :796
- get_pmax_performance kLOsk-adloop-4f317ce/src/adloop/server.py :825
- get_asset_performance kLOsk-adloop-4f317ce/src/adloop/server.py :856
- get_detailed_asset_performance kLOsk-adloop-4f317ce/src/adloop/server.py :885
- get_audience_performance kLOsk-adloop-4f317ce/src/adloop/server.py :908
- get_demographic_targeting kLOsk-adloop-4f317ce/src/adloop/server.py :939
- analyze_campaign_conversions kLOsk-adloop-4f317ce/src/adloop/server.py :972
- landing_page_analysis kLOsk-adloop-4f317ce/src/adloop/server.py :1002
- attribution_check kLOsk-adloop-4f317ce/src/adloop/server.py :1028
- audit_event_coverage kLOsk-adloop-4f317ce/src/adloop/server.py :1059
- list_gtm_accounts kLOsk-adloop-4f317ce/src/adloop/server.py :1112
- list_gtm_containers kLOsk-adloop-4f317ce/src/adloop/server.py :1127
- list_gtm_tags kLOsk-adloop-4f317ce/src/adloop/server.py :1147
- get_gtm_tag kLOsk-adloop-4f317ce/src/adloop/server.py :1167
- list_gtm_triggers kLOsk-adloop-4f317ce/src/adloop/server.py :1192
- get_gtm_trigger kLOsk-adloop-4f317ce/src/adloop/server.py :1212
- list_gtm_variables kLOsk-adloop-4f317ce/src/adloop/server.py :1237
- list_gtm_workspaces kLOsk-adloop-4f317ce/src/adloop/server.py :1259
- get_gtm_workspace_diff kLOsk-adloop-4f317ce/src/adloop/server.py :1279
- list_gtm_versions kLOsk-adloop-4f317ce/src/adloop/server.py :1306
- get_gtm_version kLOsk-adloop-4f317ce/src/adloop/server.py :1332
- run_gaql kLOsk-adloop-4f317ce/src/adloop/server.py :1357
- draft_campaign kLOsk-adloop-4f317ce/src/adloop/server.py :1386
- draft_ad_group kLOsk-adloop-4f317ce/src/adloop/server.py :1453
- update_campaign kLOsk-adloop-4f317ce/src/adloop/server.py :1486
- draft_responsive_search_ad kLOsk-adloop-4f317ce/src/adloop/server.py :1543
- draft_keywords kLOsk-adloop-4f317ce/src/adloop/server.py :1586
- add_negative_keywords kLOsk-adloop-4f317ce/src/adloop/server.py :1608
- add_negative_locations kLOsk-adloop-4f317ce/src/adloop/server.py :1633
- propose_negative_keyword_list kLOsk-adloop-4f317ce/src/adloop/server.py :1657
- add_to_negative_keyword_list kLOsk-adloop-4f317ce/src/adloop/server.py :1685
- attach_shared_set_to_campaigns kLOsk-adloop-4f317ce/src/adloop/server.py :1718
- detach_shared_set_from_campaigns kLOsk-adloop-4f317ce/src/adloop/server.py :1749
- draft_demographic_targeting kLOsk-adloop-4f317ce/src/adloop/server.py :1780
- update_ad_group kLOsk-adloop-4f317ce/src/adloop/server.py :1832
- draft_callouts kLOsk-adloop-4f317ce/src/adloop/server.py :1852
- draft_structured_snippets kLOsk-adloop-4f317ce/src/adloop/server.py :1870
- draft_image_assets kLOsk-adloop-4f317ce/src/adloop/server.py :1888
- pause_entity kLOsk-adloop-4f317ce/src/adloop/server.py :1906
- enable_entity kLOsk-adloop-4f317ce/src/adloop/server.py :1934
- remove_entity kLOsk-adloop-4f317ce/src/adloop/server.py :1962
- draft_sitelinks kLOsk-adloop-4f317ce/src/adloop/server.py :1998
- confirm_and_apply kLOsk-adloop-4f317ce/src/adloop/server.py :2031
- draft_key_event kLOsk-adloop-4f317ce/src/adloop/server.py :2068
- validate_tracking kLOsk-adloop-4f317ce/src/adloop/server.py :2093
- generate_tracking_code kLOsk-adloop-4f317ce/src/adloop/server.py :2121
- estimate_budget kLOsk-adloop-4f317ce/src/adloop/server.py :2156
- discover_keywords kLOsk-adloop-4f317ce/src/adloop/server.py :2193
declared dependencies 9
- fastmcp@>=3.0.0
- google-ads@>=31.1.0
- google-analytics-data@>=0.20.0
- google-analytics-admin@>=0.27.0
- google-api-python-client@>=2.100.0
- google-auth-oauthlib@>=1.0.0
- pyyaml@>=6.0
- pytest@>=8.0
- pytest-asyncio@>=0.23
cursor-plugin 1
- opaque (low) kLOsk-adloop-4f317ce/.cursor/rules/adloop.mdc
bundled .cursor/ plugin descriptor (kLOsk-adloop-4f317ce/.cursor/rules/adloop.mdc) — presence-detected; review the descriptor