instagram-publish-mcp
Provides tools for publishing to an Instagram Business account, including media upload, container creation, processing status checks, publishing, commenting, and insights retrieval.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@instagram-publish-mcpPublish the image product.jpg to Instagram with caption 'New arrival!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-Server für Instagram-Veröffentlichungen
Ein MCP-Server, der einem KI-Agenten acht Werkzeuge gibt, um auf einem Instagram-Business-Konto zu veröffentlichen: Medien hochladen, Beitrag anlegen, Verarbeitungsstatus abfragen, veröffentlichen, kommentieren, Kommentare lesen und beantworten, Kennzahlen abrufen. Er kapselt ausschließlich die Meta Graph API und einen S3-kompatiblen Objektspeicher. Ablaufsteuerung, Zeitplan und Entscheidung, ob überhaupt veröffentlicht wird, bleiben beim aufrufenden Agenten.
Warum es existiert
Instagram nimmt keine Datei entgegen. Die Graph API erwartet eine öffentlich erreichbare URL, von der sie das Medium selbst abholt, und sie veröffentlicht in zwei Schritten: erst einen Container anlegen, dann — nachdem die Verarbeitung auf Instagram-Seite abgeschlossen ist — diesen Container freigeben. Wer das aus einem Agenten heraus tun will, braucht dazwischen einen Medienspeicher und eine Zustandsabfrage.
Dieser Server ist genau diese Zwischenschicht, und mehr nicht. Er entstand als Ersatz für eine Automatisierung über einen Workflow-Dienst, die für den Zweck zu schwer war: Für acht HTTP-Aufrufe braucht es keinen zweiten Dienst mit eigener Oberfläche, eigener Datenhaltung und eigenem Betriebsaufwand.
Related MCP server: Instagram MCP Server
Voraussetzungen
Der Aufwand liegt nicht im Code, sondern in der Freischaltung bei Meta. Realistisch sind das mehrere Stunden.
Ein Instagram-Konto vom Typ Business (nicht Creator, nicht privat).
Eine Meta-App mit dem Produkt „Instagram" und den Berechtigungen
instagram_business_basic,instagram_business_content_publishundinstagram_business_manage_comments.Das Instagram-Konto muss in der App als Tester hinterlegt sein, und die Einladung muss zusätzlich in den Instagram-Kontoeinstellungen angenommen werden. Beides ist nötig; eine Seite allein reicht nicht.
Ein S3-kompatibler Objektspeicher mit öffentlich lesbarem Bucket. Die Standardwerte sind auf Cloudflare R2 zugeschnitten, jeder andere S3-kompatible Dienst funktioniert bei angepasstem Endpunkt.
Installation
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .envDanach die .env ausfüllen. Sie liegt neben server.py und wird von dort
gelesen; über die Umgebungsvariable INSTAGRAM_MCP_ENV lässt sich ein anderer
Pfad setzen, falls die Zugangsdaten zentral verwaltet werden.
Die .env steht in der .gitignore und gehört unter keinen Umständen in ein
Repository. Sie enthält ein Token mit vollem Zugriff auf das Konto.
Bei einem MCP-Client registrieren
claude mcp add instagram-publish -- python /pfad/zu/server.pyDer Server spricht stdio und funktioniert mit jedem MCP-fähigen Client, nicht
nur mit dem Beispiel oben. Nach der Registrierung stehen die Werkzeuge in einer
neuen Sitzung als mcp__instagram-publish__* bereit.
Die Werkzeuge
Werkzeug | Zweck |
| Lokale Datei in den Objektspeicher, gibt die öffentliche URL zurück |
| Schritt 1 der Veröffentlichung, gibt die |
| Verarbeitungsstatus: |
| Schritt 2 — der echte, irreversible Beitrag |
| Kommentar unter einen eigenen Beitrag setzen |
| Kommentare lesen, liefert die |
| Auf einen einzelnen Kommentar antworten |
| Reichweite, Likes, Kommentare, Speicherungen |
Der Ablauf
upload_media("kachel.png", "2026-08-29/kachel.png")
-> https://<bucket>/2026-08-29/kachel.png
create_container(media_url, caption, is_video=False)
-> "17912345678901234"
get_status("17912345678901234")
-> "IN_PROGRESS" … warten …
-> "FINISHED"
publish_container("17912345678901234")
-> "18012345678901234" ab hier öffentlich sichtbarFür Reels ist is_video=True zu setzen; die Verarbeitung dauert dann spürbar
länger, weshalb get_status überhaupt existiert. Ein Container, der zu lange
liegen bleibt, geht in EXPIRED über und lässt sich nicht mehr veröffentlichen.
Token erneuern
Das langlebige Zugriffstoken gilt 60 Tage. Die Erneuerung ist die Stelle,
an der die Dokumentation von Meta in die Irre führt: Der naheliegende
Endpunkt ig_exchange_token ist für den ersten Tausch eines kurzlebigen Tokens
gedacht und antwortet auf ein bereits langlebiges Token mit
„Session key invalid". Richtig ist:
GET https://graph.instagram.com/refresh_access_token
?grant_type=ig_refresh_token
&access_token=<aktuelles Token>Das Ergebnis in INSTAGRAM_LONG_LIVED_TOKEN eintragen. Ein Token, das abläuft,
ohne erneuert worden zu sein, lässt sich nicht auffrischen — dann ist der
komplette Freischaltungsweg noch einmal fällig. Eine Erinnerung einige Tage vor
Ablauf ist keine Bequemlichkeit, sondern notwendig.
Grenzen
publish_container ist irreversibel und sofort öffentlich. Es gibt keinen
Entwurfszustand und keine Rücknahme über diesen Server. Das Werkzeug gehört
hinter eine ausdrückliche menschliche Freigabe und darf nicht in einer
automatischen Kette stehen, die ohne Rückfrage durchläuft. Der Beitrag lässt
sich danach nur noch von Hand in der App löschen, und auch das nicht
rückstandslos.
Das Token ist Vollzugriff auf das Konto. Wer die .env hat, kann
veröffentlichen, kommentieren und Kennzahlen lesen. Der Server gibt das Token
nie zurück und schreibt es nicht ins Log — die Log-Stufe von httpx wird
bewusst hochgesetzt, weil die Bibliothek sonst die vollständige Anfrage-URL
samt access_token im Klartext protokolliert. Das ist die einzige Stelle im
Code, an der ein Geheimnis auslaufen könnte.
Weiter offen, bewusst:
Kein Ratenlimit und keine Wiederholung. Läuft man in ein Limit der Graph API, wirft
raise_for_statuseine Ausnahme, und der aufrufende Agent muss damit umgehen. Für ein bis zwei Beiträge am Tag ist das unkritisch.Kein Liken von Kommentaren. Dafür wäre
instagram_business_manage_engagementnötig. Diese Berechtigung gibt es auf dem reinen Instagram-Login-Pfad nicht, sie setzt eine verknüpfte Facebook-Seite und den Facebook-Login-Pfad voraus.Kommentar-Endpunkte antworten im Entwicklungsmodus leer.
get_commentsliefert eine leere Liste, obwohl der Beitrag sichtbar Kommentare hat. Das ist kein Fehler im Server: Die App muss dafür auf „Live" geschaltet sein, was Datenschutzerklärung und Nutzungsbedingungen als erreichbare URLs voraussetzt. Diese Stunde Fehlersuche kann man sich sparen.mcp[cli]ist auf<2festgelegt. Der Server ist gegen die 1.x-API geschrieben (FastMCP). In 2.x heißt die KlasseMCPServer, der Import bricht dort. Die Umstellung ist überschaubar, aber nicht gemacht — ohne die Versionsgrenze läuft ein frisch geklontes Repository sofort in einenModuleNotFoundError.Keine Tests. Alle Werkzeuge sprechen mit einer fremden API; ein sinnvoller Test bräuchte einen Doppelgänger für die Graph API. Für den Umfang stand das bisher in keinem Verhältnis.
Lizenz
MIT, siehe LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables LLMs to interact with Instagram through a comprehensive toolkit for account management, content creation, messaging, social graph analysis, and content discovery.10
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to interact with Instagram Business accounts through the Graph API, supporting profile management, media publishing, insights retrieval, and direct messaging capabilities.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Instagram Business accounts by automating content publishing, scheduling posts, and analyzing performance metrics. Supports posts, stories, reels, and carousels with detailed audience insights and hashtag discovery.
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Instagram and Threads accounts — publish content, handle comments, view insights, search hashtags, and manage DMs through the Meta Graph API.594610MIT
Related MCP Connectors
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
60+ Meta Ads tools for AI agents: audits, campaign management, audiences and CAPI tracking.
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alebros20/instagram-publish-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server