Skip to main content
Glama
pedroantonnio

Instagram Public MCP

Instagram Public MCP für Vercel

Ein Remote-MCP-Server in Python, der nur öffentliche Instagram-Daten abfragt, ohne Instagram-Login, Cookies, Passwörter oder gespeicherte Kontositzungen.

Wichtig: Mobile-Feed-Instaloader-Patch

Dieser Build verwendet nicht das Standard-Instaloader-4.15.3-Paket.

Es pinnt den anonymen Profil/Beitrags-Fix aus Instaloader-Pull-Request #2722 unter:

3f72b47466cc505b92c6e9b0ca2f5689e93a6a89

Abhängigkeit:

instaloader @ https://github.com/alimony/instaloader/archive/3f72b47466cc505b92c6e9b0ca2f5689e93a6a89.zip

Der Patch ändert das anonyme Verhalten, sodass:

  • die Profilauflösung von api/v1/users/web_profile_info/ auf api/v1/feed/user/{username}/username/ zurückfallen kann;

  • die anonyme Beitragspaginierung api/v1/feed/user/{id}/ verwendet;

  • Beitragsseiten die max_id-Paginierung verwenden;

  • Elemente über Instaloaders iPhone/Mobile-Antwortmodell konvertiert werden;

  • Fehler von web_profile_info können sofort den Feed-Fallback erreichen, anstatt auf eine lange Retry/Backoff-Schleife zu warten.

Es wird kein authentifiziertes Instagram-Konto verwendet.

Related MCP server: instagram

Architektur

MCP Client
    |
    v
Vercel /api/mcp
    |
    v
Patched Instaloader (PR #2722)
    |
    v
Instagram mobile feed endpoint

MCP-Tools

get_instagram_profile

Gibt öffentliche Metadaten für ein Instagram-Profil zurück.

{
  "username": "instagram"
}

get_instagram_posts

Gibt aktuelle öffentliche Beiträge zurück.

{
  "username": "instagram",
  "count": 3
}

debug_instagram_connection

Untersucht die rohe Legacy-web_profile_info-HTTP-Antwort. Dieses Tool bleibt für Diagnosezwecke verfügbar, aber der gepatchte Instaloader kann auf den Mobile-Feed-Endpunkt zurückfallen, wenn dieser Endpunkt abgelehnt wird.

{
  "username": "instagram"
}

MCP-Ressourcen

instagram://profile/{username}
instagram://profile/{username}/posts

Cache

Standard-In-Memory-Cache:

CACHE_TTL_SECONDS=600
DEFAULT_POST_COUNT=12
MAX_POST_COUNT=30

Setzen Sie CACHE_TTL_SECONDS=0, um ihn zu deaktivieren.

Vercel-Instanzen sind ephemer, daher ist dieser Cache pro warmer Funktionsinstanz und nicht ein global geteilter Cache.

Bereitstellung auf Vercel

npm install -g vercel
vercel --prod

Die enthaltene vercel.json stellt die Funktion in São Paulo bereit:

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "regions": ["gru1"]
}

MCP-Endpunkt:

https://YOUR-PROJECT.vercel.app/api/mcp

Health-Endpunkt:

https://YOUR-PROJECT.vercel.app/api/health

Lokale Entwicklung

python -m venv .venv
pip install -r requirements.txt
uvicorn api.index:app --reload

MCP-Endpunkt:

http://127.0.0.1:8000/api/mcp

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "instagram-public": {
      "url": "https://YOUR-PROJECT.vercel.app/api/mcp"
    }
  }
}

Sicherheit

Dieses Repository enthält keine Instagram-Konto-Anmeldeinformationen.

Es enthält oder erfordert nicht:

  • Instagram-Benutzername/Passwort-Anmeldeinformationen

  • sessionid

  • csrftoken

  • fb_dtsg

  • authentifizierte Konto-IDs

  • gespeicherte Instaloader-Sitzungen

  • Instagram-Cookies

Einschränkungen

Der Server fragt nur öffentliche Daten ab und versucht nicht, private Profile zu umgehen.

Instagram kann anonymen Datenverkehr basierend auf der Bereitstellungs-IP weiterhin drosseln oder blockieren. Der Mobile-Feed-Patch behebt den bekannten defekten anonymen web_profile_info/Timeline-Pfad, kann jedoch nicht garantieren, dass Instagram Datenverkehr von jedem Hosting-Anbieter oder IP-Bereich akzeptiert.

v2.1.1 Profil-Kompatibilitäts-Fix

Der anonyme Mobile-Feed-Fallback kann optionale Profilfelder auslassen, die normalerweise in web_profile_info vorhanden sind.

Version 2.1.1 liest Profileigenschaften defensiv. Fehlende Werte wie biography, external_url oder Geschäftskonto-Metadaten werden als null zurückgegeben, anstatt dass get_instagram_profile fehlschlägt.

Der Beitragsabrufpfad ist gegenüber v2.1.0 unverändert.

Related MCP Connectors

Related MCP Servers