Conecta Shager a Claude Code: un comando y ya preparas publicaciones para 50 cuentas desde la terminal
Agrega el servidor MCP remoto de Shager a Claude Code con claude mcp add y un encabezado bearer, elige el alcance, verifícalo y crea un borrador multicuenta.

Para conectar Shager a Claude Code, ejecuta claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_..." y luego revisa /mcp dentro de una sesión. Con eso registras el servidor MCP remoto de Shager sobre HTTP con streaming, y Claude Code puede listar de inmediato tus espacios de trabajo, tus cuentas conectadas y tus publicaciones. Una vez que tienes la clave de API, todo toma unos dos minutos.
Esta guía explica cómo obtener la clave, cómo elegir el alcance de configuración adecuado, cómo mantener el secreto fuera de git y cuál es la primera tarea real que vale la pena ejecutar.
¿Qué necesitas antes de empezar?
Necesitas dos cosas: Claude Code instalado y una clave de API de Shager que empiece con shgr_live_.
Hay dos formas de conseguir la clave. Si ya tienes una cuenta de Shager, una persona de tu equipo la crea en https://app.shager.ai/dashboard/agents y elige los permisos (read, write y, si quiere, publish). Si todavía no tienes cuenta, el agente puede registrarse solo con una llamada HTTP y recibir una clave de entorno de prueba. Ese flujo se explica en registro autónomo de agentes y reclamo, y la versión corta está en /auth.md.
Antes de pegar nada, unas palabras sobre los permisos. Durante la primera semana, dale a Claude Code solo read y write. Así puede crear espacios de trabajo, subir archivos y armar borradores, pero no puede programar ni publicar nada. Agregas publish más adelante, cuando ya confíes en los borradores que produce.

¿Cómo agregas el servidor con claude mcp add?
La documentación de MCP de Claude Code muestra la forma exacta de declarar un servidor HTTP remoto con un token bearer: --transport http, un nombre, la URL y --header. Para Shager queda así:
claude mcp add --transport http shager https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
La documentación aclara que claude mcp add guarda la configuración sin validar la credencial. Un error al escribir la clave no va a fallar en este paso. Falla después, cuando el cliente se conecta.
¿Qué alcance conviene usar?
El parámetro --scope define dónde se guarda la configuración. Según esa misma página de la documentación:
| Alcance | Dónde se guarda | Cuándo usarlo |
|---|---|---|
local (predeterminado) |
Tu configuración de usuario, solo para este proyecto | Estás probando Shager en un solo repositorio |
project |
.mcp.json en el repositorio, compartido con el equipo |
Todo el equipo ejecuta tareas de contenido desde este repositorio |
user |
Tu configuración de usuario, en todos los proyectos | Quieres tener Shager disponible donde sea que abras Claude Code |
Para una agencia, user suele ser la mejor opción. La distribución no depende de un código en particular.
claude mcp add --transport http shager --scope user https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
¿Cómo compartes la configuración sin subir la clave al repositorio?
Si quieres usar el alcance project para que tus compañeros reciban el servidor automáticamente, no escribas la clave directamente en .mcp.json. En los servidores HTTP, Claude Code admite la expansión de variables de entorno en url y headers, con ${VAR} o ${VAR:-default}. Sube esto al repositorio:
{
"mcpServers": {
"shager": {
"type": "http",
"url": "https://app.shager.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${SHAGER_API_KEY}"
}
}
}
}
Luego cada persona exporta su propia clave en el perfil de su shell:
export SHAGER_API_KEY="shgr_live_your_key_here"
Aquí importan dos detalles de la documentación. Si la variable no está definida, Claude Code carga la configuración de todos modos y envía el texto literal ${SHAGER_API_KEY}, con una advertencia en claude mcp list. Y algunos nombres de credenciales reservados, como ANTHROPIC_API_KEY, se expanden a vacío a propósito en los encabezados remotos, así que usa siempre un nombre de variable propio. SHAGER_API_KEY funciona bien.
Tener una clave por persona también le da sentido al registro de auditoría en https://app.shager.ai/dashboard/agents. Cada llamada del agente queda registrada con la clave que la hizo, así que puedes saber qué sesión creó cada borrador.
¿Cómo confirmas que funciona?
Desde la shell:
claude mcp list
claude mcp get shager
Dentro de una sesión, escribe /mcp. Un servidor que funciona bien aparece como conectado. Según la documentación, un servidor con credenciales incorrectas aparece como fallido y el detalle incluye el código de estado HTTP. En el caso de Shager, un 401 significa que el encabezado falta o está mal formado. El servidor espera exactamente Authorization: Bearer shgr_..., con la palabra Bearer y un solo espacio.
Después pídele a Claude algo barato y de solo lectura:
Call whoami on shager, then list my workspaces with their channel counts.
whoami devuelve la organización y los permisos de la clave. Si ves read y write pero no publish, la configuración está funcionando tal como debe.

