Token导航 LogoToken导航TokenDH.com
Meta Ads MCP Server logo
运维云端stdio官方级别未说明来源级核验

Meta Ads MCP Server

MCP Server

一个完整的Meta广告管理服务器,用于创建、管理和分析Facebook/Instagram广告活动,支持广告账户管理、广告集创建、广告创意分析和性能报告生成。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
广告管理PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mikdeangelis

提供方

mikdeangelis

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

🚀 Meta Ads MCP Server

![Python 3.10+](https://www.python.org/downloads/) ![Meta Marketing API](https://developers.facebook.com/docs/marketing-api/) ![MCP](https://modelcontextprotocol.io/) ![License: MIT](LICENSE)

Server MCP completo per gestire campagne pubblicitarie Facebook/Instagram

Quick StartTools DisponibiliConfigurazioneEsempi


✨ Caratteristiche

📊 Analisi & Reporting

  • 📈 Metriche performance complete
  • 🎯 Report avanzati con breakdown
  • 💰 Insights su spend, ROI, ROAS
  • 📅 Date personalizzate o preset

🎨 Gestione Campagne

  • ✏️ Crea campagne e ad set
  • 🎯 Modifica targeting e budget
  • 📝 Analizza creative e annunci
  • 🔄 Gestisci stato (attiva/pausa)

🔥 Funzionalità Principali

graph LR
    A[Account] --> B[Campagne]
    B --> C[Ad Set]
    C --> D[Annunci]
    D --> E[Creative]

    B -.-> F[Insights]
    C -.-> F
    D -.-> F
    F --> G[Report]
  • 10 Tools Completi - Dalla creazione alla reportistica
  • System User Compatible - Funziona con token permanenti
  • Error Handling Avanzato - Messaggi di errore dettagliati Meta API
  • Date Flessibili - Preset o range personalizzati (fino a 37 mesi)
  • Validazione Automatica - Controlli Pydantic per parametri corretti

⚡ Quick Start

# 1️⃣ Clona il repository
git clone https://github.com/mikdeangelis/mcp-meta-ads.git
cd mcp-meta-ads

# 2️⃣ Crea ambiente virtuale
python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 3️⃣ Installa dipendenze
pip install -r requirements.txt

# 4️⃣ Configura token (vedi guida sotto)
export META_ACCESS_TOKEN="your_token_here"

# 5️⃣ Aggiungi al tuo MCP client
# Vedi sezione "Configurazione" per istruzioni specifiche
💡 Primo utilizzo? Segui la guida completa per ottenere il token più sotto.

🛠️ Tools Disponibili

📋 Gestione Risorse

ToolDescrizioneEsempio
meta_ads_list_accountsLista tutti gli account pubblicitari_"Mostrami i miei account Meta"_
meta_ads_list_campaignsLista campagne di un account_"Campagne dell'account act_123456"_
meta_ads_list_adsetsLista ad set di una campagna_"Ad set della campagna 789"_
meta_ads_list_adsLista annunci di un ad set_"Annunci dell'ad set 456"_

✏️ Creazione & Modifica

ToolDescrizioneParametri Chiave
meta_ads_create_campaignCrea nuova campagnaobjective, daily_budget, special_ad_categories
meta_ads_create_adsetCrea nuovo ad settargeting, bid_amount, optimization_goal ⚠️
meta_ads_update_adset_targetingModifica targetingage_min, age_max, genders
meta_ads_update_adset_budgetModifica budgetdaily_budget
meta_ads_update_adset_statusAttiva/pausa ad setstatus (ACTIVE/PAUSED)
⚠️ Nota: create_adset richiede bid_amount per LINK_CLICKS e targeting_automation.advantage_audience (0 o 1)

📊 Analytics & Insights

ToolDescrizioneDettagli
meta_ads_get_insightsMetriche performanceImpressions, clicks, spend, CTR, CPC, conversions
meta_ads_get_creativeDettagli creativeTesti, immagini, link, CTA
meta_ads_generate_reportReport con breakdownEtà, genere, paese, placement

🔑 Ottenere il Token Meta

Metodo Rapido: Graph API Explorer

📖 Clicca per espandere la guida passo-passo

1️⃣ Crea App Meta Developer

  1. Vai su Facebook Developers
  2. My AppsCreate AppBusiness
  3. Completa i dettagli dell'app

2️⃣ Aggiungi Marketing API

  1. Dashboard app → trova Marketing API
  2. Clicca Set Up
  3. La Marketing API apparirà nel menu

3️⃣ Genera Token

Opzione A: Graph API Explorer (raccomandato)

  1. Vai su Graph API Explorer
  2. Seleziona la tua app
  3. Get User Access Token → Seleziona permessi:

- ✅ ads_management (gestione completa) - ✅ ads_read (lettura) - ✅ read_insights (metriche)

  1. Generate Access Token → Autorizza → Copia token

Opzione B: System User Token (non scade)

Per produzione, usa System User nel Business Manager.

4️⃣ Converti in Long-Lived Token (60 giorni)

curl -X GET "https://graph.facebook.com/v21.0/oauth/access_token" \
  -d "grant_type=fb_exchange_token" \
  -d "client_id=YOUR_APP_ID" \
  -d "client_secret=YOUR_APP_SECRET" \
  -d "fb_exchange_token=YOUR_SHORT_LIVED_TOKEN"

Sostituisci:

  • YOUR_APP_ID: Dashboard → Settings → Basic
  • YOUR_APP_SECRET: Dashboard → Settings → Basic
  • YOUR_SHORT_LIVED_TOKEN: Token generato al punto 3

5️⃣ Verifica Token

curl "https://graph.facebook.com/v21.0/me?access_token=YOUR_TOKEN"

Dovresti vedere i dettagli del tuo profilo Facebook.

Configurazione Token

Opzione 1: File .env (raccomandato)

Crea .env nella directory del progetto:

META_ACCESS_TOKEN=your_token_here

Opzione 2: Variabile d'ambiente

# Linux/macOS
export META_ACCESS_TOKEN="your_token_here"

# Windows PowerShell
$env:META_ACCESS_TOKEN="your_token_here"

# Persistente: aggiungi a ~/.bashrc o ~/.zshrc
echo 'export META_ACCESS_TOKEN="your_token_here"' >> ~/.bashrc
source ~/.bashrc

⚙️ Configurazione

Per Claude Code

Metodo Automatico

claude mcp add meta-ads \
  --command "$(pwd)/.venv/bin/python" \
  --arg "$(pwd)/meta_ads_mcp.py"

Metodo Manuale

Modifica ~/.config/claude-code/config.json:

{
  "mcpServers": {
    "meta-ads": {
      "command": "/path/to/mcp-meta-ads/.venv/bin/python",
      "args": ["/path/to/mcp-meta-ads/meta_ads_mcp.py"],
      "env": {
        "META_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

Per Claude Desktop

Modifica claude_desktop_config.json:

macOS/Linux: ~/.config/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "meta-ads": {
      "command": "python",
      "args": ["/path/to/mcp-meta-ads/meta_ads_mcp.py"],
      "env": {
        "META_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

💡 Esempi Pratici

🎯 Creare una Campagna Completa

// 1. Crea campagna
meta_ads_create_campaign({
  "account_id": "act_123456789",
  "name": "Estate 2025 - Promozione",
  "objective": "OUTCOME_SALES",
  "daily_budget": 5000,  // €50/giorno
  "status": "PAUSED"
})
// ✅ Campagna creata: ID 120236574531090062

// 2. Crea ad set con targeting
meta_ads_create_adset({
  "campaign_id": "120236574531090062",
  "name": "Italia 25-55 anni",
  "optimization_goal": "LINK_CLICKS",
  "billing_event": "LINK_CLICKS",
  "bid_amount": 150,  // €1.50 per click
  "targeting": {
    "geo_locations": {"countries": ["IT"]},
    "age_min": 25,
    "age_max": 55,
    "targeting_automation": {
      "advantage_audience": 0  // ⚠️ OBBLIGATORIO
    }
  },
  "status": "PAUSED"
  // ⚠️ NON specificare daily_budget se campagna ha già budget
})
// ✅ Ad set creato: ID 120236575096660062

📊 Analisi Performance

// Metriche ultimi 30 giorni
meta_ads_get_insights({
  "object_id": "act_123456789",
  "level": "campaign",
  "date_preset": "last_30d"
})

// Metriche con date personalizzate
meta_ads_get_insights({
  "object_id": "120236574531090062",
  "level": "campaign",
  "since": "2025-01-01",
  "until": "2025-01-31"
})

// Report breakdown per età e genere
meta_ads_generate_report({
  "object_id": "120236575096660062",
  "breakdowns": ["age", "gender"],
  "date_preset": "last_7d"
})

🎨 Analisi Creative

// Dettagli creative di un annuncio
meta_ads_get_creative({
  "ad_id": "123456789"
})
// Restituisce: titolo, body, link, CTA, immagini/video

🔄 Gestione Stato e Budget

// Modifica targeting
meta_ads_update_adset_targeting({
  "adset_id": "120236575096660062",
  "age_min": 30,
  "age_max": 50,
  "genders": [2]  // Solo donne
})

// Aumenta budget
meta_ads_update_adset_budget({
  "adset_id": "120236575096660062",
  "daily_budget": 3000  // €30/giorno
})

// Attiva ad set
meta_ads_update_adset_status({
  "adset_id": "120236575096660062",
  "status": "ACTIVE"
})

📐 Struttura Meta Ads

Account Pubblicitario (act_XXXXX)
│
├── 📁 Campagna (Campaign)
│   ├── 🎯 Obiettivo: OUTCOME_SALES, OUTCOME_TRAFFIC, ecc.
│   ├── 💰 Budget: Giornaliero o Lifetime
│   ├── ⏱️ Schedule: Data inizio/fine
│   │
│   └── 📦 Ad Set
│       ├── 🎯 Targeting
│       │   ├── Geo: Paesi, regioni, città
│       │   ├── Demografia: Età, genere
│       │   └── Advantage Audience: 0 o 1
│       ├── 💵 Bid Amount (per alcuni goals)
│       ├── 📊 Optimization Goal: LINK_CLICKS, CONVERSIONS, ecc.
│       │
│       └── 🎨 Annuncio (Ad)
│           └── 🖼️ Creative
│               ├── 📝 Headline & Body
│               ├── 🖼️ Immagine/Video
│               ├── 🔗 Link URL
│               └── 🎬 Call-to-Action

⚠️ Requisiti Importanti

Per meta_ads_create_adset

ParametroObbligatorio?Note
targeting.geo_locations✅ SìAlmeno paesi, regioni o città
targeting.targeting_automation.advantage_audience✅ Sì0 (disabilitato) o 1 (abilitato)
bid_amount⚠️ DipendeOBBLIGATORIO per LINK_CLICKS, LANDING_PAGE_VIEWS, ecc.
daily_budget/lifetime_budget⚠️ DipendeNON usare se campagna ha già budget

Budget: Regole

  • Budget solo campagna: OK
  • Budget solo ad set: OK (se campagna senza budget)
  • Budget campagna + budget ad set: ERRORE (subcode 1885621)

🐛 Troubleshooting

❌ Errore: "META_ACCESS_TOKEN non trovato"

Causa: Variabile d'ambiente non configurata

Soluzione:

export META_ACCESS_TOKEN="your_token_here"
# Oppure crea file .env nella directory del progetto

❌ Errore: "Token non valido o scaduto"

Causa: Token scaduto (short-lived durano poche ore)

Soluzione:

  1. Genera nuovo token da Graph API Explorer
  2. Converti in long-lived (60 giorni)
  3. Oppure usa System User token (permanente)

❌ Errore: "Permessi insufficienti"

Causa: Token senza permessi necessari

Soluzione: Rigenera token includendo:

  • ads_management (gestione completa)
  • ads_read (minimo per lettura)
  • read_insights (per metriche)

❌ Errore: "Invalid parameter (subcode 1815857)"

Causa: Manca bid_amount per LINK_CLICKS

Soluzione: Aggiungi bid_amount in centesimi (es. 100 = €1.00)

❌ Errore: "Cannot set budget (subcode 1885621)"

Causa: Campagna ha già budget, non puoi specificarlo anche nell'ad set

Soluzione: Ometti daily_budget/lifetime_budget dall'ad set

❌ Errore: "Advantage audience required (subcode 1870227)"

Causa: Manca targeting_automation.advantage_audience

Soluzione: Aggiungi al targeting:

"targeting_automation": {
  "advantage_audience": 0  // o 1
}

❌ Errore: "Rate limit raggiunto (429)"

Causa: Troppe richieste API in poco tempo

Soluzione: Attendi 5-10 minuti prima di riprovare


📚 Risorse Utili


🤝 Contributi

Contributi, issues e feature requests sono benvenuti!

  1. Fork del progetto
  2. Crea il tuo feature branch (git checkout -b feature/AmazingFeature)
  3. Commit delle modifiche (git commit -m 'Add some AmazingFeature')
  4. Push al branch (git push origin feature/AmazingFeature)
  5. Apri una Pull Request

📄 Licenza

Questo progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per i dettagli.


🙏 Riconoscimenti


⭐ Se questo progetto ti è utile, lascia una stella su GitHub!

目录标签

目录标签

广告管理PythonClaude本地部署MetaAPI广告分析广告投放营销自动化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP