mcp

Pilot AEO/GEO from Claude: bulk audits, server-side fixes via WordPress plugin, AI citations.

使うべきか

品質と安全性

A
説明の品質
96%
スキーマの完全性
91%
命名の品質
80%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'ads_device_performance' description lacks action verbads_device_performance 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~6,638トークン数(ツール定義)
~1012 B一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 5.19%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "mcp": {
      "url": "https://aeotool.io/api/mcp"
    }
  }
}

リモートエンドポイント

https://aeotool.io/api/mcpstreamable-http

できること

ツール一覧

ツール(36)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢aeo_list_sites

Liste les sites WordPress connectés au compte (plugin Everlange Connect) : domaine, statut, modules actifs, version du bundle.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
⚪aeo_audit(url)

Lance un audit AEO/GEO d’une URL (asynchrone, ~2 min) et renvoie immédiatement l’audit_id. Suivre avec aeo_audit_status jusqu’à completed, puis aeo_report / aeo_improvements. Coûte 50 GTO, débités à la complétion. NE PAS relancer le même audit pendant qu’un run est en cours.

入力スキーマ

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL ou domaine à auditer"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}
🟢aeo_audit_status(audit_id)

Statut d’un audit lancé par aeo_audit : pending/processing → completed (avec le score) ou failed. Gratuit : poll toutes les 20-30 s.

入力スキーマ

{
  "type": "object",
  "properties": {
    "audit_id": {
      "type": "string",
      "description": "id de l’audit (renvoyé par aeo_audit)"
    }
  },
  "required": [
    "audit_id"
  ],
  "additionalProperties": false
}
⚪aeo_batch_audit(urls)

Lance l’audit de plusieurs sites en une commande (le « killer agence »), en asynchrone : renvoie immédiatement un audit_id par URL. Suivre chaque id avec aeo_audit_status. Coûte 50 GTO par site, débités à la complétion.

入力スキーマ

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Liste d’URLs/domaines à auditer"
    }
  },
  "required": [
    "urls"
  ],
  "additionalProperties": false
}
🟢aeo_report(audit_id)

Renvoie le détail complet d’un audit existant (par audit_id) : score global, scores par catégorie et tous les critères (score + recommandation). Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "audit_id": {
      "type": "string",
      "description": "id de l’audit (renvoyé par aeo_audit)"
    }
  },
  "required": [
    "audit_id"
  ],
  "additionalProperties": false
}
🟢aeo_improvements(audit_id, domain)

La CHECKLIST d’améliorations d’un audit : groupées par niveau (1=auto-applicable plugin, 2=générable, 3=rebuild/lead), triées par gain projeté. Fournit les ids à passer à aeo_apply. Passer audit_id OU domain (= dernier audit terminé du domaine). Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "audit_id": {
      "type": "string",
      "description": "id de l’audit (optionnel si domain fourni)"
    },
    "domain": {
      "type": "string",
      "description": "domaine : utilise le dernier audit terminé (alternative à audit_id)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢aeo_generate(type, url, title, description, contact, ...)

Génère (sans appliquer) un artefact AEO, déterministe et gratuit. Types : jsonld, robots, llms, meta, faq (params faqs[]), ai-txt, humans-txt, security-txt, sitemap. jsonld/robots/llms/meta/faq sont applicables (cf. aeo_apply) ; ai-txt/humans-txt/security-txt/sitemap sont à publier par l’agence.

入力スキーマ

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "jsonld",
        "robots",
        "llms",
        "meta",
        "faq",
        "ai-txt",
        "humans-txt",
        "security-txt",
        "sitemap"
      ],
      "description": "type d’artefact"
    },
    "url": {
      "type": "string",
      "description": "URL ou domaine cible"
    },
    "title": {
      "type": "string",
      "description": "meta : titre (optionnel)"
    },
    "description": {
      "type": "string",
      "description": "meta : description (optionnel)"
    },
    "contact": {
      "type": "string",
      "description": "security-txt/ai-txt : email de contact (optionnel)"
    },
    "faqs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "a": {
            "type": "string"
          }
        }
      },
      "description": "faq : questions/réponses [{q,a}]"
    },
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "sitemap : chemins à inclure (optionnel)"
    },
    "language": {
      "type": "string",
      "description": "security-txt : langues préférées / humans-txt : langue (optionnel)"
    },
    "team": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "description": "humans-txt : équipe [{name,role}] (optionnel)"
    },
    "tech": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "humans-txt : technologies (optionnel)"
    },
    "disclosure": {
      "type": "string",
      "description": "ai-txt : mention de divulgation de contenu IA (optionnel)"
    },
    "aiCrawlingPolicy": {
      "type": "string",
      "description": "ai-txt : politique de crawl IA (défaut allow-with-attribution)"
    },
    "policy": {
      "type": "string",
      "description": "security-txt : URL de la politique de sécurité (optionnel)"
    }
  },
  "required": [
    "type",
    "url"
  ],
  "additionalProperties": false
}
🟢aeo_apply(domain, improvement_ids, faqs, title, description)

