Instagram MCP: Fotos, Karussells und Reels veröffentlichen
Ein Instagram-MCP-Leitfaden für Mellow Hub: Kontovoraussetzungen, Anmeldung über Instagram oder Facebook, getestete Beitragseingaben, Planung und Lösungen für häufige Validierungsfehler.
Von Mellow · Aktualisiert amKann ein KI-Assistent über MCP auf Instagram veröffentlichen?
Ja, wenn der Assistent ein autorisiertes Veröffentlichungs-Tool und ein verbundenes Instagram-Konto hat, das die Voraussetzungen erfüllt. Mellow Hub stellt diese Tools unter https://www.mellow.world/mcp bereit. Ein kompatibler Remote-MCP-Client kann einen Beitrag validieren, ihn im Rahmen der Delegation des Inhabers planen und das Endergebnis am Ziel lesen.
Beginne mit dem Konto und einem echten Entwurf. MCP ist die Tool-Verbindung; ob Konto, Berechtigungen und Medien veröffentlichen dürfen, entscheidet weiterhin Instagram. Dieser Leitfaden behandelt Mellow Hub. Für die Planung deiner eigenen Instagram-Inhalte auf dem iPhone oder im Web gibt es den separaten Planungsleitfaden von Mellow.
Welches Instagram-Konto brauche ich?
Verwende ein professionelles Instagram-Konto: Business oder Creator. Ein privates Konto ist für diesen Ablauf der Publishing-API nicht zugelassen. Öffne in Hub den Bereich Konten, wähle Instagram und schließe die Kontoverbindung selbst ab.
| Anmeldeweg | Was du vorbereiten musst |
|---|---|
| Anmeldung über Instagram | Der direkte Anmeldeweg. Metas Instagram-Login-API verlangt keine verknüpfte Facebook-Seite. |
| Anmeldung über Facebook | Das professionelle Instagram-Konto, verknüpft mit einer Facebook-Seite und mit dem passenden Seitenzugriff. |
Das sind unterschiedliche Autorisierungswege. Wähle den Weg, der zu deiner Kontoeinrichtung passt; einen abzuschließen erteilt nicht alle Berechtigungen des anderen. Metas offizielle Instagram-API-Sammlung dokumentiert den Unterschied. Die von Hub genutzte verwaltete Verbindung wird in den Kontoanforderungen von Post for Me beschrieben.
Stories brauchen eine zusätzliche Prüfung der Voraussetzungen: Metas Dokumentation zum Facebook-Login beschränkt das Veröffentlichen von Stories auf Business-Konten. Dass ein Format in den Eingaberegeln von Hub auftaucht, belegt nicht, dass dein Konto es veröffentlichen kann. Bestätige das verbundene Konto und sein Zustellergebnis, bevor du dich auf dieses Format verlässt.
Verbinde den Assistenten und prüfe seine Befugnisse
- Verbinde dein Instagram-Konto in Hub. Die zurückgegebene Kanal-ID identifiziert diese Verbindung; ein Instagram-Benutzername ersetzt sie nicht.
- Füge den Endpunkt von Hub in einem Client hinzu, der Remote-MCP über Streamable HTTP unterstützt. Folge seinem OAuth-Flow, oder verwende einen vom Inhaber erstellten Hub-Schlüssel, wenn der Client das unterstützt. Einrichtung und Verfügbarkeit hängen vom Client ab. Bewahre Zugangsdaten in seiner sicheren Konfiguration auf.
- Auf dem OAuth-Zustimmungsbildschirm von Hub wählst du Berechtigungen, Kanäle, Modus, Tageslimit und Laufzeit. Der Freigabemodus bereitet die Arbeit für die Genehmigung durch eine Person vor. Der Autopilot erlaubt das Veröffentlichen innerhalb der Delegation. Den erteilten Zugriff siehst du in Agenten ein oder widerrufst ihn dort.
- Rufe
whoamiundlist_channelsauf. Prüfe den tatsächlichen Modus und verwende die zurückgegebene Instagram-Kanal-ID. Lieslist_platformsfür die aktuellen Regeln. - Bereite erreichbare Medien vor. Verwende
register_media, um eine bestehende öffentliche URL zu prüfen, oderrequest_upload_url, um eine lokale Datei hochzuladen. Halte die resultierende URL bis zum geplanten Veröffentlichungszeitpunkt erreichbar.
Die vollständige Verbindungsabfolge und den Ergebnisvertrag findest du im Leitfaden zum MCP-Workflow. Einen Konnektor hinzuzufügen oder einen Prompt einzufügen autorisiert für sich allein kein Instagram-Konto.
Verbinde Mellow Hub in Claude zuerst mit reinem Lesezugriff
In einem Claude-Konto, in dem benutzerdefinierte Konnektoren verfügbar sind, öffnest du Anpassen → Konnektoren → Benutzerdefinierten Konnektor hinzufügen. Verwende den Namen Mellow Hub und die Remote-MCP-Server-URL https://www.mellow.world/mcp. Wenn du ihn schon hinzugefügt hast, verwende diesen bestehenden Konnektor. Claude kann die Authentifizierungseinstellungen von dieser Adresse aus ermitteln.
| Verbindungseinstellung | Wert |
|---|---|
| Transport | Streamable HTTP |
| Authentifizierung | Immer erforderlich |
| OAuth-Client | Wird automatisch per DCR registriert; kein Client-Secret zum Kopieren. |
- Öffne den Konnektor und wähle Verbinden. Melde dich bei Mellow an, wenn du dazu aufgefordert wirst. Der Zustimmungsbildschirm sollte Claude als anfragende Anwendung ausweisen.
- Lass für eine erste Prüfung nur
channels:readundposts:readausgewählt. Sie erlauben, die Verbindung zu lesen und eine Eingabe zu validieren. Sie erlauben weder das Hochladen von Medien noch das Erstellen von Beiträgen oder das Veröffentlichen. - Wähle deinen konkreten Instagram-Kanal und den Freigabemodus. Lege eine kurze Laufzeit fest, etwa einen Tag, und ein Tageslimit. Eine leere Kanalauswahl wird abgelehnt; der Zugriff auf künftige Kanäle erfordert eine ausdrückliche Entscheidung.
- Prüfe und genehmige diese Delegation selbst. Zurück in Claude bestätigst du, dass der Konnektor verbunden ist. Bitte Claude,
whoamiund dannlist_channelsaufzurufen, um die erlaubte Kanal-ID zu erhalten. Prüfe die erteilten Berechtigungen, Kanäle und die Laufzeit in der Zugriffsliste von Hub: Ein Client zeigt womöglich nur die Textzusammenfassung des Tools an, die nicht jedes strukturierte Feld enthält.
Verwende nur Mellow Hub. Rufe whoami auf, dann list_channels.
Verwende den einen Instagram-Kanal, den ich autorisiert habe. Rufe validate_post zweimal auf, mit
caption "Mellow test - example only": zuerst mit media [], dann mit
media ["https://example.com/test.jpg"]. Das sind Beispieleingaben.
Rufe die URL nicht ab und lies keine bestehenden Beiträge. Berichte jedes Validierungsergebnis.
Erstelle, plane, storniere oder veröffentliche nichts.Wenn Claude ein Tool verwenden möchte, prüfe seinen Namen und seine Eingabe, bevor du den Aufruf erlaubst. Erlaube für diese Prüfung jeden Aufruf einmal. Die Beispiel-URL testet nur die Eingaberegeln; sie ist kein echtes Bild zum Veröffentlichen. Die Validierung lädt die Medien nicht herunter und beweist keine Zustellung an Instagram.
Was die echte Verbindungsprüfung ergeben hat
Am 9. September 2026 hat eine echte Claude-Web-Verbindung OAuth mit nur channels:read posts:read, einem Instagram-Kanal, Freigabemodus und einer Laufzeit von einem Tag abgeschlossen. Claude hat whoami, list_channels und zweimal validate_post aufgerufen. Wir haben die Tool-Antworten und die Zusammenfassung des Assistenten geprüft.
| Eingabe | Beobachtetes Ergebnis |
|---|---|
| Beitragstext ohne Medien | Abgelehnt: Instagram braucht mindestens ein Medienelement. |
| Derselbe Beitragstext mit der Beispiel-Bild-URL | Hat die Eingabeprüfung für einen Kanal bestanden. |
Bei dieser Prüfung wurde kein Beitrag erstellt oder veröffentlicht. Anschließend haben wir den Testzugriff unter Agenten widerrufen und verifiziert, dass sowohl sein Access-Token als auch sein Refresh-Token widerrufen wurden. Das belegt diesen konkreten Verbindungs- und Validierungsablauf, nicht die Veröffentlichung auf Instagram oder die Kompatibilität mit jeder Client-Konfiguration.
Für deinen eigenen Entwurf gibst du einen echten Beitragstext und erreichbare Medien an. Braucht eine spätere Aufgabe Schreibzugriff, genehmige eine neue Delegation mit den nötigen Berechtigungen. Das Erneuern eines Tokens verlängert die gewählte Zugriffslaufzeit nicht.
Wähle das Format, bevor du validierst
Hub setzt für Instagram derzeit ein Limit von 2.200 Zeichen für den Beitragstext und einen Gesamtbereich von 1–10 Medienelementen durch. Platzierungen engen diesen Bereich ein. Das sind die Eingaberegeln, die Hub durchsetzt; sie können konservativer sein als Instagrams eigener Editor.
| Beitrag | Platzierung in Hub | Vorzubereitende Eingabe |
|---|---|---|
| Foto im Feed | timeline | Ein Bild. |
| Foto-Karussell | timeline | Zwei bis 10 Bilder in der gewünschten Reihenfolge. |
| Reel | reels | Genau ein Video. shareToFeed steuert, ob es auch im Haupt-Feed geteilt wird. |
| Story | stories | Genau ein Bild oder Video, sofern das Konto dafür berechtigt ist. |
Hub lehnt derzeit eine Mischung aus erkannten Bild- und Video-URLs in einem Beitrag ab. Verwende für die Karussell-Eingabe nur einen Medientyp. Das ist eine Einschränkung von Hub, keine Behauptung, dass Instagram selbst nie gemischte Karussells unterstützt.
Das Verhalten der Platzierungen dokumentiert Post for Me. Dateigröße, Codecs, Seitenverhältnis und Dauer müssen weiterhin die Anforderungen von Instagram erfüllen. Der Eingabe-Validator von Hub lädt die Datei nicht herunter und misst sie nicht, und bei einer URL ohne erkennbare Dateiendung kann der Medientyp unbestimmt bleiben.
Drei Beitragseingaben, die du anpassen kannst
Übergib eines dieser Objekte als Argumente an validate_post. Ersetze die Beispiel-Kanal-ID, die Medien-URLs, den Beitragstext und den Zeitstempel aus 2030 durch deine eigenen Werte. Das Datum ist bewusst nur ein Beispiel; verwende ein explizites UTC-Z oder einen Zeitzonen-Offset. Diese Payloads werden mit einem synthetischen Kanal gegen den Parser und den Validator von Hub geprüft. Es sind keine echten Veröffentlichungsbelege von 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
}
}
}Eine echte Medien-URL muss für den Veröffentlichungsdienst erreichbar sein, wenn er sie abruft. Meta beschreibt diese Anforderung in seiner Referenz zur Inhaltsveröffentlichung. Ein lokaler Pfad, ein Link zu einem privaten Cloud-Speicher oder eine abgelaufene signierte URL sind kein brauchbarer Ersatz.
Behebe das gemeldete Problem, bevor du den Beitrag erstellst
Lies ok, issues und notes im Validierungsergebnis. Eine erfolgreiche HTTP-Anfrage kann trotzdem ok: false enthalten. Das Problem benennt den betroffenen Kanal und das betroffene Feld.
| Problemcode | Was zu ändern ist |
|---|---|
channel_not_connected | Schließe die Verbindung des Kontos ab und verwende die zurückgegebene Kanal-ID. |
media_required | Füge Medien hinzu; Instagram kann über diesen Ablauf keinen reinen Textbeitrag veröffentlichen. |
media_too_many | Reduziere die Auswahl auf das aktuelle Maximum von Hub, 10; für ein Reel oder eine Story gilt ein kleineres Limit. |
reel_media_count | Verwende ein Video pro Reel. Für mehrere Reels bereitest du separate Beiträge vor. |
reel_needs_video | Liefere für ein Reel ein Video, oder wähle für Fotos die Feed-Platzierung. |
story_media_count | Verwende ein Element pro Story-Anfrage. |
media_kinds_mixed | Halte erkannte Bilder und Videos in getrennten Hub-Beiträgen. |
caption_too_long | Kürze den Beitragstext auf höchstens 2.200 Zeichen. |
Probiere den kostenlosen Beitrags-Check aus, bevor du ein Konto verbindest. Er verwendet dieselben Eingaberegeln mit Beispielzielen. Die authentifizierte Validierung prüft tatsächlich verbundene Kanäle; keines der beiden Ergebnisse garantiert die spätere Zustellung durch den Anbieter.
Plane einmal und prüfe das Ergebnis auf Instagram
Nach einer erfolgreichen Prüfung rufst du create_post mit demselben vorgesehenen Beitrag und einem stabilen idempotencyKey auf, zum Beispiel ceramics-instagram-reel-slot-001. Das Erstellen ist der Schritt, der die eigentliche Veröffentlichung vorbereitet oder plant. Im Freigabemodus wartet sie auf die Genehmigung; im Autopilot kann sie zur gewählten Zeit weiterlaufen. Prüfe zuerst das aktuelle Kontingent deines Tarifs.
Bewahre die zurückgegebene Beitrags-ID auf. Geht die Antwort auf das Erstellen verloren, wiederhole dieselbe Anfrage mit demselben Schlüssel. Erzeuge keinen neuen Schlüssel nur wegen eines Timeouts. Ein geänderter Beitrag braucht einen neuen Schlüssel.
Rufe get_post auf und sieh dir den Instagram-Eintrag in targets an. Lies seinen endgültigen Status, die öffentliche URL oder den Fehler. Dass Hub einen Beitrag annimmt, beweist nicht, dass Instagram ihn veröffentlicht hat. Bei einer Anfrage an mehrere Netzwerke kann ein anderes Ziel erfolgreich sein, während Instagram fehlschlägt.
Für Server-Integrationen, die HTTP direkt verwenden, liefert das REST-Rezept zum Planen die entsprechenden Anfragen und den Idempotenz-Header. Für die erste Einrichtung verbinde deinen Instagram-Kanal und validiere einen Entwurf, bevor du einen wiederkehrenden Zeitplan vorbereitest.