PostLake

Uma API que permite que desenvolvedores e agentes de IA publiquem, agendem e extraiam análises em redes sociais sem precisar integrar cada plataforma separadamente.

Documentação

PostLake: o sistema operacional social para agentes de IA

Dê a um agente uma maneira confiável de atuar socialmente. O PostLake permite que agentes publiquem, agendem, monitorem, descubram, respondam, moderem e aprendam em X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube e Pinterest.

Uma única conexão dá a um agente um contrato normalizado em vez de nove SDKs de plataforma, nove modelos de autenticação e nove formatos de resultado incompatíveis. Ele pode atuar com um servidor MCP hospedado, uma skill de agente pronta para uso ou a API REST.

Um agente pode planejar uma campanha, validar cada destino antes de gastar um crédito, publicar ou salvar um rascunho para aprovação, confirmar publicações assíncronas, ler conversas e comentários, lidar com o que precisa de resposta e usar os resultados para decidir o que fazer em seguida.

Por que agentes usam o PostLake

Um contrato, todas as redes

Publique uma vez ou distribua para todas as redes conectadas. Cada destino tem o mesmo estado, URL, hora e formato de erro, então um agente lida com o resultado uma única vez em vez de escrever lógica de recuperação específica de plataforma.

Seguro deixar um agente agir

validate_post fornece uma execução de teste gratuita antes da publicação. Chaves de idempotência tornam as tentativas seguras. Os proprietários podem exigir aprovação em uma conexão OAuth, o que força toda solicitação de publicação daquele agente a virar um rascunho e impede que ele aprove o próprio trabalho. confirm_post verifica um provedor assíncrono depois que ele aceita uma publicação, e cada ação reporta o resultado individual do destino em vez de esconder falhas parciais.

Não é apenas um endpoint de publicação

Um agente pode ler um feed unificado de notificações, mensagens diretas, comentários e desempenho de publicações. Ele pode então responder, moderar, engajar, pesquisar um tópico ou inspecionar uma conta antes de agir. A gestão social permanece no mesmo fluxo de trabalho da publicação.

Controle humano onde ele pertence

O OAuth faz o proprietário da conta aprovar uma conexão no navegador. get_connect_link permite que um agente o envie diretamente para essa etapa de aprovação. Os proprietários podem revogar um agente, gerenciar canais, definir limites de agente e exigir aprovação do PostLake. Um agente OAuth não pode criar uma chave de conta irrestrita para contornar esses controles e nunca precisa da senha de uma rede social.

Comece em minutos

MCP hospedado: Cursor, Claude, ChatGPT, Gemini, Copilot e outros

O PostLake é um servidor MCP HTTP remoto e transmissível. Nada é instalado, executado ou auto-hospedado. Adicione este servidor no seu cliente MCP e conclua a aprovação OAuth do PostLake uma vez.

O PostLake suporta revisões de protocolo 2026-07-28, 2025-11-25, 2025-06-18 e 2025-03-26. Clientes existentes podem manter seu handshake legado; clientes mais novos usam server/discover e metadados por solicitação. Tanto /mcp quanto o endpoint de compatibilidade de chave de API /v1/mcp preservam a identidade do agente, as proteções de aprovação e os limites de publicação. As anotações de ferramentas são dicas conservadoras, não permissões. Agentes conectados por OAuth ou restritos não podem criar chaves de API irrestritas para contornar os controles do proprietário.

{
  "mcpServers": {
    "postlake": {
      "url": "https://api.postlake.dev/mcp"
    }
  }
}

Cursor

Abra Configurações -> Ferramentas e MCP -> Novo servidor MCP, adicione a configuração acima, e selecione Conectar para o PostLake e aprove o login no navegador.

Claude Code

claude mcp add --transport http postlake https://api.postlake.dev/mcp

Grok Build

Este repositório é um plugin do Grok Build. Ele inclui o servidor MCP hospedado e as skills de agente. Sem processo local, sem hooks de shell, sem chave de API no chat.

