Pourquoi les agents (et leurs utilisateurs) choisissent Hermoso : un seul connecteur est un guichet unique pour plus de 100 modèles d'image, de vidéo, de voix et d'écriture : Seedance, Veo, Kling, MiniMax H3 et Gemini Omni pour la vidéo ; Nano Banana, Imagen, Flux, Seedream et GPT Image pour les images fixes ; ainsi que des voix premium et des modèles d'écriture de classe Claude, Gemini et GPT, le tout sur un seul compteur de crédits, sans clé API ni compte à gérer chez chaque fournisseur. Au-delà des modèles bruts, le même connecteur couvre tout le flux publicitaire : étude des concurrents dans les bibliothèques publicitaires de Meta, Google et LinkedIn, planification créative, rendus finis aux couleurs de la marque, post-production, notation, publication et gestion de campagnes. Les coûts exacts par rendu sont publiés dans hermoso_capabilities, de sorte qu'un agent bien conçu peut vous annoncer un chiffre avant de dépenser quoi que ce soit.
Hermoso est le MCP marketing qui fait tourner toute la boucle publicitaire. La plupart des MCP marketing se contentent de gérer des campagnes ; Hermoso crée et publie aussi la publicité. Connectez-le à votre agent et recherchez, créez, publiez et gérez des publicités finies directement depuis vos prompts, avec 922+ outils, votre contexte de marque enregistré et vos crédits. Installez-le depuis npm (npm install -g hermoso). Il est open source sur github.com/hermoso-ai/hermoso.
Connexion en un clic : Ouvrir dans ChatGPT · Ajouter à Cursor · Installer dans VS Code · Claude Code : claude plugin marketplace add hermoso-ai/hermoso && claude plugin install hermoso@hermoso (Codex, Gemini CLI et Cursor : une commande chacun, dans la configuration ci-dessus) · Claude.ai : collez https://app.hermoso.ai/mcp sous Paramètres → Connecteurs · Meta Muse : un seul message dans le chat suffit pour le configurer, voir Hermoso dans Muse. Les agents peuvent découvrir automatiquement la fiche du serveur sur /.well-known/mcp.json. Il figure aussi dans le registre officiel MCP (io.github.hermoso-ai/hermoso), sur Smithery et sur Glama.
Vous préférez le studio ? Tout ce que font les outils existe aussi dans l'application web, sur app.hermoso.ai.
Trois demandes à taper une fois connecté
Ce sont des phrases ordinaires, pas un langage de commande. L'agent choisit les outils ; vous approuvez la dépense.
- Recherche. “Quels sont les trois concurrents les plus proches de
oatly.com, et quelles sont leurs publicités Meta qui tournent depuis le plus longtemps ? Dites-moi quelle accroche revient sans cesse.” Cela enchaînefind_competitors→pull_competitor_ads→mine_angles. - Créer. “Créez-moi une publicité vidéo UGC 9:16 pour ma marque avec cette accroche, avec ma vraie photo de produit et les sous-titres incrustés.” Cela enchaîne
get_brand→plan_ad→render_ad, et renvoie l'URL du fichier mp4 fini. - Publier. “Programme-la sur Instagram et TikTok mardi à 9 h, et crée autour une campagne Meta en pause ciblant les États-Unis à $30/day.” Cela enchaîne
schedule_post→create_meta_campaign→create_meta_ad.
Les outils, par usage
Les 922+ outils passent par un seul serveur OAuth. Appelez-en n'importe lequel depuis ChatGPT, Claude, Claude Desktop, Codex, Cursor, Cline, OpenClaw, Hermes, Grok Bot ou tout autre client MCP. Chacun renvoie une URL d'actif durable ou un résultat structuré, et non une prose que le modèle doit analyser à nouveau.
Vous cherchez la liste complète ? Elle se trouve dans la référence des outils, avec le schéma réel des paramètres de chaque outil et le JSON lisible par machine à côté. Cette référence est générée : elle est construite en exécutant le serveur MCP en production et en relisant tools/list via un vrai transport, c'est donc exactement la surface que reçoit votre client. Les catégories ci-dessous sont une visite à la main des outils qu'il vaut la peine de connaître par leur nom. En cas de divergence, c'est la référence qui fait foi. Documentation complète pour développeurs : hermoso.ai/docs.
Recherche & Ad Spy : find_competitors, competitor_teardown, pull_competitor_ads, research_ads, mine_angles, score_ad, check_ad_policy, analyze_video ; bibliothèques publicitaires search_meta_ads, search_google_ads, search_linkedin_ads ; réseaux organiques search_tiktok, search_instagram, search_youtube, search_reddit, search_threads, search_threads_keyword ; fetch_social_data ; playbooks créatifs list_skills, get_skill, save_skill.
Créer des publicités finies : marque draft_brand, get_brand, update_brand, use_brand, list_brands ; planification plan_ad, plan_variations ; rendu render_ad, generate_image, generate_video, generate_avatar, generate_voice, generate_text, make_template_ad (formats publicitaires HTML natifs rendus directement, donc le type est exact au pixel près), make_explainer, product_sizzle, make_thumbnail ; montage & finitions remix_static, recast_motion, reframe_video, upscale_video, dub_video, change_voice, finish_video, fix_beat, post_edit, stitch_video, clip_video ; actifs list_product_photos, set_product_image, list_library, fetch_asset, upload_file.
Publier et programmer sur vos canaux : post_to_meta (Facebook / Instagram / Threads), post_to_tiktok, post_to_youtube, schedule_post (une seule file pour Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram et Google Business Profile), list_scheduled, cancel_scheduled, manage_meta_post, update_youtube_video, upload_meta_asset, list_meta_pages, youtube_channel, tiktok_account, list_tiktok_videos. YouTube va au-delà de la mise en ligne : list_youtube_videos, update_youtube_video, set_youtube_thumbnail (pose une vignette Hermoso sur une vidéo mise en ligne ; c'est le levier le plus important sur le taux de clic, et YouTube choisit sinon une image au hasard) et youtube_video_insights (vues, temps de visionnage, pourcentage moyen visionné, abonnés gagnés). Engagement : list_meta_comments, reply_to_meta_comment, moderate_meta_comment, list_threads_replies, reply_to_thread, list_youtube_comments, reply_to_youtube_comment. X / Twitter : post_to_x (texte, image, vidéo, réponses, citations, sondages et fils complets ; 280 caractères sur un compte ordinaire et jusqu'à 25 000 sur un compte X Premium, lu depuis le compte et non supposé, et jamais tronqué), post_x_article (l'Article long format de X, rédigé en Markdown, avec ses titres, listes, citations, blocs de code et tableaux conservés), edit_x_post (réécrit une publication déjà publiée, dans l'heure que X autorise), delete_x_post, x_post_metrics et x_post_insights (impressions, j'aime, republications, réponses, citations, signets), x_post_insights_historical (les mêmes chiffres d'annonceur sur n'importe quelle période, là où x_post_insights ne voit que les 28 dernières heures), x_mentions. X est le seul connecteur qui facture des crédits par appel d'API, parce que X nous facture chaque requête, et une publication contenant un lien coûte environ 13× une publication sans lien ; votre agent se voit annoncer le prix avant de publier. LinkedIn : list_linkedin_pages, post_to_linkedin_page, post_to_linkedin, manage_linkedin_post, linkedin_page_analytics (performance organique des Pages : abonnés et gains d'abonnés, vues de Page, impressions, clics et engagement des publications, pour le total de la Page ou par publication). La publication sur LinkedIn cible les Pages d'entreprise que vous cochez. Votre profil personnel est également disponible, mais reste désactivé tant que vous ne le partagez pas explicitement. Pinterest : list_pinterest_boards, create_pinterest_board, post_to_pinterest (épingles image ou vidéo sur un tableau que vous choisissez). Threads va plus loin que la publication : list_threads_posts, list_threads_replies, reply_to_thread, hide_thread_reply, delete_thread, list_threads_mentions, threads_insights.
Lire et répondre aux messages privés. list_inbox réunit tout ce qu'on a dit à la marque dans une seule liste : commentaires Facebook et Instagram, réponses et mentions Threads, commentaires YouTube et Reddit, avis Google, réponses Bluesky et mentions X, ainsi que les messages privés sur Messenger, Instagram Direct, X, Bluesky et Telegram. reply_to_inbox_item répond à n'importe lequel par son identifiant et achemine vers le bon canal, de sorte que l'agent n'a jamais à savoir quel outil de réponse utilise chaque plateforme. Par canal, lorsque vous voulez toute la conversation plutôt que la dernière ligne : list_meta_conversations, read_meta_conversation, reply_to_meta_message ; list_x_dms, send_x_dm ; list_bluesky_convos, read_bluesky_dm, send_bluesky_dm, mark_bluesky_convo_read ; list_telegram_dms, list_telegram_chats, post_to_telegram ; et sur WhatsApp send_whatsapp_message, send_whatsapp_broadcast, list_whatsapp_templates, create_whatsapp_template. instagram_profile transforme un @identifiant Instagram en identifiant de compte numérique que Meta exige réellement. Ce que chaque plateforme autorise diffère, et Hermoso indique la règle à laquelle vous vous heurtez au lieu de vous le faire découvrir par un refus : Meta autorise une réponse dans les 24 heures suivant l'écriture de la personne, et cette fenêtre est vérifiée gratuitement avant tout envoi ; Telegram fonctionne par fenêtre glissante de 24 heures plutôt que par boîte de réception, car l'API Bot ne publie aucun point d'accès à l'historique ; X conserve 30 jours de messages privés et facture par message lu. WhatsApp mérite une mention à part, car y répondre n'est pas une réponse de boîte de réception : Hermoso envoie sur WhatsApp via send_whatsapp_message, soit un modèle approuvé par Meta pour ouvrir une conversation, soit une réponse libre dans la fenêtre de service client de 24 heures de Meta, et il vous demande de confirmer d'abord le libellé exact et le numéro exact, car le message atteint un vrai téléphone et Meta facture l'entreprise pour la conversation. Meta ne publie par ailleurs aucun point d'accès à l'historique WhatsApp, donc une conversation antérieure à votre connexion ne peut être récupérée à aucun prix. LinkedIn et Threads ne publient pas d'API de messages privés exploitable, donc aucun des deux n'est proposé.
Envoyer un message WhatsApp, ou diffuser à toute la liste. send_whatsapp_broadcast envoie un modèle approuvé à une liste de clients, un segment ou un lancement, et remplit pour chaque personne ses propres valeurs {{1}} et {{2}} au fil de l'envoi, de sorte que mille personnes reçoivent un message qui les nomme plutôt que le même message diffusé mille fois. Meta ne publie aucun point d'accès en masse : il s'agit donc d'un envoi cadencé, un message par destinataire, qui s'exécute comme une tâche en file d'attente que vous interrogez, plutôt qu'un appel qui attend. Les numéros en double sont retirés avant tout envoi, un numéro que Meta ne peut pas utiliser est refusé et nommé au lieu d'être abandonné en silence, et chaque destinataire porte son propre résultat, de sorte qu'un échec partiel est signalé comme tel et jamais comme un succès. Lancez d'abord avec dryRun : cela ne coûte rien, n'envoie rien, et indique le nombre réel de destinataires, la catégorie en vigueur du modèle, ce que Meta facturera pour lui, et si la liste tient dans la limite mobile de messagerie de 24 heures de votre portefeuille commercial. Meta vous facture directement les messages, par message, à ses propres tarifs par pays, de sorte qu'une diffusion ne consomme aucun crédit Hermoso. Deux règles relèvent de Meta et non de nous, et sont permanentes : une diffusion est toujours un modèle approuvé, car le texte libre n'est légal que dans la fenêtre de 24 heures qui s'ouvre lorsque cette personne vous écrit en premier ; et WhatsApp exige que le destinataire ait donné son accord, ce qu'aucune règle de l'API ne vérifie et ce qui reste la responsabilité de l'entreprise.
Un seul calendrier de contenu pour tous les canaux : schedule_post met en file un rendu fini sur un ou plusieurs canaux à l'heure choisie, avec des légendes par canal ; list_scheduled lit ce qui est en attente et ce qui est déjà parti, avec les résultats par canal ; cancel_scheduled retire une publication avant sa sortie. Dans le studio, la même file est un vrai calendrier avec vues mois, semaine et liste, on glisse une publication pour la reprogrammer, on modifie ou duplique chaque entrée, et l'on dispose de créneaux horaires permanents où déposer du travail. Hermoso publie à l'heure fixée ; rien ne doit rester ouvert.
Gérer les campagnes publicitaires Meta : create_meta_campaign, create_meta_adset, create_meta_ad, find_meta_audiences, list_meta_ads, meta_insights, meta_page_insights, meta_post_insights, update_meta_object, set_meta_campaign_status, delete_meta_object. Les objets sont créés en pause, et chaque dépense et suppression est soumise à confirmation. Avant d'engager un budget : preview_meta_ad rend la vraie publicité par emplacement sous forme de lien que vous pouvez consulter, et estimate_meta_reach indique combien de personnes un ciblage atteint réellement. Audiences : list_meta_audiences et create_meta_audience créent des audiences de reciblage par pixel de site, d'engagement sur la Page et sur Instagram, et des audiences similaires ; créer une audience ne coûte rien. meta_insights ventile les performances par âge, sexe, emplacement et pays. La page Facebook Ads MCP détaille chaque outil Meta et le ciblage qu'il expose.
Gérer les campagnes Google Ads : create_google_ads_campaign, create_google_ads_ad_group, create_google_ads_ad, add_google_ads_keywords, set_google_ads_budget, set_google_ads_bidding, set_google_ads_targeting, set_google_ads_status, find_google_ads_locations, upload_google_ads_asset, list_google_ads_campaigns, google_ads_report (GAQL). L'ensemble de l'arborescence est construit en une seule opération atomique, puis relu depuis Google avant que l'agent ne décrive ce qu'il a créé. Au-delà de l'arborescence : create_google_ads_conversion_action et list_google_ads_conversion_actions (ce que Google compte comme résultat ; TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS et chaque campagne Performance Max sont impossibles sans cela, donc Hermoso refuse de les construire sur un compte qui n'en a pas), create_google_ads_performance_max_campaign (le type de campagne multi-surfaces de Google), add_google_ads_assets (liens annexes, accroches et extraits structurés, créés et rattachés, car un actif non rattaché ne s'affiche pas) et google_ads_keyword_ideas (Planificateur de mots clés : volume de recherche mensuel réel, concurrence et enchères en haut de page, de sorte que les mots clés sont choisis sur des données et non devinés).
Gérer LinkedIn, Pinterest, Microsoft, X, TikTok, Snapchat, ChatGPT, Apple Search Ads et AppLovin Ads : le même schéma, en pause par défaut et soumis à confirmation, sur chaque autre plateforme payante. LinkedIn : list_linkedin_ads_campaigns, linkedin_ads_report, create_linkedin_ads_campaign_group, create_linkedin_ads_campaign, create_linkedin_ads_creative, search_linkedin_ads_targeting, set_linkedin_ads_budget, set_linkedin_ads_status, delete_linkedin_ads_object. Pinterest : list_pinterest_ads_campaigns, pinterest_ads_report, create_pinterest_ads_campaign, create_pinterest_ads_ad_group, create_pinterest_ads_ad, set_pinterest_ads_budget, set_pinterest_ads_status. Microsoft Advertising (Bing) : list_microsoft_ads_campaigns, microsoft_ads_report, create_microsoft_ads_campaign, create_microsoft_ads_ad_group, create_microsoft_ads_ad, add_microsoft_ads_keywords, set_microsoft_ads_budget, set_microsoft_ads_status, microsoft_ads_geo_search (convertit les noms de pays, régions et villes en identifiants de localisation Microsoft dont une campagne a besoin ; sans localisation, une campagne Microsoft est créée pour diffuser dans le monde entier, ce qui est la valeur par défaut de Microsoft, et la relecture vous en avertit fortement). Reddit Ads, l'arborescence complète du compte : list_reddit_ads_campaigns, reddit_ads_report, create_reddit_ads_campaign, create_reddit_ads_ad_group, create_reddit_ads_ad, create_reddit_ads_post (une publicité Reddit promeut une publication, donc le créatif est une publication), set_reddit_ads_status, ainsi que la planification gratuite avec search_reddit_ads_targeting, reddit_ads_forecast et reddit_ads_bid_suggestion, le suivi des conversions via list_reddit_ads_pixels et send_reddit_ads_conversions, le reciblage et les audiences enregistrées, les formulaires de prospects, et reddit_ads_history. ChatGPT Ads (les publicités diffusées sous une réponse de ChatGPT), via l'API annonceur d'OpenAI : list_openai_ads_campaigns, openai_ads_report, openai_ads_geo_search, create_openai_ads_campaign, create_openai_ads_ad_group, create_openai_ads_ad, update_openai_ads_object, set_openai_ads_budget, set_openai_ads_status. ChatGPT Ads n'a qu'un seul format créatif, une carte texte-plus-image, et aucune vidéo : l'agent tirera donc une image fixe de votre film plutôt que de vous proposer une publicité vidéo. Ads X, l'arborescence complète des publications promues, disponible depuis août 2026 : list_x_ads_accounts, list_x_ads_funding_instruments, x_ads_report, create_x_ads_campaign, create_x_ads_line_item (le nom X d'un groupe d'annonces), create_x_ads_promoted_tweet, add_x_ads_targeting, x_ads_targeting_search, x_ads_geo_search, update_x_ads_campaign, update_x_ads_line_item, set_x_ads_status, delete_x_ads_object. Une publicité X promeut une publication, donc le créatif est une publication, la même que celle que publie post_to_x. TikTok Ads est une connexion DISTINCTE de celle de publication TikTok, et c'est la seule plateforme qui crée les objets ACTIVÉS par défaut : Hermoso force donc chaque niveau en PAUSE, sans dérogation possible : list_tiktok_ads_accounts, list_tiktok_ads_campaigns, list_tiktok_ads_identities, search_tiktok_ads_targeting, tiktok_ads_report, create_tiktok_ads_campaign, create_tiktok_ads_ad_group, upload_tiktok_ads_creative, create_tiktok_ads_ad, set_tiktok_ads_budget, set_tiktok_ads_status, delete_tiktok_ads_object. Snapchat Ads : list_snapchat_ads_accounts, list_snapchat_ads_campaigns, list_snapchat_ads_profiles, search_snapchat_ads_targeting, snapchat_ads_report, upload_snapchat_ads_creative, create_snapchat_ads_campaign, create_snapchat_ads_ad_squad, create_snapchat_ads_ad, set_snapchat_ads_budget, set_snapchat_ads_status, delete_snapchat_ads_object. Les budgets sont en micro-devise (1 000 000 = une unité), le titre du créatif est limité à 34 caractères, et une publicité Snapchat pointe vers un CRÉATIF plutôt que vers un identifiant de média. Trois précisions d'accès à connaître avant de planifier un budget : LinkedIn et Pinterest limitent les écritures de publicité selon le niveau d'API que détient votre compte publicitaire. Les rapports et les lectures sont sans restriction, tandis que la création de campagnes dépend de l'accès que la plateforme a accordé à votre compte. Meta, Google Ads, Microsoft Advertising, Reddit Ads et ChatGPT Ads n'ont pas de tel niveau. X accorde l'accès à l'API Ads par compte publicitaire et non par application : au lieu d'un bouton OAuth, vous ajoutez l'utilisateur X d'Hermoso à votre compte publicitaire sur business.x.com → Accès au compte, et il apparaît dans list_x_ads_accounts avec le niveau d'autorisation accordé par X. AppLovin Ads se connecte avec une clé collée : applovin_ads_report fonctionne sur tout compte disposant de sa clé de reporting, et applovin_ads_pixel avec sa clé d'événements ; send_applovin_ads_events nécessite la clé de l'API de conversion d'AppLovin, et list_applovin_ads_campaigns, create_applovin_ads_campaign, update_applovin_ads_campaign, set_applovin_ads_status, les outils de jeux de créatifs et upload_applovin_ads_assets utilisent l'API de gestion de campagnes d'AppLovin, qu'AppLovin active compte par compte, comme pour la clé de l'API de conversion. Demandez à votre équipe de compte AppLovin de les activer, puis collez aussi ces clés.
Construire des Apple Search Ads et les lire jusqu'au terme de recherche : des publicités de recherche sur l'App Store, de bout en bout. Construire : create_apple_ads_campaign, create_apple_ads_ad_group, add_apple_ads_keywords, add_apple_ads_negative_keywords, create_apple_ads_creative, create_apple_ads_ad, upload_apple_ads_asset, update_apple_ads_object, set_apple_ads_status, delete_apple_ads_object. Chaque objet est créé en pause sans dérogation possible ; l'activation est le seul interrupteur qui arme une vraie dépense, et elle est soumise à confirmation ; chaque résumé est construit à partir d'une relecture de ce qu'Apple a réellement enregistré. Les annonces tournent dans l'onglet Recherche ; une campagne de résultats de recherche n'a besoin ni de publicité ni de créatif, car Apple affiche elle-même votre page produit sur l'App Store, et Hermoso le dit gratuitement plutôt que de laisser Apple rejeter la construction. Lecture : list_apple_ads_campaigns (statut, statut de diffusion, budget quotidien et total, les pays où elle tourne, et la raison exposée par Apple lorsqu'une campagne ne peut pas tourner), list_apple_ads_ad_groups (enchère par défaut, et si Search Match d'Apple est activé), list_apple_ads_keywords (ciblage et négatifs, avec type de correspondance et enchère), apple_ads_report (impressions, taps, installations, dépense, TTR, CPT et CPA, au niveau de la campagne, du groupe d'annonces, du mot clé, du terme de recherche ou de la publicité), list_apple_ads_creatives, list_apple_ads_ads, list_apple_ads_assets, list_apple_ads_product_pages (votre fiche App Store et toute page produit personnalisée, avec leur contenu par langue), search_apple_ads_apps et check_apple_ads_app_eligibility (les emplacements, pays et appareils où votre application peut réellement faire de la publicité, à lire avant de construire) et list_apple_ads_orgs. Il n'y a pas de bouton OAuth, car Apple ne publie aucun flux OAuth : Hermoso génère la clé de signature, vous collez sa moitié publique dans Apple Ads → Paramètres du compte → API, puis vous recollez trois identifiants. Apple n'affiche ce champ qu'à un utilisateur disposant d'un rôle API, donc un administrateur de compte invite ou bascule d'abord vers ce rôle. Le guide du connecteur Apple Search Ads détaille l'ensemble de la procédure. Chaque connexion est rattachée à la seule organisation Apple Ads que vous avez choisie lors de sa création.
Rapport & export : Google Drive save_to_drive, list_drive_files, get_drive_file, update_drive_file, delete_drive_file, create_drive_folder ; Sheets create_sheet, append_to_sheet, read_sheet ; Docs create_doc, append_to_doc, read_doc ; Microsoft OneDrive save_to_onedrive, list_onedrive_files, get_onedrive_file, update_onedrive_file, create_onedrive_folder, delete_onedrive_file. Les prospects entrent dans votre CRM via le MCP HubSpot : sync_leads_to_hubspot envoie les prospects des formulaires Meta et LinkedIn comme contacts, et hubspot_deals_report présente les opportunités par étape et par source.
Mémoire, profils, skills & équipe : remember, forget, list_memory, store_get ; profils create_brand, delete_brand, use_brand, list_brands, afin qu'une agence puisse prendre un nouveau client et en retirer un sans ouvrir l'application ; les profils sont illimités sur chaque offre ; skills, désormais une seule bibliothèque qui a absorbé l'ancien magasin des « employés IA » : save_skill, list_skills, get_skill, delete_skill ; équipe invite_member, list_team, set_role, remove_member.
Compte, réglages & connecteurs : hermoso_capabilities (sonder les modèles et les coûts exacts par rendu ; à appeler en premier), hermoso_credits, buy_credits, billing_status, upgrade_plan, set_auto_reload, get_job, list_jobs, report_bug, request_feature ; réglages get_settings, update_settings (langue et apparence, enregistrées sur le compte et non sur un navigateur, afin qu'un client qui n'utilise que l'agent ne reste pas en anglais) ; connecteurs list_connectors, list_connector_accounts, set_connector_accounts (choisissez exactement les Pages, comptes publicitaires et tableaux utilisables ; l'outil rapporte la relecture du serveur, jamais la demande), disconnect_connector. Connecter un compte passe par un écran de consentement OAuth, c'est donc la seule étape qui exige encore un navigateur ; tout ce qui vient après est accessible à l'agent.