_ registry / mcp streamable-http · checked 1h ago

aeotool

https://aeotool.io

Registry code: 07e2c0441e60ca67

api record

Pilote l’AEO/GEO de plusieurs sites clients : aeo_list_sites → aeo_batch_audit → aeo_improvements (par audit) → aeo_apply (niveau 1). Les améliorations niveau 3 = leads rebuild. Auth : ajoute ?key=wl_… à l’URL du connecteur.

endpoint
https://aeotool.io/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is aeotool live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is aeotool free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does aeotool have?
36 tools: ads_device_performance, aeo_improvements, aeo_audit_status, aeo_citations, ads_geo_target_search, aeo_monitor, ads_change_history, ads_campaign_criteria, ….
Is aeotool safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.1%· all time 99.1%

latency
359ms

last good check

priced tools
0

of 36 tools

_ answered our checks, 90 days 466 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • audit a website for ai search visibility
  • apply seo fixes to a site
  • audit a google ads account
  • pause or add ad keywords
  • adjust campaign budgets and bids
takes → gives
web pages, text → data
tools
14 reads11 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 36 tools
36 auth-required 36 of 36 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • ads_device_performance reads auth-required 14h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 30)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • aeo_improvements reads auth-required 6h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "domain": {
          "type": "string",
          "description": "domaine : utilise le dernier audit terminé (alternative à audit_id)"
        },
        "audit_id": {
          "type": "string",
          "description": "id de l’audit (optionnel si domain fourni)"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • aeo_audit_status reads auth-required 6h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "audit_id"
      ],
      "properties": {
        "audit_id": {
          "type": "string",
          "description": "id de l’audit (renvoyé par aeo_audit)"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • aeo_citations auth-required 6h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "domaine à inspecter"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • ads_geo_target_search auth-required 9h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "query": {
          "type": "string",
          "description": "Nom de la zone, ex. Nimes"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "country_code": {
          "type": "string",
          "description": "Code pays ISO, defaut FR"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • aeo_monitor changes data auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "action"
      ],
      "properties": {
        "action": {
          "type": "string",
          "description": "create | list | delete"
        },
        "domain": {
          "type": "string",
          "description": "domaine à monitorer (create)"
        },
        "frequency": {
          "type": "string",
          "description": "daily | weekly | biweekly (défaut weekly)"
        },
        "brand_name": {
          "type": "string",
          "description": "nom de marque (défaut : racine du domaine)"
        },
        "schedule_id": {
          "type": "string",
          "description": "id du schedule (delete)"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • ads_change_history reads auth-required 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 14, max 29)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (defaut 100, max 200)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_campaign_criteria reads auth-required 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "campaign_id": {
          "type": "string",
          "description": "Limiter a une campagne (optionnel)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • aeo_report auth-required 24h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "audit_id"
      ],
      "properties": {
        "audit_id": {
          "type": "string",
          "description": "id de l’audit (renvoyé par aeo_audit)"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • ads_asset_performance reads auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (defaut 100, max 300)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_list_accounts auth-required 4h ago

    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).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • ads_geo_performance reads auth-required 14h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (defaut 50, max 200)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_keywords reads auth-required 9h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Période en jours (défaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (défaut 100, max 300)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_remove_criterion changes data auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "confirm": {
          "type": "boolean",
          "description": "true pour appliquer reellement"
        },
        "campaign_id": {
          "type": "string",
          "description": "Campagne cible"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "criterion_id": {
          "type": "string",
          "description": "Critere a retirer (voir ads_campaign_criteria)"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • ads_audit reads auth-required 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • aeo_audit auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "URL ou domaine à auditer"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • aeo_batch_audit changes data auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "urls"
      ],
      "properties": {
        "urls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Liste d’URLs/domaines à auditer"
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • aeo_apply changes data auth-required never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain",
        "improvement_ids"
      ],
      "properties": {
        "faqs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "a": {
                "type": "string"
              },
              "q": {
                "type": "string"
              }
            }
          },
          "description": "optionnel : Q&A pour le FAQPage (jsonld)"
        },
        "title": {
          "type": "string",
          "description": "optionnel : titre meta/OG"
        },
        "domain": {
          "type": "string",
          "description": "domaine du site connecté"
        },
        "description": {
          "type": "string",
          "description": "optionnel : description meta/OG"
        },
        "improvement_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "ids des améliorations (cf. aeo_improvements.autoApplicableIds)"
        }
      },
      "additionalProperties": false
    }
    arguments 44 lines
  • ads_set_bid_modifier changes data auth-required never probed

    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).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "confirm": {
          "type": "boolean",
          "description": "true pour appliquer reellement"
        },
        "campaign_id": {
          "type": "string",
          "description": "Campagne (voir ads_campaign_criteria)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "bid_modifier": {
          "type": "number",
          "description": "0, ou entre 0.1 et 10"
        },
        "criterion_id": {
          "type": "string",
          "description": "Critere (voir ads_campaign_criteria)"
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • ads_add_location changes data auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "confirm": {
          "type": "boolean",
          "description": "true pour appliquer reellement"
        },
        "negative": {
          "type": "boolean",
          "description": "true = exclure la zone"
        },
        "campaign_id": {
          "type": "string",
          "description": "Campagne cible"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "geo_target_resource_name": {
          "type": "string",
          "description": "Format geoTargetConstants/<id>"
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • ads_attach_audience changes data auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "mode": {
          "type": "string",
          "description": "observation (defaut) ou targeting"
        },
        "confirm": {
          "type": "boolean",
          "description": "true pour appliquer reellement"
        },
        "campaign_id": {
          "type": "string",
          "description": "Campagne cible"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "user_list_resource_name": {
          "type": "string",
          "description": "Format customers/<cid>/userLists/<id> (voir ads_audiences)"
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • ads_add_negative_keywords auth-required never probed

    É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.

    mcp-tool

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

    É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é.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ad_group_id",
        "criterion_id"
      ],
      "properties": {
        "confirm": {
          "type": "boolean",
          "description": "false/absent = dry-run ; true = appliquer"
        },
        "ad_group_id": {
          "type": "string",
          "description": "Groupe d’annonces (voir ads_keywords)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        },
        "criterion_id": {
          "type": "string",
          "description": "Id du mot-clé (voir ads_keywords)"
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • ads_update_budget changes data auth-required never probed

    É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é.

    mcp-tool

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

    É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é.

    mcp-tool

    {
      "type": "object",
      "required": [
        "campaign_id",
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "description": "PAUSED ou ENABLED"
        },
        "confirm": {
          "type": "boolean",
          "description": "true = appliquer (après dry-run)"
        },
        "campaign_id": {
          "type": "string",
          "description": "Campagne cible (voir ads_performance)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel : défaut : le plus récent)"
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • ads_ad_status changes data auth-required never probed

    É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é.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ad_group_id",
        "ad_id",
        "status"
      ],
      "properties": {
        "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)"
        },
        "ad_group_id": {
          "type": "string",
          "description": "Groupe d’annonces (voir ads_list_ads)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • ads_add_keywords changes data auth-required never probed

    É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é.

    mcp-tool

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

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "type",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "URL ou domaine cible"
        },
        "faqs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "a": {
                "type": "string"
              },
              "q": {
                "type": "string"
              }
            }
          },
          "description": "faq : questions/réponses [{q,a}]"
        },
        "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)"
        },
        "type": {
          "enum": [
            "jsonld",
            "robots",
            "llms",
            "meta",
            "faq",
            "ai-txt",
            "humans-txt",
            "security-txt",
            "sitemap"
          ],
          "type": "string",
          "description": "type d’artefact"
        },
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "sitemap : chemins à inclure (optionnel)"
        },
        "title": {
          "type": "string",
          "description": "meta : titre (optionnel)"
        },
        "policy": {
          "type": "string",
          "description": "security-txt : URL de la politique de sécurité (optionnel)"
        },
        "contact": {
          "type": "string",
          "description": "security-txt/ai-txt : email de contact (optionnel)"
        },
        "language": {
          "type": "string",
          "description": "security-txt : langues préférées / humans-txt : langue (optionnel)"
        },
        "disclosure": {
          "type": "string",
          "description": "ai-txt : mention de divulgation de contenu IA (optionnel)"
        },
        "description": {
          "type": "string",
          "description": "meta : description (optionnel)"
        },
        "aiCrawlingPolicy": {
          "type": "string",
          "description": "ai-txt : politique de crawl IA (défaut allow-with-attribution)"
        }
      },
      "additionalProperties": false
    }
    arguments 101 lines
  • aeo_proof reads auth-required 24h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "domaine audité au moins 2 fois"
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • ads_performance auth-required 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Période en jours (1-365, défaut 30)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel : défaut : le plus récent)"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • ads_landing_pages reads auth-required 4h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (defaut 50, max 200)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • aeo_list_sites auth-required 4h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • ads_search_terms auth-required 9h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Période en jours (défaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (défaut 50, max 200)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_audiences auth-required 1h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • ads_list_ads reads auth-required 1h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Période en jours (défaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "1-200, défaut 100"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • ads_quality_breakdown reads auth-required 14h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "number",
          "description": "Periode en jours (defaut 30)"
        },
        "limit": {
          "type": "number",
          "description": "Max lignes (defaut 100, max 300)"
        },
        "customer_id": {
          "type": "string",
          "description": "Compte Ads (optionnel)"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 07e2c0441e60ca67.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/07e2c0441e60ca67/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/07e2c0441e60ca67/badge.svg)](https://brick.blue/agent/07e2c0441e60ca67?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.