Adicione este repositório como mercado e instale postlake:

grok plugin marketplace add PostLake/postlake-mcp
grok plugin install postlake --trust

Dentro do Grok Build você também pode navegar por /marketplace depois que o catálogo oficial do xAI o listar.

O servidor MCP é https://api.postlake.dev/mcp (HTTP transmissível). No primeiro uso, o Grok abre o OAuth do PostLake no navegador. O proprietário da conta aprova o agente uma vez e pode revogá-lo em https://app.postlake.dev/app/agents.

Este plugin chama apenas:

  • https://api.postlake.dev (MCP e REST)
  • https://postlake.dev e https://docs.postlake.dev (documentos citados pelas skills)
  • https://app.postlake.dev (aprovação OAuth e painel)

openclaw/ neste repositório é um pacote OpenClaw separado. O Grok Build não o carrega.

Outros clientes MCP

Adicione https://api.postlake.dev/mcp como um servidor MCP remoto. O desafio OAuth inicial abre o fluxo de login e aprovação do host. Instruções completas de configuração: https://docs.postlake.dev/mcp

Skills prontas: agentes de codificação

Instale as skills de agente do PostLake para Claude Code, Cursor, Codex, Windsurf e outros agentes de codificação compatíveis com skills:

npx skills add postlake/postlake-mcp --all

Defina POSTLAKE_API_KEY no runtime do agente e peça para ele lidar com trabalho social em linguagem natural. As skills cobrem contas, publicação, agendamento, mídia, conversas de caixa de entrada e análises.

API REST: runtimes de agente personalizados

Use https://api.postlake.dev/v1 do LangGraph, CrewAI, AutoGen, chamadas de ferramentas do OpenAI ou qualquer cliente HTTPS. A API REST e o servidor MCP funcionam com os mesmos perfis, canais, publicações e regras de segurança.

O que um agente pode fazer

O servidor MCP atualmente fornece 63 ferramentas focadas. Elas são projetadas em torno de resultados sociais, não de APIs individuais de plataforma.

ResultadoFerramentas
Entender a contawhoami, set_my_name, get_changelog, get_credits, list_profiles, list_social_accounts, get_social_account, list_account_targets, search_facebook_pages, check_allowance
Conectar e organizar canaiscreate_profile, rename_profile, delete_profile, connect_account, get_connect_link, disconnect_account
Planejar e validarget_platform_capabilities, get_publish_info, validate_post
Publicar e agendarcreate_post, create_scheduled_calendar, get_post, confirm_post, list_posts, edit_post, edit_scheduled_posts_bulk, cancel_post, publish_draft, delete_post
Mídiaupload_media, upload_media_batch, manage_media
Caixa de entrada unificadalist_notifications, mark_notifications_seen, list_conversations, read_conversation, mark_conversation_read, send_message, read_comments, reply_to_comment, hide_comment, delete_comment
Descobrir e entender a redesearch_posts, look_up_profile, read_profile_posts, search_places, list_own_posts, list_tagged_posts
Engajar e gerenciar presençaengage, update_profile
Comércio, eventos e colaboraçõeslist_products, list_events, create_event, find_creators
Transmissões ao vivo de páginas do Facebookcreate_live_broadcast, start_live_broadcast, list_live_broadcasts, get_live_broadcast, end_live_broadcast
Medir e melhorarget_post_analytics, get_analytics

set_my_name altera apenas o nome de exibição do agente autenticado. O proprietário da conta pode definir e bloquear esse nome no Controle de Agente. Renomear não altera a chave de API subjacente nem a identidade do cliente OAuth.

As ferramentas de publicidade Meta e de Parcerias de Anúncios não estão disponíveis no momento. Não peça a um agente para usar operações de parceiro de marca, conta de anúncios ou Parcerias de Anúncios.

