# Tu agente escribe. Shager lo lanza. Tú tienes el control.

Conecta Claude, ChatGPT, Cursor o cualquier cliente MCP iniciando sesión con OAuth, un bot con un código de dispositivo, y todo lo demás con una clave de API o la API REST. Tu agente sube un video o imágenes, prepara una publicación para todas las cuentas (un Reel, Short, historia, video de TikTok o publicación) y la revisa según las reglas de cada red. Publicar queda desactivado hasta que una persona lo activa.

Servidor MCP, API REST y documentación OpenAPI en todos los planes, gratis durante el periodo de lanzamiento.

## Un video. Ocho cuentas.

El agente sube el video con upload_media_from_url y envía una publicación con un grupo de cuentas. Shager devuelve una versión por cuenta, en un formato que su red admite: un Reel, un Short, un video de TikTok, un video de LinkedIn. Cada una tiene su propia hora de envío.

MCP: `https://app.shager.ai/api/mcp`

```json
// 1 · upload the video once
{
  "name": "upload_media_from_url",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "url": "https://studio-noa.co.il/media/workshop.mp4"
  }
}
// → { "id": "cm2wheelvideo", "kind": "VIDEO",
//     "width": 1080, "height": 1920, "duration_ms": 24000 }  (measured by Shager)

// 2 · one post to every account
{
  "name": "create_post",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "group_ids": ["cm2allaccounts"],
    "caption": "A new evening workshop…",
    "media_ids": ["cm2wheelvideo"],
    "cta_url": "https://studio-noa.co.il/workshop",
    "youtube_made_for_kids": false,
    "per_channel": [{
      "channel_id": "cm2tiktok",
      "tiktok_privacy": "SELF_ONLY"
    }],
    "schedule_at": "2026-10-20T09:00:00+03:00",
    "idempotency_key": "workshop-oct-20"
  }
}
```

```json
{
  "status": "SCHEDULED",
  "scheduled_at": "2026-10-20T06:00:00.000Z",
  "stagger_seconds": { "min": 30, "max": 90 },
  "issues": [],
  "destinations": [
    { "network": "INSTAGRAM", "format": "REEL",  "state": "PENDING" },
    { "network": "FACEBOOK",  "format": "REEL",  "state": "PENDING" },
    { "network": "YOUTUBE",   "format": "SHORT", "state": "PENDING" },
    { "network": "TIKTOK",    "format": "VIDEO", "state": "PENDING" },
    { "network": "LINKEDIN",  "format": "VIDEO", "state": "PENDING" },
    { "network": "X",         "format": "FEED",  "state": "PENDING" }
    // … 2 more, each with its own dispatch_at
  ],
  "calendar_notes": []
}
```

- `validate_post` devuelve todos los problemas de todas las cuentas a la vez, antes de guardar nada.
- `calendar_notes` marca las festividades del día elegido, para que el agente reconsidere el horario.
- `idempotency_key` hace seguros los reintentos: la misma solicitud nunca crea una segunda publicación.

## El agente hace el trabajo. Una persona decide.

- **Una persona lo hace suyo.** Un agente que se registra solo recibe un sandbox: borradores, medios y clientes, sin programar ni publicar. Una persona abre el enlace para reclamarlo, inicia sesión y solo entonces la organización es suya.
- **Publicar está desactivado por defecto.** Cada clave tiene permisos de lectura, escritura y publicación. El de publicación se otorga aparte, solo lo da una persona, y la clave se puede revocar en cualquier momento.
- **Los envíos grandes o repentinos esperan un sí.** Un envío a más de 10 cuentas o dentro de 60 minutos no sale de inmediato. El agente recibe un plan de envío para mostrarte y vuelve a enviar solo con un token de confirmación.
- **Límites por clave y un registro de cada acción.** Hasta 50 cuentas por publicación y 20 publicaciones programadas en 24 horas. Cada acción de un agente queda registrada: qué, cuándo y con qué clave.

## Tres formas de conectar cualquier agente.

### 1. Cualquier cliente MCP compatible con OAuth

Agrega la dirección del servidor en el cliente (en Claude y ChatGPT, como conector personalizado). Te lleva a Shager: inicia sesión, elige la organización y aprueba. No hay clave que copiar, y publicar queda desactivado a menos que lo marques.

```sh
# MCP server URL (sign in with OAuth)
https://app.shager.ai/api/mcp
```

### 2. Bots sin navegador: un código de dispositivo

Un bot o agente sin navegador se registra una vez (RFC 7591), pide un código y te lo muestra. Lo apruebas desde el teléfono en app.shager.ai/device, con la misma pantalla y los mismos permisos.

```sh
curl -X POST https://app.shager.ai/api/oauth/device_authorization \
  -d client_id=shgr_client_… \
  -d resource=https://app.shager.ai/api/mcp
# → user_code "BCDF-GHJK", verification_uri
#   https://app.shager.ai/device · then poll /api/oauth/token
```