APPLIQUE la sélection d’améliorations niveau 1 (jsonld/robots/llms/meta) sur un site connecté : génère + archive les correctifs et bump le bundle → le plugin les injecte au prochain sync. Optionnel : faqs[] (ajoute un FAQPage au JSON-LD), title/description (meta). Le site doit être connecté (aeo_list_sites).

入力スキーマ

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "domaine du site connecté"
    },
    "improvement_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ids des améliorations (cf. aeo_improvements.autoApplicableIds)"
    },
    "faqs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "a": {
            "type": "string"
          }
        }
      },
      "description": "optionnel : Q&A pour le FAQPage (jsonld)"
    },
    "title": {
      "type": "string",
      "description": "optionnel : titre meta/OG"
    },
    "description": {
      "type": "string",
      "description": "optionnel : description meta/OG"
    }
  },
  "required": [
    "domain",
    "improvement_ids"
  ],
  "additionalProperties": false
}
🟢aeo_citations(domain)

Historique de citation d’un domaine dans les moteurs IA : taux de citation par date, détail par moteur, part de voix. Renvoie `series[].basis` = "measured" ou "derived" (dénominateur reconstitué sur les scans anciens, le taux est alors un plancher : voir `caveat`). `share_of_voice` vaut null si aucun concurrent n’est suivi : la part de voix n’est pas mesurable, ce n’est pas 0. Nécessite un Monitoring IA sur ce domaine. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "domaine à inspecter"
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}
🟢aeo_proof(domain)

La PREUVE : compare les 2 derniers audits complétés d’un domaine : delta de score, critères améliorés, critères régressés. L’argument client en un appel. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "domaine audité au moins 2 fois"
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}
🔴aeo_monitor(action, domain, brand_name, frequency, schedule_id)

Programme un scan de citations récurrent côté serveur (10 moteurs IA, part de voix vs watchlist, alertes email). action=create {domain, brand_name?, frequency: daily|weekly|biweekly} · list · delete {schedule_id}. Chaque scan programmé coûte 25 GTO à l’exécution.

入力スキーマ

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "description": "create | list | delete"
    },
    "domain": {
      "type": "string",
      "description": "domaine à monitorer (create)"
    },
    "brand_name": {
      "type": "string",
      "description": "nom de marque (défaut : racine du domaine)"
    },
    "frequency": {
      "type": "string",
      "description": "daily | weekly | biweekly (défaut weekly)"
    },
    "schedule_id": {
      "type": "string",
      "description": "id du schedule (delete)"
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false
}
🟢ads_list_accounts

Liste les comptes Google Ads connectés au compte aeotool (OAuth) : customer_id, nom, statut, is_manager (MCC, non requêtable directement, ses comptes clients apparaissent aussi dans la liste), write_enabled (pilotage en écriture, activable par compte dans le Cockpit Google Ads).

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢ads_performance(customer_id, days)

