# Il tuo agente scrive. Shager pubblica. Il controllo resta a te.

Collega Claude, ChatGPT, Cursor o qualsiasi client MCP con l’accesso OAuth, un bot con un codice dispositivo, e tutto il resto con una chiave API o la REST API. Il tuo agente carica un video o delle immagini, prepara un post per tutti gli account (un Reel, uno Short, una storia, un video TikTok o un post) e lo verifica con le regole di ogni social. La pubblicazione resta disattivata finché una persona non la attiva.

Server MCP, REST API e documentazione OpenAPI in ogni piano, gratis durante il periodo di lancio.

## Un video. Otto account.

L’agente carica il video con upload_media_from_url e invia un post con un gruppo di account. Shager restituisce una versione per account, in un formato supportato dal suo social: un Reel, uno Short, un video TikTok, un video LinkedIn. Ognuna ha il suo orario di invio.

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` restituisce tutti i problemi di tutti gli account insieme, prima di salvare qualsiasi cosa.
- `calendar_notes` segnala le festività nel giorno scelto, così l’agente può rivedere l’orario.
- `idempotency_key` rende sicuri i tentativi ripetuti: la stessa richiesta non crea mai un secondo post.

## L’agente lavora. Una persona decide.

- **Una persona ne prende possesso.** Un agente che si registra da solo riceve una sandbox: bozze, media e clienti, senza programmare né pubblicare. Una persona apre il link di rivendicazione, accede, e solo allora l’organizzazione è sua.
- **La pubblicazione è disattivata di default.** Ogni chiave ha permessi di lettura, scrittura e pubblicazione. La pubblicazione si concede a parte, solo da una persona, e la chiave si può revocare in qualsiasi momento.
- **Gli invii grandi o imminenti aspettano un sì.** Un invio a più di 10 account o entro 60 minuti non parte subito. L’agente riceve un piano di invio da mostrarti e reinvia solo con un token di conferma.
- **Limiti per chiave e un registro di ogni azione.** Fino a 50 account per post e 20 post programmati in 24 ore. Ogni azione di un agente viene registrata: cosa, quando e con quale chiave.

## Tre modi per collegarti. Con qualsiasi agente.

### 1. Qualsiasi client MCP che supporta OAuth

Aggiungi l’indirizzo del server nel client (in Claude e ChatGPT, come connettore personalizzato). Il client ti porta su Shager: accedi, scegli l’organizzazione e approva. Nessuna chiave da copiare, e la pubblicazione resta disattivata se non la selezioni.

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

### 2. Bot senza browser: un codice dispositivo

Un bot o un agente senza browser si registra una volta (RFC 7591), chiede un codice e te lo mostra. Approvi dal telefono su app.shager.ai/device, con la stessa schermata e gli stessi permessi.

```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. Tutto il resto: una chiave API

Crea una chiave nella pagina Agenti e inviala come header Bearer, via MCP o REST API. Non hai ancora un account? L’agente si registra da solo in una sandbox e tu la rivendichi dopo (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_…" }
    }
  }
}
```

## Tutto ciò che l’agente può fare.

- `whoami`: Chi sono: l’organizzazione, i permessi della chiave, i limiti e lo stato della sandbox
- `get_structure`: Tutto l’account a colpo d’occhio: i clienti, gli account di ciascuno e i suoi gruppi
- `get_claim_link`: Link per rivendicare l’organizzazione
- `list_workspaces`: Elenco dei clienti (workspace)
- `create_workspace`: Apri un nuovo cliente
- `list_channels`: Account collegati e regole di ogni social
- `create_connect_link`: Un link con cui il cliente collega i propri account
- `list_groups`: Gruppi di account
- `create_group`: Crea un gruppo (sedi, brand, campagna)
- `upload_media_from_url`: Carica un’immagine o un video da un URL
- `validate_post`: Verifica il contenuto finale e se è pronto da programmare
- `create_post`: Un post per molti account, adattato a ogni social
- `update_post`: Modifica una bozza
- `schedule_post`: Programma con invii scaglionati tra gli account
- `request_approval`: Un link di approvazione per il cliente
- `get_approval`: Stato di approvazione del post
- `get_post`: Stato di pubblicazione su ogni account, errori inclusi
- `list_posts`: Il calendario dei contenuti
- `cancel_post`: Annulla una programmazione
- `delete_post`: Elimina una bozza
- `list_comments`: Commenti a un post pubblicato su YouTube o Instagram
- `reply_to_comment`: Rispondi a un commento come l'account
- `hide_comment`: Nascondi o mostra un commento
- `delete_comment`: Elimina un commento
- `get_analytics`: Clic per account e per post
- `create_webhook`: 
- `list_webhooks`: 
- `delete_webhook`: 
- `send_test_webhook`: 
- `get_holidays`: Festività e ricorrenze per tradizione, per scegliere quando pubblicare

## File leggibili dalle macchine

- `/llms.txt`: Una mappa del sito per agenti: cos’è Shager e dove si trova ogni pagina.
- `/llms-full.txt`: Tutti i contenuti pubblici in un unico file Markdown.
- `/md/…`: Una versione Markdown di ogni pagina. Esempio: /md/it/pricing
- `https://app.shager.ai/api/v1/openapi.json`: La specifica OpenAPI completa della REST API.
- `https://app.shager.ai/.well-known/oauth-authorization-server`: Metadati del server OAuth: registrazione dinamica dei client, PKCE, codice dispositivo.

## Le domande prima di collegare un agente.

### Quali agenti funzionano con Shager oggi?

Qualsiasi client MCP che supporta l’accesso OAuth (come un connettore personalizzato in Claude o ChatGPT) o un header con chiave API (come Claude Code, Cursor o Codex), bot e agenti senza browser tramite codice dispositivo, e qualsiasi codice che chiami la REST API.

### L’agente può pubblicare senza che io lo sappia?

Non di default. Pubblicare richiede un permesso di pubblicazione separato concesso da una persona, ed è disattivato quando crei una chiave, rivendichi una sandbox o approvi una connessione; inoltre un invio a più di 10 account o entro 60 minuti richiede una seconda conferma. Puoi anche richiedere l’approvazione del cliente per ogni post in un workspace.

### Un agente costa a parte?

No. L’API e il server MCP sono inclusi in ogni piano, e un post creato dal tuo agente conta come qualsiasi altro post.

### E se l’agente sbaglia?

Un post programmato si può annullare finché non esce, e una bozza si può eliminare. Ogni azione finisce nel registro, e la chiave si può revocare con un clic.

### L’agente può pubblicare sugli account di altre persone?

Solo sugli account collegati alla tua organizzazione, tramite la schermata ufficiale dei permessi di ogni social. L’agente non vede mai le password.

I link tracciati mostrano i clic per account e per post. L'attribuzione di contatti e vendite richiede il tuo strumento di analytics o il tuo CRM.

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