MCP para Instagram: publique fotos, carrosséis e Reels
Um guia de MCP para Instagram no Mellow Hub: requisitos da conta, login com Instagram ou Facebook, entradas de post testadas, agendamento e correções para os erros de validação mais comuns.
Por Mellow · Atualizado emUm assistente de IA pode publicar no Instagram via MCP?
Sim, quando o assistente tem uma ferramenta de publicação autorizada e uma conta do Instagram conectada que atenda aos requisitos. O Mellow Hub expõe essas ferramentas em https://www.mellow.world/mcp. Um cliente MCP remoto compatível pode validar um post, agendá-lo dentro da delegação do proprietário e ler o resultado final em cada destino.
Comece pela conta e por um rascunho real. O MCP é a conexão da ferramenta; o Instagram continua decidindo se a conta, as permissões e a mídia podem publicar. Este guia trata do Mellow Hub. Para planejar seu próprio conteúdo do Instagram no iPhone ou na web, veja o guia de planejamento do Mellow.
Que conta do Instagram eu preciso ter?
Use uma conta profissional do Instagram: Business ou Creator. Uma conta pessoal não é elegível para este fluxo da API de publicação. No Hub, abra Contas, escolha Instagram e conclua você mesmo a conexão da conta.
| Forma de login | O que preparar |
|---|---|
| Login com Instagram | O caminho de login direto. A API de Login do Instagram da Meta não exige uma Página do Facebook vinculada. |
| Login com Facebook | A conta profissional do Instagram vinculada a uma Página do Facebook, com o acesso adequado à Página. |
São caminhos de autorização diferentes. Escolha o que corresponde à configuração da sua conta; concluir um não concede todas as permissões do outro. A coleção oficial da API do Instagram da Meta documenta a diferença. A conexão gerenciada que o Hub usa está descrita nos requisitos de conta do Post for Me.
Os Stories precisam de uma verificação de elegibilidade adicional: a documentação de Login do Facebook da Meta limita a publicação de Stories a contas Business. O fato de um formato aparecer nas regras de entrada do Hub não prova que a sua conta pode publicá-lo. Confirme a conta conectada e o resultado da entrega antes de contar com esse formato.
Conecte o assistente e verifique a autorização dele
- Conecte sua conta do Instagram no Hub. O ID de canal retornado identifica essa conexão; um nome de usuário do Instagram não serve como substituto.
- Adicione o endpoint do Hub em um cliente com suporte a MCP remoto via Streamable HTTP. Siga o fluxo OAuth dele ou use uma chave do Hub criada pelo proprietário, se esse cliente permitir. A configuração e a disponibilidade dependem do cliente. Guarde as credenciais na configuração segura dele.
- Na tela de consentimento OAuth do Hub, escolha permissões, canais, modo, limite diário e validade. O modo de revisão prepara o trabalho para a aprovação de uma pessoa. O piloto automático permite publicar dentro da delegação. Veja ou revogue o acesso resultante em Agentes.
- Chame
whoamielist_channels. Verifique o modo real e use o ID de canal do Instagram retornado. Leialist_platformspara conhecer as regras atuais. - Prepare mídia acessível. Use
register_mediapara inspecionar uma URL pública existente, ourequest_upload_urlpara enviar um arquivo local. Mantenha a URL resultante acessível até o horário previsto de publicação.
Para a sequência completa de conexão e o contrato do resultado, use o guia do fluxo de trabalho com MCP. Adicionar um conector ou colar um prompt, por si só, não autoriza uma conta do Instagram.
Conecte o Mellow Hub no Claude primeiro com acesso somente leitura
Em uma conta do Claude em que conectores personalizados estejam disponíveis, abra Personalizar → Conectores → Adicionar conector personalizado. Use o nome Mellow Hub e a URL do servidor MCP remoto https://www.mellow.world/mcp. Se você já o adicionou, use esse conector existente. O Claude consegue descobrir as configurações de autenticação a partir desse endereço.
| Configuração da conexão | Valor |
|---|---|
| Transporte | Streamable HTTP |
| Autenticação | Sempre obrigatória |
| Cliente OAuth | Registrado automaticamente via DCR; não há segredo de cliente para copiar. |
- Abra o conector e selecione Conectar. Faça login no Mellow se for solicitado. A tela de consentimento deve identificar o Claude como o aplicativo solicitante.
- Para uma primeira verificação, deixe selecionados apenas
channels:readeposts:read. Eles permitem ler a conexão e validar uma entrada. Não permitem enviar mídia, criar posts nem publicar. - Escolha o seu canal específico do Instagram e o modo de revisão. Defina uma validade curta, como um dia, e um limite diário. Uma seleção de canais vazia é recusada; o acesso a canais futuros exige uma escolha explícita.
- Revise e aprove você mesmo essa delegação. Ao voltar ao Claude, confirme que o conector está conectado. Peça a ele para chamar
whoamie depoislist_channelspara obter o ID do canal permitido. Confira os escopos, os canais e a validade concedidos na lista de acessos do Hub: um cliente pode exibir apenas o resumo em texto da ferramenta, que não inclui todos os campos estruturados.
Use apenas o Mellow Hub. Chame whoami e depois list_channels.
Use o único canal do Instagram que eu autorizei. Chame validate_post duas vezes com
a legenda "Mellow test - example only": primeiro com media [] e depois com
media ["https://example.com/test.jpg"]. São entradas ilustrativas.
Não acesse a URL nem leia posts existentes. Informe cada resultado de validação.
Não crie, agende, cancele nem publique nada.Quando o Claude pedir para usar uma ferramenta, verifique o nome e a entrada dela antes de permitir a chamada. Para esta verificação, permita cada chamada uma vez. A URL de exemplo testa apenas as regras de entrada; não é uma imagem real para publicar. A validação não baixa a mídia nem comprova a entrega no Instagram.
O que a verificação real da conexão retornou
Em 9 de setembro de 2026, uma conexão real do Claude na web concluiu o OAuth com apenas channels:read posts:read, um canal do Instagram, modo de revisão e validade de um dia. O Claude chamou whoami, list_channels e validate_post duas vezes. Inspecionamos as respostas das ferramentas, além do resumo do assistente.
| Entrada | Resultado observado |
|---|---|
| Legenda sem mídia | Rejeitada: o Instagram precisa de pelo menos um item de mídia. |
| A mesma legenda com a URL de imagem ilustrativa | Passou na verificação de entrada para um canal. |
Nenhum post foi criado ou publicado nesta verificação. Em seguida, revogamos a concessão de teste em Agentes e confirmamos que tanto o token de acesso quanto o de atualização foram revogados. Isso comprova esse fluxo específico de conexão e validação, não a publicação no Instagram nem a compatibilidade com todas as configurações de cliente.
Para o seu próprio rascunho, forneça uma legenda real e mídia acessível. Se uma tarefa posterior precisar de permissão de escrita, aprove uma nova delegação com as permissões necessárias. Renovar um token não estende a validade de acesso escolhida.
Escolha o formato antes de validar
Atualmente, o Hub aplica um limite de 2.200 caracteres para a legenda e uma faixa geral de 1–10 itens de mídia para o Instagram. Os posicionamentos estreitam essa faixa. Essas são as regras de entrada que o Hub aplica; elas podem ser mais conservadoras que o próprio editor do Instagram.
| Post | Posicionamento no Hub | Entrada a preparar |
|---|---|---|
| Foto no feed | timeline | Uma imagem. |
| Carrossel de fotos | timeline | De duas a 10 imagens, na ordem que você quiser. |
| Reel | reels | Exatamente um vídeo. shareToFeed controla o compartilhamento no feed principal. |
| Story | stories | Exatamente uma imagem ou um vídeo, conforme a elegibilidade da conta. |
Atualmente, o Hub rejeita a mistura de URLs de imagem e de vídeo reconhecidas em um mesmo post. Use um único tipo de mídia na entrada do carrossel. Essa é uma limitação do Hub, não uma afirmação de que o próprio Instagram nunca aceite carrosséis mistos.
O comportamento dos posicionamentos está documentado pelo Post for Me. Tamanho do arquivo, codecs, proporção e duração ainda precisam atender aos requisitos do Instagram. O validador de entrada do Hub não baixa nem mede o arquivo, e uma URL sem extensão reconhecível pode deixar o tipo de mídia indeterminado.
Três entradas de post que você pode adaptar
Passe um destes objetos como argumentos para validate_post. Substitua o ID de canal de exemplo, as URLs de mídia, a legenda e a data de 2030 pelos seus próprios valores. A data é intencionalmente ilustrativa; use um Z de UTC explícito ou um deslocamento de fuso horário. Esses payloads são verificados no parser e no validador do Hub, usando um canal sintético. Eles não são recibos reais de publicação no 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
}
}
}Uma URL de mídia real precisa estar acessível para o serviço de publicação no momento em que for buscada. A Meta descreve esse requisito na sua referência de publicação de conteúdo. Um caminho local, um link de drive privado ou uma URL assinada expirada não servem como substituto.
Corrija o problema informado antes de criar o post
Leia ok, issues e notes no resultado da validação. Uma requisição HTTP bem-sucedida ainda pode trazer ok: false. O problema indica o canal e o campo afetados.
| Código do problema | O que mudar |
|---|---|
channel_not_connected | Conclua a conexão da conta e use o ID de canal retornado. |
media_required | Anexe mídia; o Instagram não publica um post só de texto por este fluxo. |
media_too_many | Reduza o conjunto ao máximo atual do Hub, 10; um Reel ou um Story aceita menos. |
reel_media_count | Use um vídeo por Reel. Para fazer vários Reels, prepare posts separados. |
reel_needs_video | Forneça um vídeo para o Reel, ou escolha o posicionamento do feed para as fotos. |
story_media_count | Use um item por solicitação de Story. |
media_kinds_mixed | Mantenha imagens e vídeos reconhecidos em posts separados no Hub. |
caption_too_long | Encurte a legenda para 2.200 caracteres ou menos. |
Experimente o verificador de posts gratuito antes de conectar uma conta. Ele usa as mesmas regras de entrada com destinos de exemplo. A validação autenticada verifica os canais realmente conectados; nenhum dos dois resultados garante a entrega final pelo provedor.
Agende uma vez e verifique o resultado no Instagram
Depois de uma verificação válida, chame create_post com o mesmo post pretendido e uma idempotencyKey estável, como ceramics-instagram-reel-slot-001. Criar é a etapa que prepara ou agenda a publicação real. No modo de revisão, ele aguarda aprovação; no piloto automático, pode prosseguir no horário escolhido. Confira antes a cota atual do seu plano.
Guarde o ID do post retornado. Se a resposta da criação se perder, repita a mesma requisição com a mesma chave. Não gere uma chave nova só por causa de um tempo limite esgotado. Um post alterado precisa de uma chave nova.
Chame get_post e inspecione a entrada do Instagram em targets. Leia o status final, a URL pública ou o erro. O Hub aceitar um post não é prova de que o Instagram o publicou. Em uma solicitação para várias redes, outro destino pode ter sucesso enquanto o Instagram falha.
Para integrações de servidor que usam HTTP diretamente, a receita de agendamento por REST traz as requisições equivalentes e o cabeçalho de idempotência. Para uma primeira configuração, conecte seu canal do Instagram e valide um rascunho antes de preparar um agendamento recorrente.