Todas as tools do servidor MCP do uPubly — schemas de input, outputs e exemplos.
Chamadas via tools/call no endpoint POST /mcp. Todas aceitam
workspace_id opcional (uuid) — omitido usa o workspace default do usuário.
post_accounts_listLista as contas de rede social conectadas — descobre o account_id para
agendar.
{ "workspace_id": "opcional" }→ { "accounts": [{ "account_id", "platform", "username" }] }
post_listLista posts (templates) com seus agendamentos.
{ "workspace_id": "?", "page": 0, "size": 20, "search": "opcional" }post_createCria um post e, se schedules vier, já agenda a publicação. Sem
schedules vira rascunho.
{
"description": "Texto principal do post",
"caption": "Legenda (opcional)",
"name": "Nome interno (opcional)",
"media": ["file_id_1", "file_id_2"],
"schedules": [
{
"account_id": "uuid da conta (post_accounts_list)",
"scheduled_at": "2026-09-25T14:00:00-03:00",
"post_type": "feed|reels|story|video (inferido se omitido)"
}
]
}media recebe file_ids do Storage (ver storage_request_upload).
post_delete{ "post_id": 123 }O upload é presignado em 2 passos:
storage_request_upload{
"file_name": "banner.png",
"content_type": "image/png (inferido se omitido)",
"file_size": 1024,
"folder_id": "opcional"
}→ { "upload_url", "file_id", "upload_id", ... }. Faça PUT do binário na
upload_url e depois confirme:
storage_complete_upload{ "file_id": "...", "upload_id": "...", "parts": [{ "part_number": 1, "etag": "..." }] }storage_usage→ bytes usados vs limite do plano.
media_upload_from_urlAtalho de uma chamada: baixa uma imagem de URL pública http(s) e sobe no
storage — devolve file_id (o media_id usado em refs/avatares/cenários)
file_url. Máx 20MB; acima disso ou bytes locais → caminho presignado.{ "url": "https://.../imagem.png", "file_name": "opcional" }Sempre leia brand_get antes de propor mudanças — ele devolve o estado
completo (identidade, identidade visual, memória).
brand_update_identity{ "language": "pt-BR", "region": "...", "website": "...", "active_platforms": ["instagram"] }brand_update_visual_identity{
"primary_color": "#FF5500", "secondary_color": "...", "accent_color": "...",
"font_display": "...", "font_body": "...", "tagline": "...",
"logo_file_id": "file_id do storage"
}brand_update_memoryMemória do criador — o que a IA aprendeu do estilo:
{
"preferred_angles": ["..."], "weak_angles": ["..."],
"preferred_cta": ["..."], "avoid_cta": ["..."],
"avg_retention": 42.5, "content_stats": { "...": "livre" }
}brand_add_documentDocumento na base de conhecimento (RAG) — guia de marca, estratégia, manifesto, pesquisa:
{
"document_type": "brand_guide|brand_voice|strategy|manifesto|market_research|script|report|reference|high_performance|low_performance",
"title": "...",
"content": "texto puro",
"file_url": "URL de arquivo (storage)",
"source_url": "opcional", "metadata": {}
}plans_list→ { "plans": [...], "topup_products": [...] } — planos ativos com preço
mensal/anual, créditos mensais e dias de trial.
payment_link_createCria o checkout (link de pagamento) para o usuário assinar um plano:
{ "plan_id": "id do plano (plans_list)", "billing_cycle": "monthly|yearly" }→ { "checkout_url", "session_id" } — envie checkout_url ao cliente
para ele concluir a assinatura. Preços sempre vêm do catálogo server-side —
o agente nunca injeta valores.
credits_balanceSaldo de créditos do usuário — consulte antes de operações que debitam (jobs UGC, geração de avatar/cenário):
→ { "monthly_balance", "topup_balance", "total_balance", "monthly_allowance", "cycle_ends_at", "plan_name" }
O namespace ugc_* — modelos, estimativa, jobs async, avatares, cenários,
templates e projetos — tem referência própria:
UGC — Geração · Avatares ·
Geração de vídeo.