Instagram con 1Social
1Social publica en la cuenta de Instagram del usuario e informa lo que realmente llegó.
Configuración (una vez)
Estos pasos activan el servidor MCP de 1Social. Si herramientas como list_accounts no están disponibles, conéctalo primero. El inicio de sesión es OAuth en el navegador; no hay clave API que almacenar. Pregunta al usuario antes de ejecutar estos comandos: el paso de inicio de sesión abre una página donde él mismo inicia sesión en 1Social.
- OpenClaw:
openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}', luegoopenclaw mcp login 1social. Verifica conopenclaw mcp doctor 1social --probe. - Hermes: añade a
~/.hermes/config.yaml:luegomcp_servers: 1social: url: "https://mcp.1social.dev/mcp" auth: oauthhermes mcp login 1social(en un host sin interfaz gráfica:hermes mcp login 1social --flow device). - Claude Code:
claude mcp add --transport http 1social https://mcp.1social.dev/mcp - Cualquier otro cliente: https://1social.dev/mcp lista la configuración para cada uno.
El usuario necesita una cuenta de 1Social. Las cuentas nuevas comienzan con una prueba gratuita; publicar después de la prueba requiere un plan de pago (https://1social.dev/pricing).
Flujo de trabajo
- Encuentra la cuenta. Llama a
list_accounts. Devuelve los canales conectados con sus ids, los límites en vivo de cada red, el plan y el crédito mensual restante. Si no hay ninguna cuenta de Instagram conectada, indícale al usuario que conecte una en https://1social.dev/app — conectar requiere un navegador y no se puede hacer desde el chat. Silist_accountsinforma un límite diferente al de este skill, confía enlist_accounts. - Redacta para la red. Escribe la publicación según las reglas siguientes. Una publicación es una lista de
segments; cada segmento es{ text, mediaIds? }. - Adjunta contenido multimedia.
- El usuario adjuntó un archivo en el chat → colócalo en
media. - Tienes un enlace https público → colócalo en
mediaUrls. - Solo tienes un archivo en disco (OpenClaw, Hermes, Claude Code, Codex u otro agente CLI) → llama a
upload_mediay sigue los pasos de subida que indica su descripción, luego coloca lapublicUrldevuelta enmediaUrls. Una URL de localhost nunca funciona. Antes de eso, muéstrale al usuario exactamente qué archivos subirás y espera un sí: una subida obtiene un enlace público de inmediato, y rechazar la publicación después no elimina el archivo.
- El usuario adjuntó un archivo en el chat → colócalo en
- Vista previa. Llama a
preview_postcon los ids de canal y el borrador. Es gratuito y no publica nada. Corrige cada problema que informe y previsualiza de nuevo. - Confirma con el usuario. Muestra el texto final, la cuenta a la que va, el contenido multimedia y cuándo se publicará. Publicar es público y algunas redes no pueden eliminar una publicación, así que espera un sí claro.
- Publica o programa. Llama a
publish_post.scheduledAt: nullpublica ahora; una marca de tiempo UTC ISO-8601 como2026-11-03T07:00:00Zla programa (en el futuro, como máximo 30 días después). Convierte la hora local del usuario a UTC tú mismo, y si mencionan una hora sin zona horaria, pregunta cuál. Establece unidempotencyKey(una cadena estable de 8 a 128 caracteres para este borrador) para que una llamada repetida no pueda publicar dos veces. - Informa con honestidad. El resultado es un recibo por red. Informa cada red exactamente como se devuelve.
unknownsignifica que 1Social no pudo determinar si la publicación se realizó — dilo claramente, nunca lo llames éxito o fracaso.
Reglas de Instagram
- Cada publicación necesita una imagen o un video. Un pie de foto solo se rechaza — pídele al usuario contenido multimedia antes de redactar.
- Límite de pie de foto: 2200 caracteres. Hasta 30 hashtags; de 3 a 5 relevantes suelen funcionar mejor que una avalancha de etiquetas.
- La relación de aspecto de la imagen debe estar entre 4:5 (retrato) y 1.91:1 (paisaje). Cuadrado 1:1 es seguro. Los banners anchos son rechazados por Instagram con un error de "relación de aspecto".
- Tanto PNG como JPEG funcionan.
- Sin hilos: si el borrador tiene varios segmentos, 1Social los une en un solo pie de foto. Escribe un solo pie de foto.
- Los enlaces en los pies de foto no se pueden hacer clic en Instagram. Si el usuario quiere tráfico, sugiere redacción tipo "enlace en la biografía" en lugar de una URL directa.
- Una publicación de Instagram ya publicada no se puede eliminar a través de 1Social — Instagram no tiene una API de eliminación para ello. Asegúrate de que el usuario esté contento con el pie de foto antes de publicar.
Consejos de redacción
- Empieza con un gancho en los primeros 125 caracteres — eso es lo que se muestra antes de "más".
- Coloca los hashtags al final del pie de foto, después de un salto de línea.
Publicar también en otras redes
La misma cuenta de 1Social puede publicar una publicación en Instagram, TikTok, LinkedIn, X, Threads, Facebook Pages, YouTube Shorts y Bluesky a la vez: lista varios ids de canal de list_accounts. preview_post verifica el borrador con cada red seleccionada.
Después de publicar
- Consultar estado:
list_posts(proporciona unpostIdpara una sola publicación). Incluye métricas de interacción almacenadas cuando la red las reporta. - Cambiar una publicación programada:
update_post. Solo funciona antes de que la publicación se haya realizado. - Desprogramar:
cancel_post. Usa esto, nodelete_post, para una publicación que aún no se ha publicado. - Eliminar una publicación ya publicada:
delete_post, solo después de que el usuario lo confirme. Informa por red lo que realmente se eliminó: las publicaciones de Instagram, TikTok, Threads y YouTube permanecen visibles y solo el usuario puede eliminarlas. - Una entrega falló:
retry_deliveryreintenta una red y consume crédito nuevamente. Se rechaza para fallos permanentes, como una conexión revocada — entonces el usuario debe reconectar en https://1social.dev/app. - Una entrega es
unknown: pídele al usuario que revise la red. Solo cuando te diga si la publicación está activa, llama aconfirm_deliverycon su respuesta. Nunca adivines, y nunca usesretry_deliveryconforcesin preguntar — podría publicar una segunda copia.