insta-mcp
Integrates with a single Instagram professional account to read and reply to comments and direct messages, hide/unhide comments, list recent media and conversations, track new comments/messages, send DMs, and retrieve account and media insights.
Click on "Deploy 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., "@insta-mcpcheck for new Instagram comments and DMs from the last 24 hours"
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.
insta-mcp
Serveur MCP distant pour un seul compte Instagram professionnel : lire et répondre aux commentaires et aux messages privés, lire les statistiques. Il se branche à Claude comme connecteur personnalisé et se protège par OAuth.
Fork réduit de AleemHaider/instagram-mcp (MIT). Ce qui change :
Connexion Instagram (
graph.instagram.com), sans page Facebook.Jeton Instagram renouvelé automatiquement chaque semaine (il expire à 60 jours).
Transport HTTP (streamable HTTP) au lieu de stdio, pour un hébergement Docker.
OAuth intégré pour un seul propriétaire : Claude s'enregistre (DCR), tu te connectes avec un mot de passe sur la page
/login, PKCE obligatoire.Outils réduits : pas de publication (Postiz s'en charge), pas de suppression.
Outils
list_new_commentsetlist_new_messagespour ne traiter que les nouveautés.mcpépinglé en 1.x (la 2.x casse l'original).
Outils
Outil | Rôle |
| Profil et nombre de jours avant expiration du jeton Instagram |
| Derniers posts et Reels |
| Commentaires d'un post, avec réponses |
| Commentaires reçus depuis une date, hors les tiens |
| Répondre à un commentaire |
| Masquer / ré-afficher un commentaire (réversible) |
| Conversations privées |
| Messages d'une conversation |
| Messages privés reçus depuis une date, hors les tiens |
| Répondre en message privé (fenêtre de 24 h, 1000 caractères max) |
| Statistiques |
Limite connue de l'accès standard Meta : le nom de l'auteur d'un commentaire n'est pas toujours renvoyé. Il l'est dans les messages privés.
Related MCP server: Instagram MCP Server
Sécurité
/mcprépond401sans jeton valide. Les jetons OAuth durent 1 h ; les jetons de renouvellement 30 jours et changent à chaque usage.Seules deux adresses de retour sont acceptées à l'enregistrement : le callback de Claude (
https://claude.ai/api/mcp/auth_callback) et les adresses locales (Claude Code). Personne ne peut enregistrer un autre client.La page
/loginbloque 15 minutes après 5 mauvais mots de passe.Sur le disque (
/data) : le jeton Instagram et les empreintes des jetons OAuth, enchmod 600. Jamais le mot de passe.Le jeton Instagram voyage dans l'URL des appels Meta (c'est ce qu'impose l'API) : les logs
httpxsont coupés pour qu'il n'apparaisse jamais.Optionnel : filtrer
/mcpet/tokensur la plage d'Anthropic160.79.104.0/21au niveau du reverse proxy. Ne filtre pas/authorizeni/login: c'est ton navigateur qui les ouvre.
Prérequis Meta
Une app Meta de type Business avec le produit Instagram › API setup with Instagram login, en mode Live (politique de confidentialité et suppression des données renseignées).
Ton compte Instagram ajouté en Testeur(se) Instagram, invitation acceptée.
Un jeton généré dans Generate access tokens, avec les permissions
instagram_business_basic,instagram_business_manage_comments,instagram_business_manage_messages,instagram_business_manage_insights.
Installation (Docker)
L'image est publiée automatiquement sur ghcr.io/mac-s/insta-mcp à chaque
modification de main (amd64 et arm64), après les tests.
Ajoute ce service à ton docker-compose.yml existant :
insta-mcp:
image: ghcr.io/mac-s/insta-mcp:latest
container_name: insta-mcp
restart: unless-stopped
environment:
PUBLIC_URL: "${INSTA_MCP_PUBLIC_URL}"
IG_ACCESS_TOKEN: "${INSTA_MCP_IG_TOKEN}"
MCP_ADMIN_PASSWORD: "${INSTA_MCP_ADMIN_PASSWORD}"
volumes:
- ./insta-mcp:/data
ports:
- "127.0.0.1:8010:8000"
read_only: true
tmpfs:
- /tmp
security_opt:
- no-new-privileges:true
cap_drop:
- ALLEt ces variables à ton .env (voir .env.example) :
INSTA_MCP_PUBLIC_URL=https://insta-mcp.example.com
INSTA_MCP_IG_TOKEN=IGAA...
INSTA_MCP_ADMIN_PASSWORD=... # openssl rand -base64 24Puis :
mkdir -p insta-mcp && sudo chown 10001 insta-mcp # le conteneur tourne en uid 10001
docker compose pull insta-mcp && docker compose up -d insta-mcp
docker compose logs -f insta-mcpTon reverse proxy envoie https://insta-mcp.example.com vers le port 8010, sans
réécriture de chemin. Si ton proxy tourne lui-même dans Docker, remplace
127.0.0.1:8010:8000 par 8010:8000, ou branche le conteneur sur le réseau du proxy.
Mise à jour : docker compose pull insta-mcp && docker compose up -d insta-mcp.
Vérification rapide :
curl -i https://insta-mcp.example.com/mcp # → 401 + WWW-Authenticate
curl https://insta-mcp.example.com/.well-known/oauth-protected-resource/mcpBrancher sur Claude
Personnaliser › Connecteurs › Ajouter un connecteur personnalisé :
URL :
https://insta-mcp.example.com/mcpAuthentification : connexion OAuth (enregistrement automatique)
Claude ouvre la page /login : entre la valeur de INSTA_MCP_ADMIN_PASSWORD.
Pour Claude Code :
claude mcp add --transport http insta https://insta-mcp.example.com/mcp
Changer le jeton Instagram
Remplace INSTA_MCP_IG_TOKEN dans .env puis docker compose up -d insta-mcp. Un jeton
différent de celui du premier démarrage remplace celui stocké dans data/.
Si tu n'utilises pas le serveur pendant plus de 60 jours, le jeton expire :
génère-en un nouveau de la même façon.
Développement
python -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]'
pytestThis server cannot be deployed
Maintenance
Related MCP Connectors
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Run Instagram automation on your own real phones from Claude, Cursor or any AI agent.
Publish to Instagram from chat — official Graph API, OAuth 2.1, free for your own posts.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables sending and receiving Instagram Direct Messages, managing conversations, downloading media, viewing user profiles and stories, and interacting with posts through natural language in Claude.MIT
- AlicenseAqualityBmaintenanceConnects Claude Desktop and other MCP clients to the Instagram Graph API for reading analytics, managing comments, and publishing photos, carousels, and reels.1123 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready Remote MCP Server that gives Claude direct, tool-based access to your Instagram Business account through the Meta Graph API — profile data, posts, comments, publishing, insights, analytics, hashtags, messaging, and real-time webhooks.9 npmMIT
- FlicenseNot gradedqualityCmaintenanceConnects Claude to the official Meta Instagram Graph API (read-only) for retrieving Instagram profile, media, insights, and comments as MCP tools over Streamable HTTP.-