MCP para Instagram: publica fotos, carruseles y Reels
Una guía de MCP para Instagram con Mellow Hub: requisitos de la cuenta, inicio de sesión con Instagram o Facebook, entradas de publicación probadas, programación y soluciones a los errores de validación más comunes.
Por Mellow · Actualizado el¿Puede un asistente de IA publicar en Instagram a través de MCP?
Sí, cuando el asistente tiene una herramienta de publicación autorizada y una cuenta de Instagram conectada que cumpla los requisitos. Mellow Hub expone esas herramientas en https://www.mellow.world/mcp. Un cliente MCP remoto compatible puede validar una publicación, programarla dentro de la delegación del propietario y leer el resultado final en cada destino.
Empieza por la cuenta y un borrador real. MCP es la conexión de la herramienta; Instagram sigue decidiendo si la cuenta, los permisos y el material pueden publicarse. Esta guía trata de Mellow Hub. Para planificar tu propio contenido de Instagram en iPhone o en la web, consulta la guía de planificación de Mellow.
¿Qué cuenta de Instagram necesito?
Usa una cuenta profesional de Instagram: Business o Creator. Una cuenta personal no puede usar este flujo de la API de publicación. En Hub, abre Cuentas, elige Instagram y completa tú mismo la conexión de la cuenta.
| Forma de inicio de sesión | Qué preparar |
|---|---|
| Inicio de sesión con Instagram | La ruta directa. La API de inicio de sesión con Instagram de Meta no requiere una página de Facebook vinculada. |
| Inicio de sesión con Facebook | La cuenta profesional de Instagram vinculada a una página de Facebook, con el acceso adecuado a la página. |
Son rutas de autorización distintas. Elige la que corresponda a la configuración de tu cuenta; completar una no concede todos los permisos de la otra. La colección oficial de la API de Instagram de Meta documenta la diferencia. La conexión gestionada que usa Hub se describe en la documentación de Post for Me.
Las historias necesitan una comprobación adicional: la documentación de inicio de sesión con Facebook de Meta limita la publicación de historias a las cuentas Business. Que un formato aparezca en las reglas de entrada de Hub no significa que tu cuenta pueda publicarlo. Confirma la cuenta conectada y el resultado de la entrega antes de contar con ese formato.
Conecta el asistente y comprueba su autoridad
- Conecta tu cuenta de Instagram en Hub. El ID de canal que se devuelve identifica esa conexión; el nombre de usuario de Instagram no lo sustituye.
- Añade el endpoint de Hub en un cliente compatible con MCP remoto por Streamable HTTP. Sigue su flujo OAuth, o usa una clave de Hub creada por el propietario si ese cliente lo admite. La configuración y la disponibilidad dependen del cliente. Guarda las credenciales en su configuración segura.
- En la pantalla de consentimiento OAuth de Hub, elige permisos, canales, modo, tope diario y caducidad. El modo de revisión prepara el trabajo para que una persona lo apruebe. El piloto automático permite publicar dentro de la delegación. Consulta o revoca el acceso resultante en Agentes.
- Llama a
whoamiy alist_channels. Comprueba el modo real y usa el ID de canal de Instagram devuelto. Leelist_platformspara conocer las reglas vigentes. - Prepara material accesible. Usa
register_mediapara inspeccionar una URL pública existente, orequest_upload_urlpara subir un archivo local. Mantén la URL resultante accesible hasta la hora prevista de publicación.
Para la secuencia completa de conexión y el contrato del resultado, usa la guía del flujo de trabajo MCP. Añadir un conector o pegar un prompt, por sí solo, no autoriza una cuenta de Instagram.
Conecta Mellow Hub en Claude primero con acceso de solo lectura
En una cuenta de Claude con conectores personalizados disponibles, abre Personalizar → Conectores → Añadir conector personalizado. Usa el nombre Mellow Hub y la URL del servidor MCP remoto https://www.mellow.world/mcp. Si ya lo añadiste, usa ese conector existente. Claude puede descubrir la configuración de autenticación desde esa dirección.
| Ajuste de conexión | Valor |
|---|---|
| Transporte | Streamable HTTP |
| Autenticación | Siempre obligatoria |
| Cliente OAuth | Se registra automáticamente mediante DCR; no hay secreto de cliente que copiar. |
- Abre el conector y selecciona Conectar. Inicia sesión en Mellow si te lo pide. La pantalla de consentimiento debe identificar a Claude como la aplicación que solicita acceso.
- Para una primera comprobación, deja seleccionados solo
channels:readyposts:read. Permiten leer la conexión y validar una entrada. No permiten subir material, crear publicaciones ni publicar. - Elige tu canal concreto de Instagram y el modo de revisión. Fija una caducidad corta, por ejemplo un día, y un tope diario. Una selección de canales vacía se rechaza; el acceso a canales futuros requiere una elección explícita.
- Revisa y aprueba tú mismo esa delegación. Al volver a Claude, confirma que el conector está conectado. Pídele que llame a
whoamiy luego alist_channelspara obtener el ID del canal permitido. Comprueba los permisos, los canales y la caducidad concedidos en la lista de accesos de Hub: un cliente puede mostrar solo el resumen en texto de la herramienta, que no incluye todos los campos estructurados.
Usa solo Mellow Hub. Llama a whoami y luego a list_channels.
Usa el único canal de Instagram que autoricé. Llama a validate_post dos veces con
el texto "Mellow test - example only": primero con media [] y luego con
media ["https://example.com/test.jpg"]. Son entradas ilustrativas.
No descargues la URL ni leas publicaciones existentes. Informa de cada resultado de validación.
No crees, programes, canceles ni publiques nada.Cuando Claude pida usar una herramienta, revisa su nombre y su entrada antes de permitir la llamada. Para esta comprobación, permite cada llamada una vez. La URL de ejemplo solo prueba las reglas de entrada; no es una imagen real para publicar. La validación no descarga el material ni demuestra la entrega en Instagram.
Qué devolvió la comprobación real de la conexión
El 9 de septiembre de 2026, una conexión real de Claude web completó OAuth con solo channels:read posts:read, un canal de Instagram, modo de revisión y caducidad de un día. Claude llamó a whoami, list_channels y validate_post dos veces. Inspeccionamos las respuestas de las herramientas además del resumen del asistente.
| Entrada | Resultado observado |
|---|---|
| Texto sin material | Rechazado: Instagram necesita al menos un elemento multimedia. |
| El mismo texto con la URL de imagen ilustrativa | Superó la comprobación de entrada para un canal. |
En esta comprobación no se creó ni publicó ninguna publicación. Después revocamos la concesión de prueba en Agentes y verificamos que tanto su token de acceso como el de actualización quedaron revocados. Esto demuestra ese flujo concreto de conexión y validación, no la publicación en Instagram ni la compatibilidad con todas las configuraciones de cliente.
Para tu propio borrador, aporta un texto real y material accesible. Si una tarea posterior necesita escribir, aprueba una nueva delegación con los permisos necesarios. Renovar un token no amplía la caducidad de acceso elegida.
Elige el formato antes de validar
Actualmente Hub aplica un límite de 2200 caracteres para el texto y un rango general de 1–10 elementos multimedia para Instagram. Las ubicaciones estrechan ese rango. Son las reglas de entrada que Hub aplica; pueden ser más conservadoras que el propio editor de Instagram.
| Publicación | Ubicación en Hub | Entrada que preparar |
|---|---|---|
| Foto en el feed | timeline | Una imagen. |
| Carrusel de fotos | timeline | De dos a 10 imágenes en el orden que quieras. |
| Reel | reels | Exactamente un vídeo. shareToFeed controla si se comparte en el feed principal. |
| Historia | stories | Exactamente una imagen o un vídeo, según los requisitos de la cuenta. |
Actualmente Hub rechaza mezclar URLs de imagen y de vídeo reconocidas en una misma publicación. Usa un solo tipo de material para la entrada del carrusel. Es una limitación de Hub, no una afirmación de que Instagram nunca admita carruseles mixtos.
El comportamiento de las ubicaciones está documentado por Post for Me. El tamaño del archivo, los códecs, la proporción y la duración siguen teniendo que cumplir las reglas de Instagram. El validador de entrada de Hub no descarga ni mide el archivo, y una URL sin extensión reconocible puede dejar su tipo de material sin determinar.
Tres entradas de publicación que puedes adaptar
Pasa uno de estos objetos como argumentos a validate_post. Sustituye el ID de canal de ejemplo, las URLs del material, el texto y la fecha de 2030 por tus propios valores. La fecha es deliberadamente ilustrativa; usa una Z UTC explícita o un desfase horario. Estas cargas se comprueban contra el analizador y el validador de Hub con un canal sintético. No son recibos reales de publicación en Instagram.
One feed photo
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "A closer look at the glaze on this cup.",
"media": [
"https://cdn.example.com/your-cup.jpg"
],
"options": {
"instagram": {
"placement": "timeline"
}
}
}An ordered photo carousel
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "From clay to finished cup, in three stages.",
"media": [
"https://cdn.example.com/your-clay.jpg",
"https://cdn.example.com/your-process.jpg",
"https://cdn.example.com/your-cup.jpg"
],
"options": {
"instagram": {
"placement": "timeline"
}
}
}One Reel
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "How this handle is attached.",
"media": [
"https://cdn.example.com/your-process.mp4"
],
"options": {
"instagram": {
"placement": "reels",
"shareToFeed": true
}
}
}Una URL de material real debe ser accesible para el servicio de publicación cuando la descargue. Meta describe este requisito en su referencia de publicación de contenido. Una ruta local, un enlace a una unidad privada o una URL firmada caducada no sirven como sustituto.
Corrige el problema indicado antes de crear la publicación
Lee ok, issues y notes en el resultado de la validación. Una petición HTTP correcta puede traer igualmente ok: false. El problema nombra el canal y el campo afectados.
| Código del problema | Qué cambiar |
|---|---|
channel_not_connected | Termina de conectar la cuenta y usa el ID de canal devuelto. |
media_required | Adjunta material; Instagram no puede publicar una publicación solo de texto por este flujo. |
media_too_many | Reduce el conjunto al máximo actual de Hub, 10; un Reel o una historia admiten menos. |
reel_media_count | Usa un vídeo por Reel. Para varios Reels, prepara publicaciones separadas. |
reel_needs_video | Aporta un vídeo para el Reel, o elige la ubicación del feed para las fotos. |
story_media_count | Usa un elemento por solicitud de historia. |
media_kinds_mixed | Mantén las imágenes y los vídeos reconocidos en publicaciones de Hub separadas. |
caption_too_long | Acorta el texto a 2200 caracteres o menos. |
Prueba el comprobador de publicaciones gratuito antes de conectar una cuenta. Usa las mismas reglas de entrada con destinos de ejemplo. La validación autenticada comprueba los canales conectados reales; ninguno de los dos resultados garantiza la entrega final por parte del proveedor.
Programa una vez y verifica el resultado en Instagram
Tras una comprobación válida, llama a create_post con la misma publicación prevista y una idempotencyKey estable, por ejemplo ceramics-instagram-reel-slot-001. Crear es el paso que prepara o programa la publicación real. En modo de revisión espera la aprobación; en piloto automático puede continuar a la hora elegida. Comprueba antes la cuota de tu plan.
Guarda el ID de publicación devuelto. Si se pierde la respuesta de creación, reintenta la misma petición con la misma clave. No generes una clave nueva solo por un tiempo de espera agotado. Una publicación modificada necesita una clave nueva.
Llama a get_post e inspecciona la entrada de Instagram en targets. Lee su estado final, la URL pública o el error. Que Hub acepte una publicación no demuestra que Instagram la haya publicado. En una solicitud multired, otro destino puede tener éxito mientras Instagram falla.
Para integraciones de servidor que usen HTTP directamente, la receta de programación por REST ofrece las peticiones equivalentes y la cabecera de idempotencia. Para una primera configuración, conecta tu canal de Instagram y valida un borrador antes de preparar una programación recurrente.