MCP per Instagram: pubblica foto, caroselli e Reels
Una guida all’MCP per Instagram con Mellow Hub: requisiti dell’account, accesso con Instagram o Facebook, input di post testati, programmazione e soluzioni agli errori di validazione più comuni.
Di Mellow · Aggiornato ilUn assistente AI può pubblicare su Instagram tramite MCP?
Sì, quando l’assistente dispone di uno strumento di pubblicazione autorizzato e di un account Instagram collegato e idoneo. Mellow Hub espone questi strumenti su https://www.mellow.world/mcp. Un client MCP remoto compatibile può validare un post, programmarlo entro la delega del titolare e leggere il risultato finale per ogni destinazione.
Parti dall’account e da una bozza reale. MCP è la connessione degli strumenti; è sempre Instagram a decidere se l’account, i permessi e i media possono pubblicare. Questa guida riguarda Mellow Hub. Per pianificare i tuoi contenuti Instagram su iPhone o sul web, consulta la guida alla pianificazione di Mellow.
Quale account Instagram mi serve?
Usa un account Instagram professionale: Business o Creator. Un account personale non è idoneo a questo flusso dell’API di pubblicazione. In Hub apri Account, scegli Instagram e completa tu stesso il collegamento dell’account.
| Tipo di accesso | Cosa preparare |
|---|---|
| Accesso con Instagram | La via diretta. L’API Instagram Login di Meta non richiede una Pagina Facebook collegata. |
| Accesso con Facebook | L’account Instagram professionale collegato a una Pagina Facebook, con l’accesso adeguato alla Pagina. |
Sono percorsi di autorizzazione diversi. Scegli quello che corrisponde alla configurazione del tuo account; completarne uno non concede tutti i permessi dell’altro. La raccolta ufficiale dell’API di Instagram di Meta documenta la differenza. La connessione gestita che Hub utilizza è descritta nei requisiti degli account di Post for Me.
Le storie richiedono un controllo di idoneità aggiuntivo: la documentazione di Meta sull’accesso con Facebook limita la pubblicazione delle storie agli account Business. Il fatto che un formato compaia nelle regole di input di Hub non dimostra che il tuo account possa pubblicarlo. Conferma l’account collegato e il suo risultato di consegna prima di fare affidamento su quel formato.
Collega l’assistente e verifica le sue autorizzazioni
- Collega il tuo account Instagram in Hub. L’ID del canale restituito identifica quel collegamento; il nome utente Instagram non lo sostituisce.
- Aggiungi l’endpoint di Hub in un client che supporta MCP remoto via Streamable HTTP. Segui il suo flusso OAuth, oppure usa una chiave di Hub creata dal titolare se quel client la supporta. Configurazione e disponibilità dipendono dal client. Conserva le credenziali nella sua configurazione sicura.
- Nella schermata di consenso OAuth di Hub scegli permessi, canali, modalità, limite giornaliero e scadenza. La modalità revisione prepara il lavoro per l’approvazione di una persona. Il pilota automatico consente di pubblicare entro la delega. Visualizza o revoca l’accesso risultante in Agenti.
- Chiama
whoamielist_channels. Verifica la modalità effettiva e usa l’ID del canale Instagram restituito. Leggilist_platformsper le regole in vigore. - Prepara media raggiungibili. Usa
register_mediaper ispezionare un URL pubblico esistente, oppurerequest_upload_urlper caricare un file locale. Mantieni l’URL risultante raggiungibile fino all’orario di pubblicazione previsto.
Per la sequenza completa di connessione e il contratto del risultato, usa la guida al flusso di lavoro MCP. Aggiungere un connettore o incollare un prompt, da solo, non autorizza un account Instagram.
Collega Mellow Hub in Claude partendo dall’accesso in sola lettura
In un account Claude in cui sono disponibili i connettori personalizzati, apri Personalizza → Connettori → Aggiungi connettore personalizzato. Usa il nome Mellow Hub e l’URL del server MCP remoto https://www.mellow.world/mcp. Se lo hai già aggiunto, usa quel connettore esistente. Claude può rilevare le impostazioni di autenticazione da questo indirizzo.
| Impostazione di connessione | Valore |
|---|---|
| Trasporto | Streamable HTTP |
| Autenticazione | Sempre richiesta |
| Client OAuth | Si registra automaticamente tramite DCR; nessun client secret da copiare. |
- Apri il connettore e seleziona Connetti. Accedi a Mellow se richiesto. La schermata di consenso dovrebbe identificare Claude come applicazione richiedente.
- Per una prima verifica lascia selezionati solo
channels:readeposts:read. Permettono di leggere il collegamento e validare un input. Non permettono di caricare media, creare post o pubblicare. - Scegli il tuo canale Instagram specifico e la modalità revisione. Imposta una scadenza breve, ad esempio un giorno, e un limite giornaliero. Una selezione di canali vuota viene rifiutata; l’accesso ai canali futuri richiede una scelta esplicita.
- Rivedi e approva tu stesso quella delega. Tornato in Claude, conferma che il connettore risulti connesso. Chiedigli di chiamare
whoamie poilist_channelsper ottenere l’ID del canale consentito. Controlla i permessi, i canali e la scadenza concessi nell’elenco degli accessi di Hub: un client può mostrare solo il riepilogo testuale dello strumento, che non include tutti i campi strutturati.
Usa solo Mellow Hub. Chiama whoami e poi list_channels.
Usa l'unico canale Instagram che ho autorizzato. Chiama validate_post due volte con
la didascalia "Mellow test - example only": prima con media [] e poi con
media ["https://example.com/test.jpg"]. Sono input illustrativi.
Non scaricare l'URL e non leggere i post esistenti. Riporta ogni risultato di validazione.
Non creare, programmare, annullare o pubblicare nulla.Quando Claude chiede di usare uno strumento, controlla il nome e l’input prima di consentire la chiamata. Per questa verifica, consenti ogni chiamata una sola volta. L’URL di esempio serve solo a testare le regole di input; non è un’immagine reale da pubblicare. La validazione non scarica i media e non dimostra la consegna su Instagram.
Cosa ha restituito la verifica reale della connessione
Il 9 settembre 2026 una connessione reale di Claude web ha completato OAuth con solo channels:read posts:read, un canale Instagram, modalità revisione e scadenza di un giorno. Claude ha chiamato whoami, list_channels e validate_post due volte. Abbiamo ispezionato le risposte degli strumenti oltre al riepilogo dell’assistente.
| Input | Risultato osservato |
|---|---|
| Didascalia senza media | Rifiutata: Instagram richiede almeno un elemento multimediale. |
| Stessa didascalia con l’URL dell’immagine illustrativa | Ha superato la verifica dell’input per un canale. |
In questa verifica non è stato creato né pubblicato alcun post. Abbiamo poi revocato la delega di prova in Agenti e verificato che sia il token di accesso sia quello di aggiornamento fossero revocati. Questo dimostra quel particolare flusso di connessione e validazione, non la pubblicazione su Instagram né la compatibilità con ogni configurazione client.
Per la tua bozza, fornisci una didascalia reale e media raggiungibili. Se un’attività successiva richiede la scrittura, approva una nuova delega con i permessi necessari. Aggiornare un token non estende la scadenza di accesso scelta.
Scegli il formato prima di validare
Attualmente Hub applica per Instagram un limite di 2200 caratteri per la didascalia e un intervallo complessivo di 1–10 elementi multimediali. I posizionamenti restringono quell’intervallo. Sono le regole di input che Hub applica; possono essere più prudenti dell’editor di Instagram.
| Post | Posizionamento in Hub | Input da preparare |
|---|---|---|
| Foto nel feed | timeline | Un’immagine. |
| Carosello di foto | timeline | Da due a 10 immagini nell’ordine che preferisci. |
| Reel | reels | Esattamente un video. shareToFeed controlla la condivisione nel feed principale. |
| Storia | stories | Esattamente un’immagine o un video, in base all’idoneità dell’account. |
Attualmente Hub rifiuta la combinazione di URL di immagini e video riconosciuti in uno stesso post. Usa un solo tipo di media per l’input del carosello. È una limitazione di Hub, non un’affermazione che Instagram non supporti mai i caroselli misti.
Il comportamento dei posizionamenti è documentato da Post for Me. Dimensione del file, codec, proporzioni e durata devono comunque rispettare i requisiti di Instagram. Il validatore di input di Hub non scarica né misura il file, e un URL senza un’estensione riconoscibile può lasciare indeterminato il tipo di media.
Tre input di post che puoi adattare
Passa uno di questi oggetti come argomenti a validate_post. Sostituisci l’ID del canale di esempio, gli URL dei media, la didascalia e la data del 2030 con i tuoi valori. La data è volutamente illustrativa; usa una Z UTC esplicita o un offset di fuso orario. Questi payload vengono verificati con il parser e il validatore di Hub, usando un canale fittizio. Non sono ricevute reali di pubblicazione su Instagram.
One feed photo
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "A closer look at the glaze on this cup.",
"media": [
"https://cdn.example.com/your-cup.jpg"
],
"options": {
"instagram": {
"placement": "timeline"
}
}
}An ordered photo carousel
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "From clay to finished cup, in three stages.",
"media": [
"https://cdn.example.com/your-clay.jpg",
"https://cdn.example.com/your-process.jpg",
"https://cdn.example.com/your-cup.jpg"
],
"options": {
"instagram": {
"placement": "timeline"
}
}
}One Reel
{
"channels": [
"spc_your_instagram_channel"
],
"scheduledAt": "2030-01-15T10:00:00Z",
"caption": "How this handle is attached.",
"media": [
"https://cdn.example.com/your-process.mp4"
],
"options": {
"instagram": {
"placement": "reels",
"shareToFeed": true
}
}
}Un URL di media reale deve essere raggiungibile dal servizio di pubblicazione nel momento in cui viene scaricato. Meta descrive questo requisito nel suo riferimento per la pubblicazione di contenuti. Un percorso locale, un link a un’unità privata o un URL firmato scaduto non sono sostituti utilizzabili.
Correggi il problema segnalato prima di creare il post
Leggi ok, issues e notes nel risultato della validazione. Una richiesta HTTP riuscita può comunque contenere ok: false. Il problema indica il canale e il campo interessati.
| Codice del problema | Cosa cambiare |
|---|---|
channel_not_connected | Completa il collegamento dell’account e usa l’ID del canale restituito. |
media_required | Allega dei media; Instagram non può pubblicare un post di solo testo tramite questo flusso. |
media_too_many | Riduci l’insieme al massimo attuale di Hub, 10; un Reel o una storia ne ammettono meno. |
reel_media_count | Usa un video per Reel. Per fare più Reels, prepara post separati. |
reel_needs_video | Fornisci un video per il Reel, oppure scegli il posizionamento nel feed per le foto. |
story_media_count | Usa un solo elemento per ogni richiesta di storia. |
media_kinds_mixed | Tieni le immagini e i video riconosciuti in post di Hub separati. |
caption_too_long | Accorcia la didascalia a 2200 caratteri o meno. |
Prova il verificatore di post gratuito prima di collegare un account. Usa le stesse regole di input con destinazioni di esempio. La validazione autenticata controlla i canali collegati reali; nessuno dei due risultati garantisce la consegna finale da parte del provider.
Programma una volta e verifica il risultato su Instagram
Dopo una verifica valida, chiama create_post con lo stesso post previsto e una idempotencyKey stabile, ad esempio ceramics-instagram-reel-slot-001. La creazione è il passaggio che prepara o programma la pubblicazione effettiva. In modalità revisione attende l’approvazione; in pilota automatico può procedere all’orario scelto. Controlla prima la quota attuale del piano.
Conserva l’ID del post restituito. Se la risposta di creazione va persa, ripeti la stessa richiesta con la stessa chiave. Non generare una chiave nuova solo per un timeout. Un post modificato richiede una chiave nuova.
Chiama get_post e ispeziona la voce Instagram in targets. Leggi lo stato finale, l’URL pubblico o l’errore. Che Hub accetti un post non prova che Instagram lo abbia pubblicato. In una richiesta verso più social, un’altra destinazione può riuscire mentre Instagram fallisce.
Per le integrazioni server che usano HTTP direttamente, la ricetta di programmazione via REST fornisce le richieste equivalenti e l’header di idempotenza. Per una prima configurazione, collega il tuo canale Instagram e valida una bozza prima di preparare una programmazione ricorrente.