¿Cuál debería ser la primera tarea real?
No empieces con “publica algo”. Empieza con un borrador que ponga a prueba las partes de Shager que importan a escala. Un buen primer prompt:
In the workspace "Northside Dental", list the channels and the account groups.
Upload this video as media: https://example.com/clips/whitening-30s.mp4
(width 1080, height 1920, duration_ms 30000).
Then create a DRAFT post (no schedule_at) to the group "All locations" as a REEL,
with a caption per channel that mentions the city in that account's name,
first_comment "Book a slot: " plus the cta_url,
cta_url https://northsidedental.example/book, campaign "whitening-oct".
Show me the per-channel captions before you call create_post.
Por detrás, Claude encadena list_channels, list_groups, upload_media_from_url y create_post. Tres campos de esa llamada hacen el trabajo pesado.
per_channelpermite que cada cuenta tenga su propio texto en lugar de cincuenta publicaciones idénticas. Tanto las redes como el público notan los duplicados, y por eso lo recomendamos en cómo evitar bloqueos por spam al publicar a escala.cta_urlgenera un enlace corto y una etiqueta UTM distintos para cada cuenta, conutm_contentidentificando la cuenta. Los clics vuelven desglosados por cuenta a través deget_analytics.- Pasar el ancho, el alto y
duration_msal subir el archivo le permite a Shager validar el Reel con las reglas de cada red antes de que entre en la cola.
Como no se pasó schedule_at, el resultado es un borrador. Lo revisas en la app de Shager o le pides a Claude un get_post.
¿Cómo controlas lo que Claude Code puede hacer?
Claude Code pide permiso antes de llamar a herramientas MCP, salvo que las autorices. Las herramientas MCP se llaman mcp__<server>__<tool>, así que para Shager verás mcp__shager__create_post, mcp__shager__list_posts, etc. Una lista de permitidos razonable para empezar autoriza las herramientas de lectura y deja todo lo que escribe sujeto a confirmación. Combínalo con una clave sin publish y tendrás dos frenos independientes: el cliente te pregunta y, pase lo que pase, el servidor se niega a programar.
Cuando estés listo para programar, crea una clave nueva con publish, cambia la variable de entorno y conserva la clave anterior de lectura y escritura para las sesiones de exploración. La API REST y el servidor MCP de Shager aplican los mismos permisos, así que la regla se cumple sin importar qué camino tome un script.
Lista de verificación para resolver problemas
| Síntoma | Causa probable | Solución |
|---|---|---|
/mcp aparece como fallido, 401 |
Al encabezado le falta Bearer o la clave está mal escrita |
Vuelve a agregar el servidor, o revisa que la variable de entorno esté exportada en la shell desde la que abriste Claude |
Las herramientas aparecen, pero create_post con schedule_at devuelve 403 |
La clave no tiene publish, o el entorno de prueba no fue reclamado |
Es lo esperado. Crea un borrador, o pide a una persona que agregue el permiso |
429 rate_limited |
Más de 120 solicitudes por minuto con una misma clave | Agrupa el trabajo; un solo create_post cubre muchas cuentas |
422 rejected |
Falló una regla de la red, por ejemplo un Reel demasiado largo | Lee el mensaje; indica la cuenta y la regla |
Preguntas frecuentes
¿Tengo que instalar algo además de Claude Code?
No. Shager funciona como un servidor MCP remoto, así que no hay ningún proceso local, contenedor de Docker ni paquete de npm que instalar. Claude Code se comunica directamente con https://app.shager.ai/api/mcp por HTTP con streaming.
¿Claude Code puede publicar sin que yo apruebe cada publicación?
Solo si la clave que usa tiene el permiso publish y una persona reclamó la cuenta. Sin ese permiso, las llamadas para programar y publicar devuelven 403, intente lo que intente el agente. Además, muchos equipos activan la aprobación del cliente en cada espacio de trabajo, lo que agrega una revisión humana antes de programar.
¿Shager admite inicio de sesión con OAuth para Claude Code?
Sí. El servidor MCP de Shager admite inicio de sesión con OAuth para cualquier cliente MCP compatible. Agrega el servidor sin la opción --header, ejecuta /mcp y elige autenticarte; luego inicia sesión en Shager y aprueba en el navegador. El encabezado con la clave de API que se muestra arriba sigue funcionando, y es la mejor opción para scripts y máquinas donde nadie puede iniciar sesión.
Siguiente paso
Cuando Claude Code ya ve tus espacios de trabajo, lo natural es convertir la rutina en algo repetible en lugar de volver a escribir prompts. La guía para crear una skill de Claude para Shager transforma el flujo de borradores de arriba en un comando /shager que todo tu equipo puede ejecutar, y la página para agentes enumera cada herramienta y cada endpoint si antes quieres ver el mapa completo.