Performance des campagnes Google Ads sur N jours (défaut 30) : impressions, clics, coût, conversions, CTR, CPC moyen, budget/jour : triées par coût. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel : défaut : le plus récent)"
    },
    "days": {
      "type": "number",
      "description": "Période en jours (1-365, défaut 30)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_search_terms(customer_id, days, limit)

Termes de recherche réels ayant déclenché les annonces (N jours, triés par coût) avec le flag wasted=true (coût sans conversion) : candidats directs pour ads_add_negative_keywords. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Période en jours (défaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (défaut 50, max 200)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_change_history(customer_id, days, limit)

Qui a change quoi et quand sur le compte (30 jours max, retention Google). Signale les changements de budget ou d'encheres qui ont pu RELANCER la phase d'apprentissage : les metriques anterieures ne sont alors plus comparables. Gratuit, lecture seule.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 14, max 29)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (defaut 100, max 200)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_quality_breakdown(customer_id, days, limit)

Decompose le Quality Score de chaque mot-cle en ses trois composantes Google (pertinence de l'annonce, experience sur la page de destination, CTR attendu) et designe la cause DOMINANTE. Un QS bas se corrige par la composante fautive, jamais par l'enchere. Gratuit, lecture seule.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (defaut 100, max 300)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_landing_pages(customer_id, days, limit)

Performance de chaque page de destination (cout, clics, conversions, taux de conversion) et liste des pages qui ont recu au moins 10 clics payants SANS une seule conversion. Ces URLs sont directement auditables avec aeo_audit : le diagnostic de citabilite et celui de conversion se recoupent. Gratuit, lecture seule.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (defaut 50, max 200)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_geo_performance(customer_id, days, limit)

Performance par zone REELLE de l'internaute (ville / region), libelles resolus, avec les zones qui depensent sans convertir. Determinant pour une activite a zone de chalandise. Gratuit, lecture seule.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (defaut 50, max 200)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_asset_performance(customer_id, days, limit)

Note Google de chaque titre et description d'annonce responsive (LOW / GOOD / BEST / en cours d'evaluation). Remplacer les LOW par des variantes des BEST est l'optimisation creative la moins risquee : elle ne touche ni enchere ni budget, donc ne relance pas l'apprentissage. Gratuit, lecture seule.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (defaut 100, max 300)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_campaign_criteria(customer_id, campaign_id)

Zones, appareils et plages horaires cibles par les campagnes, avec leur ajustement d'enchere actuel et leur criterion_id. Lecture prealable indispensable a ads_set_bid_modifier et ads_remove_criterion. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Limiter a une campagne (optionnel)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_geo_target_search(customer_id, query, country_code)

Trouve l'identifiant Google d'une zone a partir de son nom (ville, departement, region) : seule forme acceptee par ads_add_location. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "query": {
      "type": "string",
      "description": "Nom de la zone, ex. Nimes"
    },
    "country_code": {
      "type": "string",
      "description": "Code pays ISO, defaut FR"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_audiences(customer_id)

Listes de remarketing disponibles et leur taille, avec celles qui atteignent le seuil de diffusion sur le reseau de recherche (~1 000 utilisateurs). Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_device_performance(customer_id, days)

Cout, conversions et cout par conversion par appareil (mobile, ordinateur, tablette). Prealable a tout ajustement d'enchere par appareil. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Periode en jours (defaut 30)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟡ads_set_bid_modifier(customer_id, campaign_id, criterion_id, bid_modifier, confirm)

ECRITURE GARDEE. Ajuste l'enchere d'un critere existant : 1.0 = aucun ajustement, 1.2 = +20 %, 0.8 = -20 %, 0 = exclusion. Reversible en repassant a 1. Dry-run valide par Google d'abord ; confirm:true pour appliquer. Avertit si une campagne est en phase d'apprentissage (l'action relance le compteur).

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Campagne (voir ads_campaign_criteria)"
    },
    "criterion_id": {
      "type": "string",
      "description": "Critere (voir ads_campaign_criteria)"
    },
    "bid_modifier": {
      "type": "number",
      "description": "0, ou entre 0.1 et 10"
    },
    "confirm": {
      "type": "boolean",
      "description": "true pour appliquer reellement"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟡ads_add_location(customer_id, campaign_id, geo_target_resource_name, negative, confirm)

ECRITURE GARDEE. Ajoute une zone au ciblage d'une campagne, ou l'exclut avec negative:true. L'identifiant s'obtient avec ads_geo_target_search. Dry-run valide par Google d'abord ; confirm:true pour appliquer.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible"
    },
    "geo_target_resource_name": {
      "type": "string",
      "description": "Format geoTargetConstants/<id>"
    },
    "negative": {
      "type": "boolean",
      "description": "true = exclure la zone"
    },
    "confirm": {
      "type": "boolean",
      "description": "true pour appliquer reellement"
    }
  },
  "required": [],
  "additionalProperties": false
}
🔴ads_remove_criterion(customer_id, campaign_id, criterion_id, confirm)

