MELLOW HUB · NOTES DE TERRAIN

MCP pour Instagram : publiez des photos, des carrousels et des Reels

Un guide MCP pour Instagram avec Mellow Hub : exigences du compte, connexion avec Instagram ou Facebook, entrées de publication testées, programmation et corrections des erreurs de validation les plus courantes.

Par Mellow · Mis à jour le

Un assistant IA peut-il publier sur Instagram via MCP ?

Oui, lorsque l’assistant dispose d’un outil de publication autorisé et d’un compte Instagram connecté éligible. Mellow Hub expose ces outils à l’adresse https://www.mellow.world/mcp. Un client MCP distant compatible peut valider une publication, la programmer dans les limites de la délégation du propriétaire et lire son résultat final pour chaque destination.

Commencez par le compte et un vrai brouillon. MCP est la connexion de l’outil ; c’est toujours Instagram qui décide si le compte, les permissions et les médias peuvent publier. Ce guide traite de Mellow Hub. Pour planifier votre propre contenu Instagram sur iPhone ou sur le web, consultez le guide de planification de Mellow, distinct de celui-ci.

De quel compte Instagram ai-je besoin ?

Utilisez un compte Instagram professionnel : Business ou Creator. Un compte personnel n’est pas éligible à ce flux de l’API de publication. Dans Hub, ouvrez Comptes, choisissez Instagram et terminez vous-même la connexion du compte.

Mode de connexionCe qu’il faut préparer
Connexion avec InstagramLa voie de connexion directe. L’API de connexion Instagram de Meta n’exige pas de Page Facebook liée.
Connexion avec FacebookLe compte Instagram professionnel lié à une Page Facebook, avec l’accès approprié à la Page.

Ce sont deux parcours d’autorisation distincts. Choisissez celui qui correspond à la configuration de votre compte ; en terminer un n’accorde pas toutes les permissions de l’autre. La collection officielle de l’API Instagram de Meta documente la différence. La connexion gérée qu’utilise Hub est décrite dans les exigences de compte de Post for Me.

Les Stories demandent une vérification d’éligibilité supplémentaire : la documentation de la connexion Facebook de Meta réserve la publication de Stories aux comptes Business. Qu’un format figure dans les règles d’entrée de Hub ne prouve pas que votre compte puisse le publier. Confirmez le compte connecté et son résultat de livraison avant de compter sur ce format.

Connectez l’assistant et vérifiez ses autorisations

  1. Connectez votre compte Instagram dans Hub. L’ID de canal renvoyé identifie cette connexion ; un nom d’utilisateur Instagram ne le remplace pas.
  2. Ajoutez l’endpoint de Hub dans un client qui prend en charge le MCP distant via Streamable HTTP. Suivez son flux OAuth, ou utilisez une clé Hub créée par le propriétaire si ce client le permet. La configuration et la disponibilité dépendent du client. Conservez les identifiants dans sa configuration sécurisée.
  3. Sur l’écran de consentement OAuth de Hub, choisissez les permissions, les canaux, le mode, le plafond quotidien et l’expiration. Le mode validation prépare le travail pour qu’une personne l’approuve. Le pilote automatique autorise la publication dans les limites de la délégation. Consultez ou révoquez l’accès obtenu dans Agents.
  4. Appelez whoami et list_channels. Vérifiez le mode réel et utilisez l’ID de canal Instagram renvoyé. Lisez list_platforms pour connaître les règles en vigueur.
  5. Préparez des médias accessibles. Utilisez register_media pour inspecter une URL publique existante, ou request_upload_url pour téléverser un fichier local. Gardez l’URL obtenue accessible jusqu’à l’heure de publication prévue.

Pour la séquence de connexion complète et le contrat de résultat, utilisez le guide du flux de travail MCP. Ajouter un connecteur ou coller un prompt ne suffit pas à autoriser un compte Instagram.

Connectez d’abord Mellow Hub dans Claude en lecture seule

Dans un compte Claude où les connecteurs personnalisés sont disponibles, ouvrez Personnaliser → Connecteurs → Ajouter un connecteur personnalisé. Utilisez le nom Mellow Hub et l’URL du serveur MCP distant https://www.mellow.world/mcp. Si vous l’avez déjà ajouté, utilisez ce connecteur existant. Claude peut découvrir les paramètres d’authentification à partir de cette adresse.

