Cómo crear un agente de IA para redes sociales con Claude Code y Postproxy MCP

La mayoría de "agentes de IA para redes sociales" son un cron job con un prompt.
El modelo escribe el texto y luego una persona lo copia en cinco apps distintas. Se automatizó la escritura. El trabajo, no.
Si estás:
- llevando las redes de un producto y cansado de reescribir la misma novedad cinco veces,
- construyendo flujos de agentes sobre Claude Code,
- o gestionando varias marcas desde una sola terminal,
este es el setup que yo usaría.
Un agente de IA para redes sociales necesita dos cosas: un cerebro y unas manos. Claude Code es el cerebro. Las manos son lo difícil, porque cada plataforma tiene su propio flujo OAuth, su revisión de apps, sus reglas de media y sus rate limits. Conectar una herramienta para cada una son semanas de trabajo antes de que el agente publique nada.
El modelo nunca fue el cuello de botella.
Lo eran las integraciones.
Por qué el servidor MCP de Postproxy es la pieza que faltaba
Postproxy es una API unificada de redes sociales. Un solo endpoint publica en Instagram, Facebook, Threads, TikTok, X, YouTube, LinkedIn, Pinterest, Bluesky, Telegram y Google Business. Postproxy se encarga por su lado de las revisiones de apps y del OAuth de cada plataforma.