list_posts suporta paginação por cursor limitada e filtros por status, agente, perfil, rede, datas, estado de aprovação, campanha, composição de destino único ou compartilhado e uma busca literal de legenda sem diferenciar maiúsculas de minúsculas com q. Isso permite que um agente inspecione o histórico de publicação sem carregar as publicações de uma conta inteira em uma única resposta de ferramenta. O endpoint REST GET /v1/posts usa o mesmo comportamento de busca e paginação.

edit_scheduled_posts_bulk altera até 200 publicações agendadas em uma única operação protegida. Visualize primeiro com dryRun: true, inspecione os valores antes e depois de cada publicação e aplique com o snapshot retornado. Ele pode alterar legendas, legendas por rede, contas de destino exatas, metadados de campanha e ativos ou deslocar instantes UTC agendados. Se uma publicação selecionada mudar antes da aplicação, toda a edição é rejeitada. create_scheduled_calendar visualiza e cria até 200 publicações agendadas em uma única transação, usando horários explícitos ou uma cadência UTC decorrida. Aplique o instantâneo da visualização com uma chave de idempotência única. O endpoint REST de cancelamento em massa também remove um lote selecionado exato atomicamente. Criar um novo calendário e cancelar um antigo continuam sendo operações separadas.

Chamadores MCP autenticados por chave de conta também podem usar create_api_key para transferir para outro serviço confiável. Agentes OAuth não veem nem recebem esta ferramenta porque uma chave de conta contornaria os limites definidos pelo proprietário.

Cancelamento, Remoção Social e Apagamento de Uploads

Estas são ações separadas. cancel_post interrompe publicações futuras e mantém os arquivos enviados. delete_post solicita remoções de redes suportadas e reporta cada destino; publicações do Instagram e TikTok devem ser removidas em seus próprios aplicativos. Nenhuma ação apaga uploads ou reembolsa créditos de publicação gastos.

Use delete_post com dryRun: true para visualizar o suporte de destino, depois obtenha a confirmação do proprietário e envie o snapshot retornado na aplicação. Remoções aceitas são lembradas em resultados parciais e não são repetidas na tentativa.

manage_media lista arquivos armazenados com action: "list". Use action: "preview_delete" com um ID de mídia para ver publicações afetadas e obter um instantâneo. Somente após o proprietário confirmar o apagamento irreversível um agente deve aplicar action: "delete" com esse instantâneo. Rascunhos, solicitações de aprovação e publicações pendentes devem parar de usar o arquivo primeiro. Bytes de origem e visualizações armazenadas são removidos; cópias sociais publicadas permanecem online. Falhas de armazenamento permanecem passíveis de nova tentativa. Mais de 200 referências salvas exigem apagamento assistido por suporte.

Os ativos enviados mantêm o mínimo existente de 90 dias em toda conta aberta, com proteção mais longa de referência agendada e sem expiração automática atual. O apagamento explícito pelo proprietário é uma exceção, não uma política de expiração rotineira. Origens e visualizações usam URLs públicas. Mantenha originais duráveis e nunca envie segredos. Contratos REST completos e instruções do painel: https://docs.postlake.dev/media#deletion.

Um fluxo de trabalho de agente que não quebra a confiança

  1. Chame whoami e list_social_accounts para entender a conta, limites, canais conectados e prontidão atual.
  2. Se um humano ainda precisar conectar um canal, chame get_connect_link e envie a URL de aprovação de curta duração. Não peça para ele procurar em um painel.
  3. Chame get_platform_capabilities e validate_post antes de criar uma publicação multi-rede. O PostLake retorna a restrição e a correção exatas de cada destino.
  4. Use create_post para publicar, agendar ou salvar um draft para revisão humana. Se o proprietário ativou "Exigir minha aprovação", o PostLake salva um rascunho mesmo quando o agente não solicita um. Inclua uma chave de idempotência para que uma tentativa não publique duas vezes.
  5. Se uma plataforma estiver processando assincronamente, chame confirm_post para obter o estado confirmado pelo provedor sem esperar por uma URL pública.
  6. Use list_notifications, list_conversations e read_comments para ver o que precisa de atenção. Responda, modere ou engaje apenas onde a plataforma suportar.
  7. Use get_analytics e get_post_analytics para transformar resultados na próxima ação informada, não em uma planilha que alguém tenha que interpretar depois.

