57-tool supervised Meta Ads MCP server for Claude Code. Open-core: full CRUD, multi-asset ads, targeting, diagnostics, safety gates. Premium adds 41 tools: optimization engine, vault intelligence, copy generation.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 15
- fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/identity.py :275
with open(_ACCOUNTS_YAML, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :82
with open(normalized, "rb") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/setup.py :11
from pathlib import Path - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/vault_reader.py :71
with open(path, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/video.py :137
with open(normalized_path, "rb") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/engine/asset_gate.py :248
with open(path, 'rb') as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/engine/storage.py :47
with open(registry_path, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/safety/duplicate_checker.py :101
with open(fpath, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/safety/file_lock.py :39
fd = os.open(lock_path, os.O_CREAT | os.O_EXCL | os.O_WRONLY) - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/safety/rollback.py :85
with open(filepath, "w", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/safety/tiers.py :53
with open(config_path, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/validators/creative.py :60
with open(manifest_ref, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/validators/operational.py :11
from pathlib import Path - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/validators/runner.py :257
with open(manifest_ref, "r", encoding="utf-8") as f: - fs brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/validators/tracking.py :41
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
network 4
- net brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/api.py :20
import httpx - net brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/images.py :10
import httpx - net brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :16
import httpx - net brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/video.py :19
import httpx
secrets 3
- secrets brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/api.py :160
self._access_token = os.environ.get("META_ACCESS_TOKEN") - secrets brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/auth.py :18
token = os.environ.get("META_ACCESS_TOKEN") - secrets brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/setup.py :41
token = os.environ.get("META_ACCESS_TOKEN", "")
tool registrations 57
- check_token_status brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :22
- get_ad_accounts brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :33
- get_account_info brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :100
- get_account_pages brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :155
- get_instagram_identities brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :186
- discover_all_accounts brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/accounts.py :227
- create_multi_asset_ad brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ad_builder.py :154
- get_ads brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ads.py :226
- get_ad_details brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ads.py :294
- create_ad_from_manifest brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ads.py :333
- update_ad brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ads.py :942
- get_adsets brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/adsets.py :70
- get_adset_details brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/adsets.py :156
- create_adset brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/adsets.py :226
- update_adset brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/adsets.py :861
- list_custom_audiences brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/audiences.py :152
- get_campaigns brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/campaigns.py :57
- get_campaign_details brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/campaigns.py :145
- create_campaign brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/campaigns.py :191
- update_campaign brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/campaigns.py :473
- get_catalog_info brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :28
- get_catalog_products brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :85
- get_product_sets brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :169
- validate_catalog_connections brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :203
- create_product_set brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :468
- update_product_set brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/catalogs.py :518
- get_ad_creatives brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/creatives.py :210
- get_creative_details brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/creatives.py :294
- create_ad_creative brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/creatives.py :381
- update_ad_creative brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/creatives.py :597
- duplicate_campaign brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/duplication.py :39
- duplicate_adset brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/duplication.py :506
- upload_ad_image brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/images.py :21
- get_ad_image brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/images.py :177
- get_insights brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/insights.py :326
- get_bulk_insights brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/insights.py :472
- generate_names brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/naming.py :146
- upload_video_resumable brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :29
- bulk_rename_objects brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :129
- delete_campaign_structure brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :169
- diagnose_pixel_on_site brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :270
- resolve_page_identity brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/ops.py :365
- get_pixel_info brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/pixels.py :186
- get_pixel_events brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/pixels.py :212
- get_event_stats brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/pixels.py :260
- send_test_event brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/pixels.py :359
- run_tracking_diagnostic brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/pixels.py :437
- run_setup_check brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/setup.py :20
- search_interests brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :38
- search_behaviors brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :99
- search_geo_locations brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :154
- get_interest_suggestions brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :222
- search_demographics brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :278
- estimate_audience_size brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/targeting.py :336
- read_client_vault brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/vault_reader.py :128
- upload_video_asset brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/video.py :82
- poll_video_processing brandu-mos-konquest-meta-ads-mcp-762c224/meta_ads_mcp/core/video.py :227
declared dependencies 1
- facebook-business@>=22.0.0