ECRITURE GARDEE. Retire un critere de ciblage d'une campagne (zone, audience, ajustement). Un retrait se repare en RECREANT le critere, pas en annulant. Dry-run valide par Google d'abord ; confirm:true pour appliquer.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible"
    },
    "criterion_id": {
      "type": "string",
      "description": "Critere a retirer (voir ads_campaign_criteria)"
    },
    "confirm": {
      "type": "boolean",
      "description": "true pour appliquer reellement"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟡ads_attach_audience(customer_id, campaign_id, user_list_resource_name, mode, confirm)

ECRITURE GARDEE. Rattache une liste de remarketing a une campagne. Mode observation par defaut : la diffusion NE CHANGE PAS, l'audience est seulement mesuree. Le mode targeting restreint la diffusion aux seuls membres de la liste et peut effondrer le volume : il doit etre demande explicitement. Dry-run valide par Google d'abord ; confirm:true pour appliquer.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible"
    },
    "user_list_resource_name": {
      "type": "string",
      "description": "Format customers/<cid>/userLists/<id> (voir ads_audiences)"
    },
    "mode": {
      "type": "string",
      "description": "observation (defaut) ou targeting"
    },
    "confirm": {
      "type": "boolean",
      "description": "true pour appliquer reellement"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_keywords(customer_id, days, limit)

Mots-clés actifs avec leurs métriques (N jours) et les ids nécessaires aux actions (ad_group_id + criterion_id pour ads_pause_keyword). Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Période en jours (défaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "Max lignes (défaut 100, max 300)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_audit(customer_id)

Audit complet du compte Google Ads : score /100, grade, € gaspillés/mois, manque à gagner, quick wins par catégorie (tracking, gaspillage, enchères, structure, RSA…). Lecture seule, gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟡ads_add_negative_keywords(campaign_id, keywords, match_type, customer_id, confirm)

ÉCRITURE GARDÉE : ajoute des mots-clés négatifs (1-50) à une campagne. Sans confirm:true : dry-run validé par Google (rien n’est appliqué). Nécessite le pilotage activé pour ce compte (ads_list_accounts → write_enabled). Chaque application est journalisée.

入力スキーマ

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible (voir ads_performance)"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "1-50 termes à exclure"
    },
    "match_type": {
      "type": "string",
      "description": "EXACT (défaut) | PHRASE | BROAD"
    },
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "confirm": {
      "type": "boolean",
      "description": "false/absent = dry-run ; true = appliquer"
    }
  },
  "required": [
    "campaign_id",
    "keywords"
  ],
  "additionalProperties": false
}
⚪ads_pause_keyword(ad_group_id, criterion_id, customer_id, confirm)

ÉCRITURE GARDÉE : met un mot-clé en pause (réversible dans Google Ads). ids via ads_keywords. Sans confirm:true : dry-run validé par Google. Pilotage requis (write_enabled) ; journalisé.

入力スキーマ