Mensagens diretas

Facebook, Instagram, X e Bluesky usam um formato de conversa normalizado. Agentes listam conversas com list_conversations, abrem uma com read_conversation, finalizam com mark_conversation_read e respondem com send_message. Uma mensagem pode incluir content para um anexo, mídia compartilhada ou payload do provedor que o PostLake não pode achatar com segurança em texto.

Facebook e Instagram podem entregar webhooks message.received. X e Bluesky não enviam mensagens recebidas para o PostLake, então consulte list_conversations em um cronograma. Enviar um DM no X custa 6 créditos; enviar nas outras redes de caixa de entrada suportadas não gasta créditos. Orientação completa de REST e MCP: https://docs.postlake.dev/messages.

Exemplos de prompts

  • "Verifique todos os canais conectados e me diga o que precisa de aprovação humana."
  • "Elabore um post de lançamento para LinkedIn, Instagram, Threads e TikTok. Valide-o, salve-o como rascunho e mostre-me as alterações específicas por plataforma."
  • "Leia novas mensagens diretas e comentários. Dê-me rascunhos de resposta concisos, mas não envie nada até que eu aprove."
  • "Descubra o que as pessoas estão dizendo sobre este tópico, inspecione as três contas mais fortes e proponha um post que acrescente algo útil."
  • "Confirme o post de ontem no TikTok e compare seu desempenho com o resto da semana, recomendando o próximo post."

Consciente da plataforma, não cego à plataforma

O PostLake conhece as restrições que fazem as automações sociais falharem na vida real: tipos de mídia, contagens de imagens, limites de legendas, configurações de criador no TikTok, opções de privacidade específicas da rede, destinos de postagem, publicação assíncrona e se uma determinada conexão pode ler, pesquisar, enviar mensagens ou interagir.

Quando uma plataforma não pode executar uma ação, o PostLake informa isso na resposta. Uma lista vazia nunca significa silenciosamente que uma rede não foi lida. Uma publicação parcial não finge que todos os destinos foram bem-sucedidos. Os agentes recebem as informações necessárias para se recuperarem com segurança.

O que este repositório contém

CaminhoUsado por
skills/Claude Code, Cursor, Codex, Windsurf (npx skills add postlake/postlake-mcp --all)
.mcp.jsonPlugins do Grok Build, Claude Code e Cursor. Somente MCP hospedado.
.grok-plugin/Manifesto do plugin Grok Build
.claude-plugin/Manifesto do plugin Claude Code / Cursor
openclaw/Somente OpenClaw. Não faz parte do plugin Grok ou Claude.

Segurança e propriedade

Para clientes MCP interativos, o PostLake usa OAuth e PKCE. O proprietário da conta aprova cada agente conectado uma vez e pode revogá-lo pelo painel a qualquer momento. Os tokens OAuth são limitados a esse cliente e são renovados automaticamente. Os proprietários podem impor limites de perfil, plataforma, créditos diários, créditos de pacote e aprovação. Um agente com aprovação obrigatória não pode publicar seus próprios rascunhos nem gerar uma chave de API de conta sem restrições.

Para serviços não supervisionados, use uma chave de API do PostLake no cofre de segredos do serviço, não em um prompt ou arquivo de código-fonte. As chaves têm acesso em nível de conta; portanto, use uma chave nomeada por serviço confiável e revogue-a quando não for mais necessária.

Preços

Todos os planos incluem o servidor MCP e acesso ao agente. Comece com 20 créditos gratuitos por mês e sem cartão. Os créditos são cobrados ao publicar ou quando uma plataforma cobra por uma operação específica. No X, send_message custa 6 créditos; envios no Facebook, Instagram e Bluesky não gastam créditos. Consulte os preços atuais e as taxas de crédito em https://postlake.dev/pricing.

Documentação

Desenvolvido por PostLake. Issues e pull requests são bem-vindos.