Paramètre de connexionValeur
TransportStreamable HTTP
AuthentificationToujours requise
Client OAuthEnregistrement automatique via DCR ; aucun secret client à copier.
  1. Ouvrez le connecteur et sélectionnez Connecter. Connectez-vous à Mellow si on vous le demande. L’écran de consentement doit identifier Claude comme l’application qui demande l’accès.
  2. Pour une première vérification, ne laissez sélectionnés que channels:read et posts:read. Ils permettent de lire la connexion et de valider une entrée. Ils ne permettent ni de téléverser des médias, ni de créer des publications, ni de publier.
  3. Choisissez votre canal Instagram précis et le mode validation. Définissez une expiration courte, par exemple un jour, et un plafond quotidien. Une sélection de canaux vide est refusée ; l’accès aux canaux futurs exige un choix explicite.
  4. Relisez et approuvez vous-même cette délégation. De retour dans Claude, confirmez que le connecteur est connecté. Demandez-lui d’appeler whoami, puis list_channels pour obtenir l’ID du canal autorisé. Vérifiez les permissions, les canaux et l’expiration accordés dans la liste des accès de Hub : un client peut n’afficher que le résumé textuel de l’outil, qui ne reprend pas tous les champs structurés.
Utilisez uniquement Mellow Hub. Appelez whoami, puis list_channels.
Utilisez le seul canal Instagram que j’ai autorisé. Appelez validate_post deux fois avec
la légende "Mellow test - example only" : d’abord avec media [], puis avec
media ["https://example.com/test.jpg"]. Ce sont des entrées illustratives.
Ne récupérez pas l’URL et ne lisez pas les publications existantes. Rapportez chaque résultat de validation.
Ne créez, ne programmez, n’annulez et ne publiez rien.

Lorsque Claude demande à utiliser un outil, examinez son nom et son entrée avant d’autoriser l’appel. Pour cette vérification, autorisez chaque appel une seule fois. L’URL d’exemple ne teste que les règles d’entrée ; ce n’est pas une vraie image à publier. La validation ne télécharge pas le média et ne prouve pas la livraison sur Instagram.

Ce que la vérification de connexion réelle a renvoyé

Le 9 septembre 2026, une connexion réelle de Claude sur le web a terminé OAuth avec seulement channels:read posts:read, un canal Instagram, le mode validation et une expiration d’un jour. Claude a appelé whoami, list_channels et validate_post deux fois. Nous avons inspecté les réponses des outils ainsi que le résumé de l’assistant.

EntréeRésultat observé
Légende sans médiaRejetée : Instagram exige au moins un média.
Même légende avec l’URL d’image illustrativeA passé le contrôle d’entrée pour un canal.

Aucune publication n’a été créée ni publiée lors de cette vérification. Nous avons ensuite révoqué l’autorisation de test dans Agents et vérifié que son jeton d’accès et son jeton de rafraîchissement étaient tous deux révoqués. Cela prouve ce flux précis de connexion et de validation, pas la publication sur Instagram ni la compatibilité avec toutes les configurations de client.

Pour votre propre brouillon, fournissez une vraie légende et des médias accessibles. Si une tâche ultérieure doit écrire, approuvez une nouvelle délégation avec les permissions requises. Rafraîchir un jeton ne prolonge pas l’expiration d’accès choisie.

Choisissez le format avant de valider

Hub applique actuellement une limite de 2 200 caractères pour la légende et une plage globale de 110 médias pour Instagram. Les emplacements resserrent cette plage. Ce sont les règles d’entrée qu’applique Hub ; elles peuvent être plus prudentes que l’éditeur d’Instagram lui-même.

PublicationEmplacement HubEntrée à préparer
Photo dans le feedtimelineUne image.
Carrousel de photostimelineDe deux à 10 images dans l’ordre voulu.
ReelreelsExactement une vidéo. shareToFeed contrôle le partage dans le feed principal.
StorystoriesExactement une image ou une vidéo, selon l’éligibilité du compte.

Hub refuse actuellement de mélanger des URL d’images et de vidéos reconnues dans une même publication. Utilisez un seul type de média pour l’entrée du carrousel. C’est une limite de Hub, pas une affirmation qu’Instagram lui-même n’accepte jamais les carrousels mixtes.

Le comportement des emplacements est documenté par Post for Me. La taille du fichier, les codecs, le format d’image et la durée doivent toujours respecter les règles d’Instagram. Le validateur d’entrée de Hub ne télécharge ni ne mesure le fichier, et une URL sans extension reconnaissable peut laisser son type de média indéterminé.

Trois entrées de publication à adapter

