# Ferramentas · Conteúdo e engajamento

> Ferramentas MCP para o que acontece no feed: buscar, ler, publicar, editar, mover e excluir posts, posts curtos, comentar e responder, editar e excluir comentários, reagir, fixar, a galeria (adicionar, listar, editar, reagir e excluir), o ranking e os seus pontos, e a moderação.

O dia a dia da comunidade: o ranking e a fila de moderação, achar um post pelo título, publicar um aviso com imagem, responder às perguntas de uma live, reagir às apresentações, fixar o que importa, mover um post para o espaço certo e cuidar das fotos da galeria. Posts e comentários saem com o nome de quem conectou o assistente.

Cada ferramenta traz um selo: <span class="tool-kind tool-kind-read">Só consulta</span> não muda nada, <span class="tool-kind tool-kind-write">Altera</span> cria ou muda algo na hora, e <span class="tool-kind tool-kind-confirm">Pede confirmação</span> só age depois do seu sim a um resumo. Ver [Dinheiro e confirmação](/mcp/dinheiro-e-confirmacao).

## Em resumo

| Ferramenta | O que faz | Papel mínimo | Tipo |
|---|---|---|---|
| [`list_posts`](#list-posts) | O feed, com comentários e reações | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`search_content`](#search-content) | Procura posts, eventos, cursos, seções, espaços e chamadas pelo título | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`list_comments`](#list-comments) | Comentários de um post | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`create_post`](#create-post) | Publica um post, com capa por link | Qualquer | <span class="tool-kind tool-kind-write">Altera</span> |
| [`update_post`](#update-post) | Edita título, texto, capa; fixa | Autor ou moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`delete_post`](#delete-post) | Exclui um post, com confirmação | Autor ou moderador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`move_post`](#move-post) | Move um post para outro espaço de Conteúdo ou Feed | Moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`create_short_post`](#create-short-post) | Publica um post curto, sem título, num Feed | Membro (não o financeiro) | <span class="tool-kind tool-kind-write">Altera</span> |
| [`create_comment`](#create-comment) | Comenta ou responde | Qualquer | <span class="tool-kind tool-kind-write">Altera</span> |
| [`update_comment`](#update-comment) | Edita um comentário | Autor ou moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`delete_comment`](#delete-comment) | Exclui um comentário, com confirmação | Autor ou moderador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`add_reaction`](#add-reaction) | Reage com um emoji | Qualquer | <span class="tool-kind tool-kind-write">Altera</span> |
| [`pin_post`](#pin-post) | Fixa ou desafixa no feed | Moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`add_gallery_image`](#add-gallery-image) | Põe uma imagem, por link, numa galeria | Qualquer | <span class="tool-kind tool-kind-write">Altera</span> |
| [`list_gallery_images`](#list-gallery-images) | As imagens de uma galeria, com autor e reações | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`update_gallery_image`](#update-gallery-image) | Muda o título ou a descrição de uma imagem | Autor ou moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`react_to_gallery_image`](#react-to-gallery-image) | Reage a uma imagem da galeria | Qualquer | <span class="tool-kind tool-kind-write">Altera</span> |
| [`delete_gallery_image`](#delete-gallery-image) | Exclui uma imagem da galeria | Autor ou moderador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`get_leaderboard`](#get-leaderboard) | O topo do ranking | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`get_my_points`](#get-my-points) | Os seus pontos e a sua posição no ranking | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`get_ranking_rules`](#get-ranking-rules) | Se o ranking está ligado e os pontos por ação | Administrador | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`update_ranking_rules`](#update-ranking-rules) | Liga, desliga e muda os pontos | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`list_moderation_queue`](#list-moderation-queue) | O que espera aprovação | Moderador | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`moderate_item`](#moderate-item) | Aprova ou recusa um item da fila | Moderador | <span class="tool-kind tool-kind-write">Altera</span> |

## `list_posts`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Listar posts do feed.** O feed (posts, status, eventos e cursos), do mais novo para o mais antigo, com a contagem de comentários e reações. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space_id` | id | Não | Só um espaço (de `list_spaces`) |
| `type` | `all`, `status`, `content`, `events`, `courses` | Não | Só um tipo de item |
| `page`, `limit` | número | Não | Paginação |

**Devolve:** os itens, cada um com o **id** e o **tipo**, que `create_comment`, `add_reaction` e `pin_post` pedem, o autor, o título ou texto, as contagens e se está fixado.

**Peça assim:** *"Quais foram os posts mais comentados desta semana?"* · *"O que foi publicado no espaço Avisos?"*

## `search_content`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Buscar por título.** Procura por título em posts, eventos, cursos, seções, espaços e chamadas de trabalhos, sem diferenciar maiúsculas e acentos, numa busca só na comunidade inteira. *Papel mínimo: qualquer; cada um acha o que pode ver.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `query` | texto, de 2 a 200 | Sim | Parte do título. Nos posts curtos, procura no texto |
| `types` | lista: `posts`, `events`, `courses`, `spaces`, `calls` | Não | Padrão: todos. `spaces` inclui as seções |
| `limit` | número, até 50 | Não | Padrão 20 |

**Devolve:** os achados, cada um com tipo, id, título e, quando há, o espaço, a seção, o módulo, a data e o status.

**Notas:** quem não é da equipe só acha o que está publicado e aprovado; espaços e seções fechados para a pessoa ficam de fora. A busca é a mesma de [`GET /api/search`](/api/referencia/feed/get-search).

**Peça assim:** *"Ache o post Como a comunidade funciona."*

## `list_comments`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Listar comentários de um post.** Os comentários de um post de conteúdo ou de um status. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `content`, `status` | Sim | O tipo do item, de `list_posts` |
| `post_id` | id | Sim | O id do item, de `list_posts` |

**Devolve:** os comentários, com o id (que `create_comment` usa em `reply_to`), o autor, o texto e a data.

**Peça assim:** *"Quais comentários do post de boas-vindas ainda não têm resposta?"*

## `create_post`

<span class="tool-kind tool-kind-write">Altera</span>

**Publicar post.** Publica um post de texto num espaço de Feed ou de Conteúdo. *Papel mínimo: qualquer papel que possa publicar naquele espaço.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space_id` | id | Sim | De `list_spaces` |
| `title` | texto | Sim | |
| `text` | Markdown | Sim | O corpo do post, em [Markdown](/mcp/ferramentas#texto-em-markdown): negrito, itálico, listas, links, intertítulos, citação e código |
| `image_url` | link | Não | A capa do post: um link público (`http`/`https`) de uma imagem JPEG, PNG, WebP ou GIF de até 10 MB. Veja [Imagens por link](/mcp/ferramentas#imagens) |

**Devolve:** o post criado, com o id (para `pin_post`) e a capa. O texto volta em Markdown, com `text_format: "markdown"`.

**Peça assim:** *"Publique no Feed um post de boas-vindas para quem entrou esta semana, citando cada um pelo nome."*

**Notas:** o post sai com o nome e a foto de quem conectou. A regra **Quem pode postar** do espaço vale: num espaço só da equipe, um membro é recusado. O post sai na hora; agendar ainda não é possível. Se a imagem não puder ser usada, nada é publicado e o assistente recebe o motivo.

## `update_post`

<span class="tool-kind tool-kind-write">Altera</span>

**Editar post.** Muda título, texto ou capa de um post, e fixa ou desafixa. Só o que for enviado muda. *Papel mínimo: o autor, ou moderador para cima.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `post` | id ou link | Sim | |
| `type` | `content`, `status` | Não | Padrão: `content`. Em status (posts curtos), só o texto muda |
| `title` | texto simples | Não | |
| `text` | Markdown | Não | Num post curto (`status`), só negrito, itálico, links e quebras de linha |
| `image_url` ou `image_base64` | link ou arquivo | Não | A capa nova. Ver [Imagens](/mcp/ferramentas#imagens) |
| `remove_image` | sim ou não | Não | Tira a capa |
| `pinned` | sim ou não | Não | Fixa ou desafixa (moderador para cima) |

**Peça assim:** *"No post Como a comunidade funciona, troque a capa por esta imagem e fixe no topo."*

**Notas:** o post não muda de espaço.

## `delete_post`

<span class="tool-kind tool-kind-confirm">Pede confirmação</span>

**Excluir post.** Pede confirmação: a primeira chamada mostra o post, e só a segunda exclui. *Papel mínimo: o autor, ou moderador para cima.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `post` | id ou link | Sim | |
| `type` | `content`, `status` | Não | Padrão: `content` |

## `move_post`

<span class="tool-kind tool-kind-write">Altera</span>

**Mover post para outro space.** Leva um post para outro espaço de Conteúdo ou de Feed da comunidade; o lugar dele no feed vai junto. *Papel mínimo: moderador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `post` | id ou link | Sim | |
| `to_space` | id, link, endereço ou nome | Sim | Um espaço de Conteúdo ou de Feed |

**Peça assim:** *"Esse post de vaga caiu em Avisos; mova para o espaço Vagas."*

**Notas:** um espaço de outro módulo (Cursos, Eventos…) é recusado.

## `create_short_post`

<span class="tool-kind tool-kind-write">Altera</span>

**Publicar post curto.** Um post curto, de até 500 caracteres e sem título, num espaço de Feed, como o campo rápido do app. Para um post com título e capa, o assistente usa `create_post`. *Papel: proprietário, administrador, moderador ou membro que pode postar no espaço.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id, link, endereço ou nome | Sim | Um espaço de Feed |
| `text` | texto, até 500 | Sim | Aceita só negrito, itálico, links e quebras de linha, em [Markdown](/mcp/ferramentas#texto-em-markdown) |
| `visibility` | `public`, `members`, `private` | Não | |

**Peça assim:** *"Escreva no Feed: 'Live hoje às 20h, link no evento!'"*

## `create_comment`

<span class="tool-kind tool-kind-write">Altera</span>

**Comentar ou responder.** Comenta num item do feed, ou responde a um comentário. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sim | O tipo do item, de `list_posts` |
| `item_id` | id | Sim | O id do item |
| `text` | texto simples, até 2.000 | Sim | Sem formatação: marcas de Markdown são tiradas |
| `reply_to` | id | Não | O id do comentário a responder (de `list_comments`). Só em itens do tipo `content` |

**Devolve:** o comentário criado.

**Peça assim:** *"Responda a cada pergunta sem resposta no post da live de ontem, agradecendo e dizendo que vamos tratar na próxima."*

## `update_comment`

<span class="tool-kind tool-kind-write">Altera</span>

**Editar comentário.** Muda o texto de um comentário. *Papel mínimo: o autor, ou moderador para cima.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `content`, `status` | Sim | |
| `post` | id ou link | Sim | O post do comentário |
| `comment_id` | id | Sim | De `list_comments` |
| `text` | texto, até 2.000 | Sim | |

## `delete_comment`

<span class="tool-kind tool-kind-confirm">Pede confirmação</span>

**Excluir comentário.** Com confirmação. *Papel mínimo: o autor, ou moderador para cima.* Mesmos parâmetros, sem `text`.

## `add_reaction`

<span class="tool-kind tool-kind-write">Altera</span>

**Reagir.** Reage a um item do feed. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sim | |
| `item_id` | id | Sim | |
| `reaction` | 👍 ❤️ 🔥 🙌 😊 👏 🎉 | Sim | Uma das sete reações |

**Devolve:** a reação registrada.

**Peça assim:** *"Reaja com 🎉 às apresentações de quem entrou hoje."*

## `pin_post`

<span class="tool-kind tool-kind-write">Altera</span>

**Fixar no feed.** Fixa um item no topo do feed, ou desafixa. *Papel mínimo: moderador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sim | |
| `item_id` | id | Sim | |
| `pinned` | sim ou não | Não | Padrão: fixar. Com `false`, desafixa |

**Devolve:** o item com o novo estado.

**Peça assim:** *"Fixe o post das regras da comunidade."*

## `add_gallery_image`

<span class="tool-kind tool-kind-write">Altera</span>

**Adicionar imagem a uma galeria.** Baixa uma imagem de um link e a põe num espaço de Galeria. *Papel mínimo: qualquer papel que possa publicar naquele espaço.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space_id` | id | Sim | Um espaço de Galeria (`list_spaces` com `module: gallery`) |
| `image_url` | link | Sim | um link público (`http`/`https`) de uma imagem JPEG, PNG, WebP ou GIF de até 10 MB. Veja [Imagens por link](/mcp/ferramentas#imagens) |
| `title` | texto, até 255 | Não | O título da imagem na galeria |

**Devolve:** a imagem na galeria, com o endereço e a miniatura.

**Peça assim:** *"Ponha esta foto do encontro na galeria Encontros: https://…/foto.jpg"*

## `list_gallery_images`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Listar imagens da galeria.** As imagens de um espaço de Galeria, da mais nova para a mais antiga, com título, autor e reações. *Papel mínimo: qualquer papel que veja o espaço.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id, link, endereço ou nome | Sim | O espaço de Galeria |
| `page`, `limit` | número | Não | `limit` até 50 |

**Devolve:** as imagens, com o id que as outras ferramentas da galeria pedem.

## `update_gallery_image`

<span class="tool-kind tool-kind-write">Altera</span>

**Editar imagem da galeria.** Muda o título ou a descrição de uma imagem. *Papel: quem pôs a imagem, ou moderador para cima.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `image_id` | id | Sim | De `list_gallery_images` |
| `title` | texto, até 255 | Não | |
| `description` | texto | Não | |

## `react_to_gallery_image`

<span class="tool-kind tool-kind-write">Altera</span>

**Reagir a imagem da galeria.** Com 👍 ❤️ 🔥 👏 😊 ou 🙌. A mesma reação de novo tira a reação. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `image_id` | id | Sim | De `list_gallery_images` |
| `reaction` | um dos seis emojis | Sim | |

## `delete_gallery_image`

<span class="tool-kind tool-kind-confirm">Pede confirmação</span>

**Excluir imagem da galeria.** *Papel: quem pôs a imagem, ou moderador para cima.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `image_id` | id | Sim | De `list_gallery_images` |

**Devolve:** na primeira chamada, o título e o autor da imagem, e o código de confirmação.

## `get_leaderboard`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Ver ranking.** O topo do ranking de pontos da comunidade. *Papel mínimo: qualquer.*

Parâmetros: nenhum.

**Peça assim:** *"Quem são os 10 primeiros do ranking?"*

## `get_my_points`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Meus pontos no ranking.** Os seus pontos e a sua posição no ranking da comunidade. *Papel mínimo: qualquer.*

Parâmetros: nenhum.

**Peça assim:** *"Quantos pontos eu tenho, e em que posição estou?"*

## `get_ranking_rules`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Ver regras do ranking.** Se o ranking está ligado e quantos pontos vale cada ação. *Papel mínimo: administrador.*

Parâmetros: nenhum.

**Peça assim:** *"Quantos pontos vale um comentário?"*

## `update_ranking_rules`

<span class="tool-kind tool-kind-write">Altera</span>

**Mudar regras do ranking.** Liga ou desliga o ranking e muda os pontos por ação. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `enabled` | sim ou não | Não | |
| `points` | ação → pontos | Não | As ações vêm de `get_ranking_rules`, ex.: `{"comment": 10}` |

**Peça assim:** *"Comentar passa a valer 10 pontos."*

Ver [Ranking](/espacos/ranking).

## `list_moderation_queue`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Fila de moderação.** O que espera aprovação, ou os números da moderação. *Papel mínimo: moderador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `summary`, `posts`, `courses`, `events`, `gallery`, `status` | Não | Padrão: `posts`. `summary` traz os números |

**Peça assim:** *"Tem algo esperando aprovação?"*

## `moderate_item`

<span class="tool-kind tool-kind-write">Altera</span>

**Aprovar ou recusar.** Aprova ou recusa um item da fila de moderação. *Papel mínimo: moderador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `type` | `posts`, `courses`, `events`, `gallery`, `status` | Sim | |
| `item_id` | id | Sim | De `list_moderation_queue` |
| `decision` | `approve`, `reject` | Sim | |
| `reason` | texto | Não | Obrigatório para recusar |

**Peça assim:** *"Aprove os posts da fila que não têm link externo."*

Ver [Moderação](/membros/moderacao).

## Relacionados

- [Ferramentas](/mcp/ferramentas)
- [Receitas](/mcp/receitas)
- [Dinheiro e confirmação](/mcp/dinheiro-e-confirmacao)
