insta-pilot
Full control of Instagram professional accounts via the official Instagram Graph API: export account data (JSON/CSV), publish reels, photos, carousels and stories, read/reply/hide/delete comments, read and send DMs, fetch media and account insights (including demographics), and a unified triage inbox of unanswered comments and DMs. Supports multiple accounts, read-only mode, dry-run writes, and an audit log.
Uploads local media files (e.g. .mp4) temporarily to the user's Vercel Blob storage so they get a public URL accepted by the Instagram API, and deletes them after publishing.
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-pilotrevisa la bandeja de entrada y responde a los pendientes de hoy"
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-pilot
Instagram para Claude. Servidor MCP + skill que le da a Claude Code control de tus cuentas de Instagram mediante la API oficial (sin scraping frágil ni riesgo de ban): exportar toda la cuenta, publicar reels/fotos/carruseles/historias, leer y responder comentarios, leer y contestar DMs, analítica y una bandeja unificada de "lo que falta por responder".
Tú: responde a los comentarios de hoy
Claude: ig_inbox → 7 comentarios sin responder, 2 DMs
[tabla con respuestas propuestas en tu tono]
¿Las publico?
Tú: sí
Claude: ig_comment_reply ×7 ✓Qué incluye
Área | Tools |
Cuentas |
|
Perfil y scraping |
|
Métricas |
|
Comentarios |
|
Publicar |
|
DMs |
|
Triage |
|
Seguridad por diseño
Lista de bloqueo: cuentas que la herramienta se niega a tocar aunque tengas su token (
insta-pilot block <usuario>oINSTA_PILOT_BLOCKLIST).dry_runen todas las escrituras: Claude enseña lo que haría antes de hacerlo.Modo solo lectura:
INSTA_PILOT_READ_ONLY=1oculta todas las tools de escritura.Auditoría: cada escritura queda en
~/.insta-pilot/audit.jsonl.Tokens en local (
~/.insta-pilot/accounts.json), renovación automática antes de que caduquen (60 días).Reintentos con backoff ante límites de la API.
Related MCP server: instagram-mcp
Instalación
Requisitos: Node 20+, una cuenta de Instagram profesional (Business o Creator, se cambia gratis en Ajustes → Tipo de cuenta).
git clone https://github.com/dfadify-web/insta-pilot && cd insta-pilot
npm install && npm link
insta-pilot install # registra el MCP en Claude Code + instala la skillConseguir el token (5 min, una vez por cuenta)
developers.facebook.com/apps → Crear app → caso de uso "Gestionar mensajes y contenido en Instagram".
En API de Instagram → Configuración de la API con inicio de sesión de Instagram, añade tu cuenta (en Roles → Probadores de Instagram si te lo pide y acepta la invitación en Instagram → Ajustes → Apps y sitios web).
Pulsa Generar token junto a la cuenta y concede los permisos
instagram_business_basic,instagram_business_content_publish,instagram_business_manage_comments,instagram_business_manage_messages,instagram_business_manage_insights.insta-pilot add <TOKEN> insta-pilot doctor
En modo desarrollo de la app todo funciona para tus propias cuentas; no hace falta pasar la revisión de Meta.
Subir archivos locales
La API solo acepta URLs públicas. Para subir un .mp4 de tu disco, insta-pilot lo sube temporalmente a tu Vercel Blob y lo borra al publicar:
# Vercel → Storage → Blob → crear store → copiar el token read-write
setx INSTA_PILOT_BLOB_TOKEN "vercel_blob_rw_..."Sin token, pasa una URL pública en video / image.
CLI
insta-pilot add <TOKEN> [--secret APP_SECRET] añadir cuenta (con --secret canjea un token corto por uno de 60 días)
insta-pilot list | use <u> | remove <u> | block <u>
insta-pilot refresh [u] renovar token
insta-pilot doctor comprobar tokens y permisos
insta-pilot inbox [u] pendiente de responder
insta-pilot export [u] [--dms]Variables de entorno
Variable | Uso |
| Carpeta de config (por defecto |
|
|
| Cuentas bloqueadas extra, separadas por comas |
| Token Vercel Blob para subir archivos locales |
| Versión Graph API (por defecto |
Límites (de Instagram, no de la herramienta)
~50 publicaciones por cuenta cada 24 h.
DMs: solo responder a conversaciones que inició la otra persona, dentro de 24 h.
No da acceso a la lista de seguidores ni a likes por usuario.
Desarrollo
npm test # node:test con fetch simulado, sin tocar InstagramMIT © dfadify-web
Available Tools
24 toolsig_account_insightsARead-only
Métricas de la cuenta en un rango (por defecto últimos 28 días). Con breakdown (age|gender|country|city) devuelve demografía de seguidores.
Inputs: since, until, account, metrics, +1 more.
ig_accountsARead-only
Lista las cuentas configuradas, la activa y la lista de bloqueo.
Inputs: no named parameters.
ig_analyticsCRead-only
Análisis de rendimiento: top/peores publicaciones, mejores días y horas para publicar, medias de engagement y views.
Inputs: posts, account, time_zone.
ig_comment_deleteBDestructive
Elimina un comentario (irreversible).
Inputs: comment_id (required), account, dry_run.
ig_comment_hideB
Oculta (o muestra con hide=false) un comentario.
Inputs: comment_id (required), hide, account, dry_run.
ig_comment_replyC
Responde a un comentario.
Inputs: message (required), comment_id (required), account, dry_run.
ig_commentsCRead-only
Comentarios de una publicación con sus respuestas.
Inputs: media_id (required), limit, account.
ig_comments_toggleC
Activa o desactiva los comentarios de una publicación.
Inputs: enabled (required), media_id (required), account, dry_run.
ig_comments_unansweredBRead-only
Comentarios de otras personas a los que la cuenta aún no ha respondido, en las últimas N publicaciones.
Inputs: posts, account, max_age_days.
ig_conversationsBRead-only
Lista conversaciones de DM con el último mensaje y si esperan respuesta.
Inputs: limit, account, only_awaiting_reply.
ig_exportBRead-only
Scrapea TODA la cuenta a disco (perfil, todas las publicaciones, comentarios, métricas y opcionalmente DMs) en JSON + CSV.
Inputs: account, out_dir, with_dms, max_media, +2 more.
ig_inboxBRead-only
Bandeja unificada: comentarios sin responder + DMs que esperan respuesta. Punto de partida para "responde a todo".
Inputs: posts, account, max_age_days.
ig_media_getCRead-only
Detalle de una publicación (incluye hijos de carrusel).
Inputs: media_id (required), account.
ig_media_insightsBRead-only
Métricas de una publicación: views, reach, shares, saves, tiempo medio de visionado (reels)…
Inputs: media_id (required), account.
ig_media_listBRead-only
Lista publicaciones (reels, posts, carruseles) con likes, comentarios y permalink, de más reciente a más antigua.
Inputs: limit, account.
ig_messagesCRead-only
Mensajes de una conversación (más recientes primero).
Inputs: conversation_id (required), limit, account.
ig_profileBRead-only
Perfil de la cuenta: bio, seguidores, seguidos, nº de publicaciones.
Inputs: account.
ig_publish_carouselC
Publica un carrusel de 2–10 fotos/vídeos.
Inputs: items (required), account, caption, dry_run, +1 more.
ig_publish_imageC
Publica una foto (JPEG).
Inputs: image (required), account, caption, dry_run, +2 more.
ig_publishing_limitBRead-only
Cuota de publicaciones usada en las últimas 24 h (límite de la API).
Inputs: account.
ig_publish_reelA
Publica un reel (MP4 vertical 9:16, 3s–15min). Espera a que Instagram procese el vídeo y devuelve el permalink.
Inputs: video (required), cover, account, caption, +6 more.
ig_publish_storyC
Publica una historia (imagen o vídeo).
Inputs: media (required), account, dry_run.
ig_send_messageA
Envía un DM de texto. Solo funciona si la persona escribió en las últimas 24 h (regla de Instagram). recipient_id = with.id de ig_conversations.
Inputs: text (required), recipient_id (required), account, dry_run.
ig_use_accountCRead-only
Cambia la cuenta activa.
Inputs: username (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 24 tools
Most tools target clearly distinct resources and actions (media list/get/insights, comment reply/hide/delete, publish variants, DM tools). Mild overlap exists between ig_account_insights and ig_analytics, and between ig_inbox and the comment/DM listing tools, but the descriptions clarify the boundaries (demographic metrics vs. performance analysis; aggregate vs. raw lists).
Consistent ig_ prefix and snake_case verbs throughout (ig_publish_*, ig_comment_*, ig_media_*). Minor deviations: singular vs. plural (ig_comment_reply vs ig_comments, ig_comments_toggle) and some noun-only names (ig_profile, ig_inbox) break the strict verb_noun pattern, but it stays readable.
24 tools is on the heavier side but genuinely justified by the breadth of an Instagram management domain spanning accounts, media, publishing, comments, DMs, and analytics. Each area has a small coherent cluster, so few tools feel redundant.
Coverage is strong across the lifecycle: reading, publishing, comment moderation, DM handling, analytics, and bulk export. Gaps remain around editing/deleting published media or captions and follower/follow management, though these are largely restricted by the Instagram API.
Related MCP Connectors
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Instagram MCP for DM and comment automation, AI Agent and content publishing via Meta's official API
Publish and schedule Instagram posts, Reels and carousels from your AI assistant.
Schedule and publish social posts across 9 platforms (Instagram, LinkedIn, X, TikTok, Facebook, Threads, Pinterest, Bluesky, Mastodon) straight from Claude, ChatGPT, Cursor, or any MCP client. Create, edit, and reschedule posts, upload media, and pull account and post analytics, follower demographics, and best-time windows. 20 tools, free on every plan.
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
- AlicenseBqualityBmaintenanceEnables Claude to read and send Instagram DMs, manage threads and message requests, send media, and run autonomous conversations via the /dm skill.273MIT
- AlicenseNot gradedqualityCmaintenanceConnects Claude to Instagram through Meta's official API, enabling users to retrieve account insights, analyze professional profiles, publish photos/carousels/reels/stories, manage comments, read and respond to Direct messages, and call any Graph API endpoint.36 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables sending, reading, and managing Instagram Direct Messages from your own account through Claude Desktop or Cursor, including sending text, photo, and video messages, listing and searching chats and threads, downloading media from messages, and looking up user profiles, followers, posts, and stories. It also supports marking messages as seen and checking pending inbox threads.-