Passez l’un de ces objets comme arguments à validate_post. Remplacez l’ID de canal d’exemple, les URL des médias, la légende et l’horodatage de 2030 par vos propres valeurs. La date est volontairement illustrative ; utilisez un Z UTC explicite ou un décalage de fuseau horaire. Ces charges utiles sont vérifiées par l’analyseur et le validateur de Hub, avec un canal synthétique. Ce ne sont pas de vrais reçus de publication Instagram.

One feed photo

{
  "channels": [
    "spc_your_instagram_channel"
  ],
  "scheduledAt": "2030-01-15T10:00:00Z",
  "caption": "A closer look at the glaze on this cup.",
  "media": [
    "https://cdn.example.com/your-cup.jpg"
  ],
  "options": {
    "instagram": {
      "placement": "timeline"
    }
  }
}

An ordered photo carousel

{
  "channels": [
    "spc_your_instagram_channel"
  ],
  "scheduledAt": "2030-01-15T10:00:00Z",
  "caption": "From clay to finished cup, in three stages.",
  "media": [
    "https://cdn.example.com/your-clay.jpg",
    "https://cdn.example.com/your-process.jpg",
    "https://cdn.example.com/your-cup.jpg"
  ],
  "options": {
    "instagram": {
      "placement": "timeline"
    }
  }
}

One Reel

{
  "channels": [
    "spc_your_instagram_channel"
  ],
  "scheduledAt": "2030-01-15T10:00:00Z",
  "caption": "How this handle is attached.",
  "media": [
    "https://cdn.example.com/your-process.mp4"
  ],
  "options": {
    "instagram": {
      "placement": "reels",
      "shareToFeed": true
    }
  }
}

Une vraie URL de média doit être accessible au service de publication au moment où il la récupère. Meta décrit cette exigence dans sa référence de publication de contenu. Un chemin local, un lien vers un disque privé ou une URL signée expirée ne peuvent pas la remplacer.

Corrigez le problème signalé avant de créer la publication

Lisez ok, issues et notes dans le résultat de la validation. Une requête HTTP réussie peut tout de même contenir ok: false. Le problème nomme le canal et le champ concernés.

Code du problèmeCe qu’il faut changer
channel_not_connectedTerminez la connexion du compte et utilisez l’ID de canal renvoyé.
media_requiredJoignez un média ; Instagram ne peut pas publier une publication uniquement textuelle par ce flux.
media_too_manyRéduisez l’ensemble au maximum actuel de Hub, soit 10 ; un Reel ou une Story en admettent moins.
reel_media_countUtilisez une vidéo par Reel. Pour plusieurs Reels, préparez des publications séparées.
reel_needs_videoFournissez une vidéo pour un Reel, ou choisissez l’emplacement du feed pour les photos.
story_media_countUtilisez un seul élément par demande de Story.
media_kinds_mixedGardez les images et les vidéos reconnues dans des publications Hub séparées.
caption_too_longRaccourcissez la légende à 2 200 caractères au maximum.

Essayez le vérificateur de publications gratuit avant de connecter un compte. Il utilise les mêmes règles d’entrée avec des destinations d’exemple. La validation authentifiée contrôle les canaux réellement connectés ; aucun des deux résultats ne garantit la livraison finale par le fournisseur.

Programmez une seule fois et vérifiez le résultat sur Instagram

Après une vérification concluante, appelez create_post avec la même publication prévue et une idempotencyKey stable, par exemple ceramics-instagram-reel-slot-001. La création est l’étape qui prépare ou programme la publication réelle. En mode validation, elle attend l’approbation ; en pilote automatique, elle peut se poursuivre à l’heure choisie. Vérifiez d’abord le quota de votre forfait.

Conservez l’ID de publication renvoyé. Si la réponse de création est perdue, relancez la même requête avec la même clé. Ne générez pas une nouvelle clé simplement à cause d’un délai d’attente dépassé. Une publication modifiée exige une nouvelle clé.

Appelez get_post et inspectez l’entrée Instagram dans targets. Lisez son statut final, son URL publique ou son erreur. Qu’une publication Hub soit acceptée ne prouve pas qu’Instagram l’a publiée. Pour une demande multiréseau, une autre destination peut réussir alors qu’Instagram échoue.

Pour les intégrations serveur qui utilisent HTTP directement, la recette de programmation REST donne les requêtes équivalentes et l’en-tête d’idempotence. Pour une première configuration, connectez votre canal Instagram et validez un brouillon avant de préparer une programmation récurrente.