### 3. Todo lo demás: una clave de API

Crea una clave en la página de Agentes y envíala como encabezado Bearer, por MCP o por la API REST. ¿Aún no tienes cuenta? El agente se registra solo en un sandbox y tú lo reclamas después (auth.md).

```sh
claude mcp add --transport http shager \
  https://app.shager.ai/api/mcp \
  --header "Authorization: Bearer shgr_live_…"
```

MCP config (Cursor and other clients):

```json
{
  "mcpServers": {
    "shager": {
      "url": "https://app.shager.ai/api/mcp",
      "headers": { "Authorization": "Bearer shgr_live_…" }
    }
  }
}
```

## Todo lo que puede hacer el agente.

- `whoami`: Quién soy: la organización, los permisos de la clave, los límites y el estado del sandbox
- `get_structure`: Toda la cuenta de un vistazo: los clientes, las cuentas de cada uno y sus grupos
- `get_claim_link`: Enlace para reclamar la organización
- `list_workspaces`: Lista de clientes (espacios de trabajo)
- `create_workspace`: Abrir un cliente nuevo
- `list_channels`: Cuentas conectadas y las reglas de cada red
- `create_connect_link`: Un enlace para que el cliente conecte sus propias cuentas
- `list_groups`: Grupos de cuentas
- `create_group`: Crear un grupo (sucursales, marcas, campaña)
- `upload_media_from_url`: Subir una imagen o un video desde una URL
- `validate_post`: Revisar el contenido final y si está listo para programar
- `create_post`: Una publicación para muchas cuentas, adaptada a cada red
- `update_post`: Editar un borrador
- `schedule_post`: Programar con envío escalonado entre cuentas
- `request_approval`: Un enlace de aprobación para el cliente
- `get_approval`: Estado de aprobación de la publicación
- `get_post`: Estado de publicación en cada cuenta, con errores incluidos
- `list_posts`: El calendario de contenido
- `cancel_post`: Cancelar una programación
- `delete_post`: Eliminar un borrador
- `list_comments`: Comentarios de una publicación en YouTube o Instagram
- `reply_to_comment`: Responder a un comentario como la cuenta
- `hide_comment`: Ocultar o mostrar un comentario
- `delete_comment`: Eliminar un comentario
- `get_analytics`: Clics por cuenta y por publicación
- `create_webhook`: 
- `list_webhooks`: 
- `delete_webhook`: 
- `send_test_webhook`: 
- `get_holidays`: Festividades y fechas especiales por tradición, para elegir cuándo publicar

## Archivos legibles por máquina

- `/llms.txt`: Un mapa del sitio para agentes: qué es Shager y dónde está cada página.
- `/llms-full.txt`: Todo el contenido público en un solo archivo Markdown.
- `/md/…`: Una versión en Markdown de cada página. Ejemplo: /md/es/pricing
- `https://app.shager.ai/api/v1/openapi.json`: La especificación OpenAPI completa de la API REST.
- `https://app.shager.ai/.well-known/oauth-authorization-server`: Metadatos del servidor OAuth: registro dinámico de clientes, PKCE, código de dispositivo.

## Lo que nos preguntan antes de conectar un agente.

### ¿Qué agentes funcionan hoy con Shager?

Cualquier cliente MCP compatible con el inicio de sesión OAuth (como un conector personalizado en Claude o ChatGPT) o con un encabezado de clave de API (como Claude Code, Cursor o Codex), bots y agentes sin navegador mediante un código de dispositivo, y cualquier código que llame a la API REST.

### ¿El agente puede publicar sin que yo lo sepa?

No por defecto. Publicar requiere un permiso de publicación aparte que otorga una persona, y está desactivado al crear una clave, reclamar un sandbox o aprobar una conexión; además, un envío a más de 10 cuentas o dentro de 60 minutos requiere una segunda confirmación. También puedes exigir la aprobación del cliente para cada publicación en un espacio de trabajo.

### ¿Un agente cuesta aparte?

No. La API y el servidor MCP están en todos los planes, y una publicación que crea tu agente cuenta como cualquier otra.

### ¿Y si el agente se equivoca?

Una publicación programada se puede cancelar hasta que sale, y un borrador se puede eliminar. Cada acción queda en el registro, y la clave se puede revocar con un clic.

### ¿El agente puede publicar en cuentas de otras personas?

Solo en cuentas conectadas a tu organización, a través de la pantalla oficial de permisos de cada red. El agente nunca ve contraseñas.

Los enlaces con seguimiento muestran los clics por cuenta y por publicación. Atribuir leads y ventas requiere tu herramienta de analítica o tu CRM.

---
Source: https://shager.ai/es/agents