{
  "type": "object",
  "properties": {
    "ad_group_id": {
      "type": "string",
      "description": "Groupe d’annonces (voir ads_keywords)"
    },
    "criterion_id": {
      "type": "string",
      "description": "Id du mot-clé (voir ads_keywords)"
    },
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "confirm": {
      "type": "boolean",
      "description": "false/absent = dry-run ; true = appliquer"
    }
  },
  "required": [
    "ad_group_id",
    "criterion_id"
  ],
  "additionalProperties": false
}
🔴ads_update_budget(campaign_id, new_daily_budget_eur, customer_id, confirm)

ÉCRITURE GARDÉE : modifie le budget quotidien d’une campagne. Caps : ±20 % max par appel, plafond absolu (env ADS_MAX_DAILY_BUDGET_EUR, défaut 200 €/j), budgets partagés refusés. Sans confirm:true : dry-run validé par Google. Pilotage requis ; journalisé.

入力スキーマ

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible (voir ads_performance)"
    },
    "new_daily_budget_eur": {
      "type": "number",
      "description": "Nouveau budget quotidien en euros"
    },
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "confirm": {
      "type": "boolean",
      "description": "false/absent = dry-run ; true = appliquer"
    }
  },
  "required": [
    "campaign_id",
    "new_daily_budget_eur"
  ],
  "additionalProperties": false
}
⚪ads_campaign_status(customer_id, campaign_id, status, confirm)

ÉCRITURE GARDÉE : met une campagne en pause ou la réactive (réversible). Sans confirm:true : dry-run validé par Google. Pilotage requis (write_enabled) ; journalisé.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel : défaut : le plus récent)"
    },
    "campaign_id": {
      "type": "string",
      "description": "Campagne cible (voir ads_performance)"
    },
    "status": {
      "type": "string",
      "description": "PAUSED ou ENABLED"
    },
    "confirm": {
      "type": "boolean",
      "description": "true = appliquer (après dry-run)"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "additionalProperties": false
}
🟢ads_list_ads(customer_id, days, limit)

Annonces (RSA…) avec métriques N jours et ids (ad_group_id + ad_id) nécessaires à ads_ad_status. Gratuit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "days": {
      "type": "number",
      "description": "Période en jours (défaut 30)"
    },
    "limit": {
      "type": "number",
      "description": "1-200, défaut 100"
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢ads_ad_status(customer_id, ad_group_id, ad_id, status, confirm)

ÉCRITURE GARDÉE : met une annonce individuelle en pause ou la réactive (réversible). ids via ads_list_ads. Dry-run Google puis confirm:true. Pilotage requis (write_enabled) ; journalisé.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "ad_group_id": {
      "type": "string",
      "description": "Groupe d’annonces (voir ads_list_ads)"
    },
    "ad_id": {
      "type": "string",
      "description": "Id de l’annonce (voir ads_list_ads)"
    },
    "status": {
      "type": "string",
      "description": "PAUSED ou ENABLED"
    },
    "confirm": {
      "type": "boolean",
      "description": "true = appliquer (après dry-run)"
    }
  },
  "required": [
    "ad_group_id",
    "ad_id",
    "status"
  ],
  "additionalProperties": false
}
🟡ads_add_keywords(customer_id, ad_group_id, keywords, match_type, confirm)

ÉCRITURE GARDÉE : ajoute des mots-clés POSITIFS (1-20) à un groupe d’annonces. ad_group_id via ads_keywords. Dry-run Google puis confirm:true. Pilotage requis (write_enabled) ; journalisé.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Compte Ads (optionnel)"
    },
    "ad_group_id": {
      "type": "string",
      "description": "Groupe d’annonces cible"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "1-20 mots-clés"
    },
    "match_type": {
      "type": "string",
      "description": "EXACT | PHRASE | BROAD (défaut EXACT)"
    },
    "confirm": {
      "type": "boolean",
      "description": "true = appliquer (après dry-run)"
    }
  },
  "required": [
    "ad_group_id",
    "keywords"
  ],
  "additionalProperties": false
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 36 件
検証済みバージョンは記録されていませんツール 36 件