Instagram MCP Server
Instagram MCP Server
Ein gehosteter Model Context Protocol (MCP)-Server, der Claude, Cursor, Windsurf und jedem anderen MCP-Client zwei schreibgeschützte Instagram-Tools bereitstellt. Suche ein öffentliches Profil per Handle und durchsuche dessen öffentlichen Post-Feed als strukturiertes JSON.
Er liest öffentliche Daten über Konten. Er agiert nicht als Konto. Es gibt nichts zu verbinden und kein Konto von dir ist irgendwo im Ablauf beteiligt.
https://mcp.hasdata.com/api/mcp?apis=instagram
Inhalt
Related MCP server: instagram-mcp
Was du brauchst
Ein MCP-Client, der streamable HTTP mit benutzerdefinierten Headern spricht. Ein HasData-API-Schlüssel aus dem Dashboard, kostenlos erstellbar ohne Karte, und die Testversion deckt 100 Aufrufe ab. Sonst nichts. Dies ist ein Remote-Server. Es gibt kein Paket zu installieren, keinen Container zu starten und keinen lokalen Prozess, der laufen muss.
Schnellstart
URL |
|
Transport | HTTP, streamable |
Auth-Header |
|
Die Server-URL ist für jeden Client gleich. Wir betreiben ihn hands-on in Claude Code und Claude Desktop. Die anderen Blöcke folgen dem jeweils dokumentierten Format des Clients für einen Remote-Server.
Clients mit OAuth-Unterstützung können dieselbe URL als Connector hinzufügen und sich anmelden, ohne einen Schlüssel in eine Konfigurationsdatei zu legen.
claude mcp add --transport http instagram "https://mcp.hasdata.com/api/mcp?apis=instagram" \
--header "x-api-key: HASDATA_API_KEY"Claude Desktop lädt nur lokale (stdio) Server aus seiner Konfigurationsdatei, daher wird ein Remote-Server über die mcp-remote-Brücke erreicht. Node muss auf dem Rechner installiert sein.
claude_desktop_config.json:
{
"mcpServers": {
"instagram": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.hasdata.com/api/mcp?apis=instagram",
"--header",
"x-api-key:HASDATA_API_KEY"
]
}
}
}Der x-api-key:-Wert trägt kein Leerzeichen nach dem Doppelpunkt. Claude Desktop übergibt das Argument ohne Shell, und ein Leerzeichen würde den Header teilen. Ein Client mit OAuth-Unterstützung kann stattdessen die URL als benutzerdefinierten Connector hinzufügen und die Brücke überspringen.
.cursor/mcp.json:
{
"mcpServers": {
"instagram": {
"url": "https://mcp.hasdata.com/api/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"instagram": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}{
"mcpServers": {
"instagram": {
"url": "https://mcp.hasdata.com/api/mcp?apis=instagram",
"type": "streamableHttp",
"headers": { "x-api-key": "HASDATA_API_KEY" },
"disabled": false
}
}
}.vscode/mcp.json:
{
"servers": {
"instagram": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.gemini/settings.json:
{
"mcpServers": {
"instagram": {
"httpUrl": "https://mcp.hasdata.com/api/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}Beispiel-Prompts
Jeder davon ist ein Tool-Aufruf, sofern die Anzahl nichts anderes angibt.
Rufe das Profil für
@nasaab und nenne mir die Follower-Anzahl, die Kategorie und jeden Link in der Bio.
Ein Aufruf, 10 Credits. Für ein öffentliches Konto enthält die Profilantwort bereits die zwölf neuesten Posts, daher ist für eine Nachfrage zu aktuellen Aktivitäten kein zweiter Aufruf nötig.
Vergleiche
@nasa,@natgeound@bbcearthnach Followern, veröffentlichten Posts und ob es sich jeweils um ein Geschäftskonto handelt.
Drei Aufrufe, 30 Credits. Einer pro Handle.
Durchsuche die letzten fünfzig Posts von
@nasaund liste jeden Hashtag mit seiner Häufigkeit auf.
Fünf Aufrufe, 50 Credits. Zwölf Posts kommen pro Aufruf, und fünfzig benötigt fünf Seiten.
Für die letzten zwölf Posts auf
@natgeonenne mir Likes, Kommentare und die in jeder Bildunterschrift erwähnten Konten.
Ein Aufruf, 10 Credits. Engagement-Zahlen und Erwähnungen kommen in den Post-Objekten bereits geparst.
Zwei Dinge machen das möglich. Hashtags und Erwähnungen kommen als Arrays an, die aus der Bildunterschrift geparst wurden, und ein Agent zählt sie, statt einen Regex über Prosa laufen zu lassen. Und eine Profilabfrage liefert den aktuellen Feed in derselben Antwort. Deshalb landen so viele Recherchefragen in einem einzigen Aufruf.
Tools
Zwei Tools, beide read-only, beide auf einen öffentlichen Konto-Handle ausgerichtet. Die Beispiele unten sind aus echten Aufrufen gekürzt, und die Zahlen darin ändern sich, wenn Konten posten. Lies sie als Formen. Jeder Tool-Name verlinkt auf seine Endpunkt-Referenz.
Die Beispiele sind die Nutzlast, nicht die gesamte Antwort. Ein tools/call-Ergebnis enthält einen Textblock, und dieser Text ist selbst JSON mit url, status, text und json, wobei die gescrapten Daten unter json liegen. Aus einer rohen JSON-RPC-Antwort ist der Pfad result.content[0].text, geparst, dann .json. Ein Chat-Client entpackt das für dich, und Code, der direkt mit dem Endpunkt spricht, tut das nicht.
Ein Instagram-Profil abrufen
hasdata_instagram_profile_getInstagramProfile
Ein öffentliches Profil per Handle.
Parameter | Typ | Erforderlich | Hinweise |
| string | ja | Benutzername ohne |
Gibt id, username, fullName, biography, businessCategory, verified, isBusinessAccount und isProfessionalAccount zurück, die Zähler followersCount, followsCount, postsCount, highlightsCount und igtvVideoCount, sowohl profilePicUrl als auch profilePicUrlHD, sowie die Arrays latestPosts, latestIgtvVideos und relatedProfiles.
Die Kern-Identitätsfelder und die Follower- und Following-Zähler kommen für jedes öffentliche Konto zurück. Die Felder darüber hinaus hängen davon ab, was das Konto selbst preisgibt. Lies die optionalen Felder also mit einem Standardwert.
Links leben in zwei Feldern, die nicht dasselbe sind.
bioLinksist das Array aller Links in der Bio.externalUrlsist trotz des Pluralnamens ein einzelner String und enthält den primären Link, manchmal mit einem abschließenden Schrägstrich, der der Array-Version fehlt. LiesbioLinks, wenn du alle haben willst.
latestPostsundlatestIgtvVideostragen nicht identische Felder. Video-Einträge fügentaggedUsershinzu, und die Post-Objekte hier lassen dasproductTypeweg, das das Posts-Tool enthält. Code, der beide Arrays durch einen Parser laufen lässt, muss die zusätzlichen Schlüssel als optional behandeln.
{
"id": "528817151",
"username": "nasa",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible. ✨",
"businessCategory": "Government Agencies",
"bioLinks": [
"https://www.nasa.gov",
"https://science.nasa.gov/mission/roman-space-telescope/",
"http://intern.nasa.gov"
],
"externalUrls": "https://www.nasa.gov/",
"followersCount": 104397669,
"followsCount": 92,
"postsCount": 4887,
"verified": true,
"isBusinessAccount": true,
"latestPosts": [ "…twelve most recent posts, same shape as the posts tool…" ],
"relatedProfiles": [
{ "id": "…", "username": "…", "fullName": "…", "profilePicUrl": "…" }
]
}relatedProfiles ist die eigene Vorschlagsliste von Instagram für das Konto und umfasst einige Dutzend Einträge. Es ist ein günstiger Weg, eine Wettbewerbsgruppe zu erweitern, ohne Handles zu raten.
Instagram-Posts abrufen
hasdata_instagram_posts_getInstagramPosts
Der öffentliche Post-Feed für einen Handle, Seite für Seite.
Parameter | Typ | Required | Beschreibung |
| string | ja | Benutzername ohne |
| number | Ungefähre Obergrenze für Posts in einer Antwort. Zwölf ist das echte Maximum, und größere Werte holen nicht mehr | |
| string | Das |
limitist eine grobe Obergrenze und keine exakte Anzahl. Zwölf Posts sind eine Instagram-Seite und die harte Obergrenze für einen einzelnen Aufruf, undlimit: 50gibt zwölf zurück. Unterhalb der Obergrenze landet die Anzahl nahe der gewünschten Zahl, ohne sie immer zu treffen, und wie nah hängt vom Konto ab. Gemessen an@nasagab ein Limit von 2 vier Posts zurück, 6 sechs, 11 zehn und 13 zwölf. Behandle es als „nicht mehr als ungefähr so viele“ und lies die Array-Länge, statt sie anzunehmen.
Die Antwort wiederholt die Identitätsfelder des Kontos neben den Posts.
username,id,fullName,verifiedund beide Avatar-URLs kommen auf jeder Seite an. Praktisch zum Beschriften von Zeilen und wissenswert, bevor du einen separaten Profilaufruf machst, um sie zu bekommen.
Jeder Post trägt id, shortcode, caption, type, productType, hashtags, mentions, likesCount, commentsCount, timestamp, url, displayUrl, images, dimensionsWidth, dimensionsHeight, ownerId und ownerUsername.
{
"username": "nasa",
"id": "528817151",
"fullName": "NASA",
"verified": true,
"latestPosts": [
{
"id": "3967213292204992434",
"shortcode": "DcOX3hWFiey",
"caption": "With your powers combined…\n\nThis colorful picture of the cosmos is the product of teamwork between our @NASAHubble, @NASAWebb, and @NASAChandraXray telescopes. […] \n\n#NASA #Universe #Nebula",
"type": "Image",
"hashtags": ["#NASA", "#Universe", "#Nebula"],
"mentions": ["@NASAHubble", "@NASAWebb", "@NASAChandraXray"],
"likesCount": 78412,
"commentsCount": 402,
"timestamp": "2026-08-18T16:02:11.000Z",
"url": "https://www.instagram.com/p/DcOX3hWFiey/"
}
],
"pagination": {
"morePostsAvailable": true,
"nextPageToken": "3968050822236429248_528817151",
"hasdataLink": "https://api.hasdata.com/scrape/instagram/posts?handle=nasa&nextPageToken=3968050822236429248_528817151"
}
}Hashtags und Erwähnungen behalten ihre #- und @-Präfixe, was wichtig ist, wenn du sie gegen eine Liste joinst, die du selbst erstellt hast. morePostsAvailable ist das Flag, auf das du beim Paging verzweigst, und hasdataLink ist dieselbe nächste Seite als REST-URL, nützlich, wenn du einen Agenten-Aufruf von Hand nachstellen willst.
Fehler und Fehlerpfade
Dein Client sieht fast nie einen HTTP-Fehlercode von einem Tool-Aufruf. Die MCP-Ebene antwortet mit 200 und legt den Fehler in das Ergebnis, mit isError auf true und dem Grund als Text. Der Agent liest eine Nachricht, wo du eine Statuszeile erwarten würdest.
Ein falscher Schlüssel erscheint als Tool-Ausgabe, nicht als fehlgeschlagene Verbindung. Das Auflisten von Tools akzeptiert jeden nicht-leeren Schlüssel, und der Client schließt seinen Handshake ab und zeigt Grün. Der erste Tool-Aufruf kommt dann mit isError: true und dem Text HasData API error: 401 Unauthorized zurück. Achte auf diesen String, denn nichts früher im Ablauf meldet das Problem.
Ein fehlender Schlüssel ist der einzige echte HTTP-Fehler. Die Autorisierung läuft vor jedem Tool, und die Verbindung selbst schlägt mit 401 fehl.
Ein Argument, das das Schema bricht, wird abgelehnt, bevor es zu einer Anfrage wird. Der Server antwortet mit isError: true und dem Text MCP error -32602: Input validation error, wobei das Feld benannt wird. Es wird nichts abgerufen und nichts berechnet.
Ein Handle, das nicht aufgelöst wird, ist ein sauberer Fehler, keine leeren Daten. Es gibt isError: true mit HasData API error: 400 Bad Request und requestMetadata.status auf error gesetzt. Das ist der gute Fall, weil der Fehler eindeutig ist. Teste das Flag statt der Array-Länge.
Ein Konto, dessen Daten nicht öffentlich sind, gibt keinen Post-Feed zurück. Die Tools decken öffentliche Konten ab, und es gibt nichts zu lesen bei einem, das es nicht ist. Behandle ein fehlendes latestPosts als außerhalb des Rahmens und nicht als leeren Feed.
Ergebnisse, die Daten tragen, tragen auch eine requestMetadata.id, die im Support zitierenswert ist, plus html- und json-Links zum gespeicherten Artefakt dieses genauen Aufrufs.
Preise, kostenloser Tarif und Limits
Jedes Instagram-Tool kostet 10 Credits pro erfolgreichem Aufruf. Die Antwortgröße ändert den Preis nicht. Ein Profil mit zwölf angehängten Posts kostet dasselbe wie eines ohne.
Die kostenlose Testversion ist 1.000 Credits über 30 Tage ohne Karte, oder 100 Instagram-Aufrufe. Danach bekommt ein aktives Konto weiterhin 100 Credits täglich aufgefüllt, wenn sein Guthaben unter 100 fällt, sodass ein Agent mit geringem Volumen auf dem kostenlosen Tarif unbegrenzt läuft.
Bezahlte Tarife beginnen bei 49 $ pro Monat für 200.000 Credits oder 20.000 Aufrufe. Der Stückpreis fällt mit dem Volumen, von 2,45 $ pro 1.000 Aufrufen im Einstiegstarif auf 0,99 $ bei Business, 0,83 $ bei Growth und 0,75 $ bei den größten High-Volume-Tarifen.
Ihr Plan legt auch die Parallelität fest. Die kostenlose Testversion erlaubt 1 Anfrage gleichzeitig, Startup 15, Business 30, Growth 50, und die Volumen-Tarife reichen von 200 bis 1.500. Behandeln Sie den Überlauf-Fall defensiv in allem Unbeaufsichtigten, denn ein Agent, der sich über mehrere Handles ausbreitet, erreicht die Obergrenze vor Ihnen.
Das Paging kostet bei jedem Aufruf einen Call. Ein Prompt, der hundert Beiträge über zwei Konten durchläuft, sind achtzehn Calls und 180 Credits. Die Testversion reicht bei Profilvergleichen weiter als bei tiefen Feed-Crawls.
Tool-Auswahl
?apis=instagram legt genau diese zwei Tools offen. Der Parameter nimmt eine Liste, und ?apis=instagram,tiktok,youtube gibt Ihrem Agenten drei Social-Plattformen auf einmal. Lassen Sie den Parameter weg und Sie erhalten alles, was HasData offenlegt, aktuell 57 Tools.
Eine schmale Liste ist meist die bessere Standardeinstellung. Ein Modell, das zwischen zwei Tools wählt, trifft öfter die richtige Entscheidung als eines, das zwischen siebenundfünfzig wählt, und die Tool-Beschreibungen selbst kosten bei jeder Runde Kontext.
Plattformübergreifender Vergleich ist der übliche Grund, die Liste zu erweitern. Stellen Sie dieselbe Frage an einen Instagram-Handle und einen TikTok-Handle, und es ist ein Prompt, sobald beide offengelegt sind.
Wie es sich vergleicht
Fast jeder Instagram-MCP-Server macht etwas anderes als dieser, und das macht die Wahl ungewöhnlich klar.
Die gängigen betreiben ein Konto. Einige umschließen die Instagram-Graph-API, um Beiträge zu veröffentlichen, Kommentare zu lesen und die Konten zu verwalten, die Sie administrieren. Andere kümmern sich um Direktnachrichten. Die Engagement-Analyse-Server verlangen INSTAGRAM_USERNAME und INSTAGRAM_PASSWORD in einem Env-Block, gemäß ihren eigenen Einrichtungsanweisungen, weil sie sich als Sie anmelden und browsen. Alle davon sind das richtige Werkzeug, wenn die Aufgabe darin besteht, ein Konto zu betreiben, das Sie kontrollieren.
Dieser Server meldet sich nie als jemand an, was eine andere Aufgabe ist. Jede Frage, die er beantwortet, betrifft einen Handle, den Sie nicht besitzen, und der Aufruf ist identisch, egal welcher Handle das ist.
Konto-betreibender Server | Dieser Server | |
Als was er agiert | Ihr Konto, über ein Token oder eine Session | Nichts, er liest öffentliche Daten |
Was Sie konfigurieren | Anmeldedaten oder eine Graph-API-App, pro Konto | Ein API-Schlüssel, einmal |
Welche Handles er abdeckt | Die Konten, die Sie administrieren | Jeder öffentliche Handle |
Veröffentlichen und Messaging | Ja, das ist der Punkt | Nicht angeboten |
Ausgabe | Auf das Konto begrenzt, das Sie betreiben | JSON für jeden öffentlichen Handle, Hashtags und Erwähnungen geparst |
Was Sie ausführen | Einen Python- oder Node-Prozess lokal | Eine URL und einen Header |
Kosten | Kostenlos | 10 Credits pro Aufruf |
Zwei Zeilen entscheiden es. Wenn Sie posten, kommentieren oder antworten müssen, kann dieser Server Ihnen überhaupt nicht helfen. Wenn Sie dieselben Felder über hundert Handles brauchen, zu denen Sie keine Beziehung haben, kann ein Server, der um Ihre eigenen Anmeldedaten herum gebaut ist, Ihnen auch nicht helfen.
Die entscheidende Achse ist der Umfang, nicht die Politur. Ein Server, der um Ihren eigenen Login herum gebaut ist, kann nur die Konten erreichen, die Sie administrieren, egal wie gut seine Ausgabe ist. Dieser beantwortet dieselbe Frage für jeden öffentlichen Handle, und die Felder kommen als geparste Arrays zurück, die nichts kosten, um sie zu aggregieren.
Was dieser Server nicht tut. Keine Kommentare, keine Stories, keine Reels über das hinaus, was der Feed meldet, keine Direktnachrichten, keine Hashtag- oder Ortsuche und nichts, das schreibt. Er liest zwei Dinge gut.
FAQ
Was ist ein Instagram-MCP-Server?
Ein Server, der Instagram-Daten als Tools offenlegt, die ein KI-Client aufrufen kann. Der Client sendet einen Tool-Aufruf über das Model Context Protocol, der Server holt die Daten und gibt strukturiertes JSON zurück, und das Modell arbeitet mit dem Ergebnis und sieht nie eine HTML-Seite. Dieser hier legt zwei schreibgeschützte Tools offen und läuft remote. Der Client verbindet sich mit einer URL und startet keinen lokalen Prozess.
Gibt es einen offiziellen Instagram-MCP-Server?
Meta veröffentlicht keinen allgemeinen Zweck. Es gibt einen offiziellen MCP für Meta-Werbung, und der deckt Werbekonten und Kampagnen ab, nicht Profil- und Beitragsdaten. Alles andere in diesem Bereich ist von jemand anderem gebaut.
Welche Daten sind im Umfang?
Öffentliche Profilfelder und der öffentliche Beitrags-Feed, für öffentliche Konten, per Handle. Ein privates Konto gibt weiterhin seinen Header, die Follower- und Following-Zahlen und ein private: true-Flag zurück, aber keine Biografie und keine Beiträge, da es keinen öffentlichen Feed zu lesen gibt. Sie sind verantwortlich dafür, wie Sie die Ergebnisse verwenden, einschließlich der Einhaltung der Instagram-Nutzungsbedingungen und des für Sie geltenden Rechts.
Muss ich etwas hosten oder ausführen?
Nein. Dies ist ein Remote-MCP-Server über streamable HTTP. Nichts zu installieren, keine Python-Umgebung, kein Prozess, der neu gestartet werden muss.
Sind die Daten live oder gecacht?
Live. Jeder Aufruf holt zum Zeitpunkt der Anfrage und trägt seine eigene requestMetadata.id. Zwei identische Aufrufe sind zwei getrennte Abrufe und keine Wiedergabe einer gespeicherten Kopie. Zähler wie Follower und Likes verfolgen das Konto und bewegen sich mit ihm.
Wie viele Beiträge kann ich bekommen?
Zwölf pro Aufruf, eine Instagram-Seite, und weitere Seiten kommen über pagination.nextPageToken. Bei einem öffentlichen Konto enthält die Profilsuche dieselben zwölf ohne zusätzliche Kosten, sodass kurze Feed-Fragen oft gar keinen Beiträge-Aufruf brauchen.
Was passiert, wenn Instagram sein Markup ändert?
Nichts auf Ihrer Seite. Wir verfolgen die Änderungen und halten das Antwortschema stabil, und Feldnamen und -typen bleiben an Ort und Stelle. Ein Feld ohne Wert fehlt im Element, statt vorhanden und null zu sein, und deshalb sollten optionale Felder mit einem Standardwert gelesen werden.
Kann ich einen Server für mehrere Plattformen nutzen?
Ja. Der apis-Parameter nimmt eine Liste, und ?apis=instagram,tiktok,youtube gibt Ihrem Agenten drei Plattformen auf einmal.
Welche Clients funktionieren?
Jeder MCP-Client, der streamable HTTP mit benutzerdefinierten Headern unterstützt. Die obigen Konfigurationen sind getestet. Clients mit OAuth-Unterstützung können die URL stattdessen als Connector hinzufügen.
HasData-Links
Produktseiten und Request-Builder | |
Server-Dokumentation | |
Alle 57 Tools in einem Server | |
Client-Walkthroughs | |
Die anderen Plattformen, die wir parsen | |
Tarife und Credit-Kosten | |
Schlüssel und Nutzung |
Entwicklung
Dieses Repository ist Konfiguration und Dokumentation für einen Remote-Server. Es gibt keinen Build-Schritt und nichts zu containerisieren.
Es trägt jedoch einen Vertragstest. Die README verspricht zwei Tools mit bestimmten Parametern, und die Upstream-Tool-Liste kann sich ohne einen Commit hier ändern, und das würde diese Datei stillschweigend lügen lassen. Der Test behauptet das Versprechen und läuft wöchentlich in CI sowie bei jedem Push.
HASDATA_API_KEY=your_key_here npm testAuf PowerShell:
$env:HASDATA_API_KEY = "your_key_here"; npm testDer letzte Check macht einen echten Aufruf und kostet 10 Credits, was der Preis eines Kanarienvogels ist, der aus dem richtigen Grund scheitern kann. Das Auflisten von Tools gelingt mit jedem nicht-leeren Schlüssel, und ein Test, der nur Tools auflistet, bleibt mit einem widerrufenen grün.
Mitwirken
Korrekturen an den Tool-Tabellen und den Antwortbeispielen sind der nützlichste Beitrag, denn das sind die Teile, die abdriften. Fügen Sie den Aufruf, den Sie gemacht haben, und die Antwort, die Sie erhalten haben, hinzu. Pull-Requests von Forks führen die Suite ohne Schlüssel aus, und die Live-Checks überspringen statt rot zu werden.
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
- FlicenseAqualityNot gradedmaintenanceEnables access to Instagram data through EnsembleData API, allowing retrieval of user information, posts, reels, follower counts, and search functionality for users, hashtags, and locations.9
- FlicenseBqualityCmaintenanceProvides Instagram analytics, media downloads, and search capabilities through an MCP interface for use with Claude and other MCP clients.4340
- FlicenseNot gradedqualityCmaintenanceA remote MCP server that provides tools to query live Meta (Facebook+Instagram) and TikTok organic social data, such as follower counts, insights, recent posts, and aggregated overviews.
- FlicenseNot gradedqualityCmaintenanceProvides unified access to social media data across nine networks (Instagram, TikTok, YouTube, etc.) through a set of MCP tools for profiles, posts, search, and comments, backed by the SocialBridge API.
Related MCP Connectors
Unified social-media data across 10 networks: profiles, posts, search, comments, cross-search.
Social media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.
Social media MCP: publish, schedule & analyze posts on TikTok, Instagram, YouTube, LinkedIn & X
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/HasData/instagram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server