Lo que importa para los agentes es el servidor MCP alojado. Lo conectas una vez y Claude Code obtiene más de 100 herramientas que puede llamar por sí mismo. Cuando las listé, el servidor devolvió 117. Estas son las que usa este tutorial:
- Posts:
post_publish,post_update,post_publish_draft,post_status,post_delete,history_list - Programación:
queues_create,queues_list,queues_next_slot(colas de publicación con franjas semanales) - Analítica:
post_stats,profiles_statsysummary_get, que da una foto única de lo que salió, cómo funcionó y qué espera respuesta - Interacción:
comments_list,comments_create,comments_hide, además de mensajes directos (dm_chats_list,dm_message_send) y respuestas a reseñas de Google Business (profile_comments_create) - Cuentas:
auth_status,profiles_list,profile_groups_list
Eso es un agente que puede redactar, programar, publicar, medir y responder. No solo escribir textos.
👉 Postproxy tiene un plan gratuito con 10 posts al mes y sin tarjeta, suficiente para construir todo lo de este tutorial.
Qué vamos a construir
Un agente de Claude Code que:
- Toma una fuente (un artículo del blog, un changelog, una novedad de producto)
- Escribe una versión adaptada a cada plataforma
- Las guarda como borradores en Postproxy para que tú las apruebes
- Programa los posts aprobados en una cola semanal
- Te informa cada lunes de qué funcionó y qué necesita respuesta
La aprobación humana sigue en el proceso. Explico por qué al final.
En Claude web o Claude Desktop: sáltate los pasos 1 y 2
Este tutorial gira en torno a Claude Code, que se conecta a Postproxy con una API key. Si usas Claude en la web, en Claude Desktop o en el móvil, hay un camino más corto: añade el conector de Postproxy desde el directorio de conectores de Claude e inicia sesión. Sin API key, sin comandos en la terminal. Claude obtiene las mismas herramientas de Postproxy.
Todo lo que viene después del paso 2 sigue valiendo. La única diferencia es dónde van las reglas: en lugar de un archivo CLAUDE.md, pega las reglas del paso 3 en las instrucciones de un Proyecto de Claude. El paso 7 (ejecutarlo en headless con un horario) es lo único que necesita Claude Code.
Paso 1. Consigue tu API key de Postproxy
Crea una cuenta en app.postproxy.dev, conecta los perfiles sociales que quieres que use el agente y genera una API key.
Postproxy tiene dos tipos de key:
- Acceso completo: todos los grupos de perfiles de tu cuenta
- Limitada a un grupo de perfiles: restringida a una marca o cliente
Si gestionas más de una marca, dale al agente una key limitada por marca. Un agente que trabaja para el cliente A nunca debería poder publicar en el cliente B.
Antes de darle la key a un agente, comprueba que funciona. Una verificación rápida en Python:
import os
import requests
API_KEY = os.environ["POSTPROXY_API_KEY"]
response = requests.get(
"https://api.postproxy.dev/api/profiles",
headers={"Authorization": f"Bearer {API_KEY}"},
)
response.raise_for_status()
for profile in response.json()["data"]:
print(f'{profile["platform"]:<12} {profile["name"]:<25} {profile["status"]}')
Deberías ver una línea por cada cuenta conectada. En mi cuenta de prueba, que solo tiene conectado mi canal de YouTube, imprimió:
youtube Kevin Meneses González active
Si un perfil aparece como caducado, vuelve a conectarlo ahora, no cuando el agente falle a las 9 de la mañana.
Paso 2. Conecta el servidor MCP de Postproxy a Claude Code
Un comando:
claude mcp add --transport http postproxy \
https://mcp.postproxy.dev/mcp?api_key=YOUR_KEY
Ese es el servidor alojado. No hay nada que instalar.
Ahí la key viaja en la URL, así que mantenla fuera de grabaciones de pantalla y de configuraciones compartidas. Si la prefieres en una variable de entorno, Postproxy también ofrece un paquete local (Node.js 18+):
npm install -g postproxy-mcp
claude mcp add --transport stdio postproxy-mcp \
--env POSTPROXY_API_KEY=your-api-key \
--env POSTPROXY_BASE_URL=https://api.postproxy.dev/api \
-- postproxy-mcp
Ahora abre Claude Code y pide:
Check my Postproxy authentication status and list my connected profiles.
Claude llama a auth_status y profiles_list. Si ves tus cuentas, el agente ya tiene manos.
Paso 3. Dale reglas al agente en CLAUDE.md
Un agente sin reglas publicará encantado todo lo que escriba. Claude Code lee CLAUDE.md al inicio de cada sesión, así que ahí van los límites.
Crea una carpeta para el agente y añade este archivo:
# Social media agent
## Brand
- Product: Acme Analytics, a dashboard for Shopify stores
- Voice: direct, practical, no hype words ("revolutionary", "game-changer")
- Audience: store owners doing $10k–$500k/month
## Platform rules
- LinkedIn: 80–150 words, one insight, no hashtags in the body
- X: under 260 characters, one idea per post
- Threads and Bluesky: casual, can ask a question
- Instagram: needs an image; caption under 125 words, 3–5 hashtags at the end
## Hard rules
- ALWAYS create posts as drafts. Never publish directly.
- Never publish a draft unless I approve it in this conversation.
- Never delete posts.
- Before scheduling, check queues_next_slot instead of picking a time yourself.
- X is limited to 20 posts per 24h per account. Never plan more than 3 X posts a day.
Las reglas estrictas son lo importante. Lo demás es cuestión de gusto.
Paso 4. Convierte una fuente en borradores listos para cada plataforma
Ahora el flujo de verdad. Pega un changelog o indica a Claude un archivo:
Read ./changelog/2026-11.md. Write one post per platform for LinkedIn, X,
Threads and Bluesky following CLAUDE.md. Create each one as a draft in
Postproxy and give me a table with the draft IDs and the text.
Por detrás, Claude:
- Lee el archivo
- Llama a
profiles_listpara encontrar tus perfiles de LinkedIn, X, Threads y Bluesky - Escribe cuatro versiones distintas
- Llama a
post_publishuna vez por plataforma con el post como borrador - Devuelve la tabla para que la revises
Todavía no hay nada público. Lees los borradores, pides cambios ("haz el de X menos comercial") y Claude los actualiza con post_update.
Cuando te convenzan:
Approved. Publish the LinkedIn and Bluesky drafts now.
Schedule the X and Threads ones into the next free slots of my weekly queue.
Claude llama a post_publish_draft para los dos primeros y usa la cola para el resto. Después, post_status te dice, por plataforma, si cada uno salió o falló y por qué.
A partir de aquí puedes construir:
- un lote semanal de contenido a partir de tus tres últimos artículos del blog
- publicación del día de lanzamiento en todas las redes desde un solo prompt
- un flujo de "reutiliza este vídeo de YouTube" a partir de una transcripción
Paso 5. Configura una cola de publicación
Elegir horas a mano es justo el tipo de trabajo que el agente debería quitarte de encima. Las colas de Postproxy guardan franjas semanales y el agente coloca cada post en la siguiente libre.
Create a Postproxy queue called "Weekday mornings" with slots
Monday to Friday at 09:30 and 13:00, Europe/Madrid timezone.
Claude llama a queues_create con la zona horaria y las franjas. La herramienta también acepta un jitter de hasta 60 minutos, para que los posts no caigan cada día a las 09:30:00 exactas. A partir de ahí, basta con "prográmalo en la cola", y el agente pregunta a queues_next_slot dónde va el siguiente post.
La regla de CLAUDE.md de no elegir horas por su cuenta importa aquí. Evita que el agente apile cinco posts el lunes a las 9:00.
Paso 6. Cierra el ciclo: estadísticas y respuestas
Publicar es la mitad de las redes sociales. La otra mitad es ver qué funcionó y responder a la gente.
Cada lunes:
Give me last week's Postproxy summary. Which 3 posts performed best,
which comments are waiting for a reply, and draft a reply to each one
for me to approve.
summary_get le da al agente una foto única de posts, rendimiento y respuestas pendientes. Esto es parte de lo que devolvió para mi canal de YouTube:
"comments": {
"received": 26,
"awaiting_reply": 17,
"by_platform": { "youtube": 26 }
}
Diecisiete comentarios esperando respuesta, que yo nunca habría contado a mano. post_stats añade las cifras por post y comments_list trae los comentarios. El agente redacta las respuestas y, cuando las apruebas, las publica con comments_create.
También puede ocultar spam con comments_hide (Instagram, Facebook y Threads) y responder a reseñas de Google Business con profile_comments_create. En Google, una reseña solo admite una respuesta, así que volver a responder la actualiza.
Esta es la parte que la mayoría de setups de "IA para redes sociales" se saltan, y es donde un agente ahorra más tiempo.
Paso 7. Ejecútalo en headless con un horario
Todo lo anterior ocurre en una sesión interactiva. Claude Code también tiene un modo headless (claude -p), así que el informe del lunes puede ejecutarse sin que abras una terminal.
claude -p "Give me last week's Postproxy summary: top 3 posts, comments \
waiting for a reply, and draft replies. Do not publish or post anything." \
--allowedTools "mcp__postproxy__summary_get,mcp__postproxy__post_stats,mcp__postproxy__comments_list" \
> reports/weekly-$(date +%F).md
Fíjate en --allowedTools. La ejecución headless solo puede leer. No puede publicar, programar ni responder, aunque el prompt se tuerza. Las acciones de escritura se quedan en las sesiones interactivas, donde tú las apruebas.
Mete ese comando en cron o en un schedule de GitHub Actions, y el informe te estará esperando cada lunes por la mañana.
Los límites que de verdad importan
Un agente con acceso para publicar es un riesgo real para una marca. Estas son las reglas que yo trataría como innegociables:
- Borradores por defecto. El agente crea borradores. Tú los publicas.
post_publish_draftexiste exactamente para esto. - Una key limitada por marca. Una key de grupo de perfiles significa que un agente confundido no puede publicar en el cliente equivocado.
- Automatización de solo lectura. Todo lo que se ejecuta sin ti lleva
--allowedToolssolo con herramientas de lectura. - Respeta los límites de cada plataforma. X tiene un tope de 20 posts cada 24 h por cuenta en Postproxy. Escríbelo en CLAUDE.md para que el agente planifique en torno a eso.
- Prueba primero en un sandbox. Postproxy tiene un modo sandbox, así que puedes probar todo el flujo antes de que nada llegue a una cuenta real.
Ideas clave
- Lo difícil de un agente de IA para redes sociales son las integraciones con las plataformas, no el modelo. El servidor MCP de Postproxy lo resuelve con un comando.
- Claude Code más CLAUDE.md te da un agente con reglas: solo borradores, aprobación antes de publicar, nada de adivinar horarios.
- Los mejores resultados llegan al cerrar el ciclo: estadísticas y respuestas, no solo publicar.
No necesitas un modelo más grande para llevar tus redes sociales.
Necesitas un agente con manos y con límites claros.
👉 Empieza gratis con Postproxy: 10 posts al mes y sin tarjeta, suficiente para construir y probar todo este agente.