github Python re-analysis due

kLOsk/adloop

github

The AI command center for Google Ads, Analytics and Search Console.

maintainer
kLOsk
license
MIT
first seen
2026-06-01
last seen
2026-09-04
releases · 30d
1
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret in kLOsk/adloop
capabilities 67 tools
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
skills & danger signals github-tarball
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

danger signals3

code evidence vv0.13.0 · github-tarball
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