# Herramientas · Contenido e interacción

> Herramientas MCP para lo que pasa en el feed: buscar, leer, publicar, editar, mover y eliminar publicaciones, publicaciones cortas, comentar y responder, editar y eliminar comentarios, reaccionar, fijar, la galería (añadir, listar, editar, reaccionar y eliminar), el ranking y tus puntos, y la moderación.

El día a día de la comunidad: el ranking y la cola de moderación, encontrar una publicación por el título, publicar un aviso con imagen, responder a las preguntas de un directo, reaccionar a las presentaciones, fijar lo importante, mover una publicación al espacio adecuado y cuidar las fotos de la galería. Las publicaciones y los comentarios salen con el nombre de quien conectó el asistente.

Cada herramienta lleva un sello: <span class="tool-kind tool-kind-read">Solo consulta</span> no cambia nada, <span class="tool-kind tool-kind-write">Modifica</span> crea o cambia algo al momento, y <span class="tool-kind tool-kind-confirm">Pide confirmación</span> solo actúa después de tu sí a un resumen. Consulta [Dinero y confirmación](/mcp/dinheiro-e-confirmacao).

## En resumen

| Herramienta | Qué hace | Rol mínimo | Tipo |
|---|---|---|---|
| [`list_posts`](#list-posts) | El feed, con comentarios y reacciones | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`search_content`](#search-content) | Busca publicaciones, eventos, cursos, secciones, espacios y convocatorias por el título | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_comments`](#list-comments) | Comentarios de una publicación | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_post`](#create-post) | Publica una entrada | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_post`](#update-post) | Edita el título, el texto y la portada; fija | Autor o moderador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_post`](#delete-post) | Elimina una publicación, con confirmación | Autor o moderador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`move_post`](#move-post) | Mueve una publicación a otro espacio de Contenido o de Feed | Moderador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_short_post`](#create-short-post) | Publica una publicación corta, sin título, en un Feed | Miembro (no Finanzas) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_comment`](#create-comment) | Comenta o responde | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_comment`](#update-comment) | Edita un comentario | Autor o moderador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_comment`](#delete-comment) | Elimina un comentario, con confirmación | Autor o moderador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`add_reaction`](#add-reaction) | Reacciona con un emoji | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`pin_post`](#pin-post) | Fija o desfija en el feed | Moderador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`add_gallery_image`](#add-gallery-image) | Pone una imagen, por enlace, en una galería | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`list_gallery_images`](#list-gallery-images) | Las imágenes de una galería, con autor y reacciones | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`update_gallery_image`](#update-gallery-image) | Cambia el título o la descripción de una imagen | Autor o moderador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`react_to_gallery_image`](#react-to-gallery-image) | Reacciona a una imagen de la galería | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_gallery_image`](#delete-gallery-image) | Elimina una imagen de la galería | Autor o moderador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`get_leaderboard`](#get-leaderboard) | Lo más alto del ranking | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_my_points`](#get-my-points) | Tus puntos y tu posición en el ranking | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_ranking_rules`](#get-ranking-rules) | Si el ranking está activado y los puntos por acción | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`update_ranking_rules`](#update-ranking-rules) | Activa, desactiva y cambia los puntos | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`list_moderation_queue`](#list-moderation-queue) | Lo que espera aprobación | Moderador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`moderate_item`](#moderate-item) | Aprueba o rechaza un elemento de la cola | Moderador | <span class="tool-kind tool-kind-write">Modifica</span> |

## `list_posts`

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

**Listar publicaciones del feed.** El feed (publicaciones, estados, eventos y cursos), del más nuevo al más antiguo, con el número de comentarios y reacciones. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space_id` | id | No | Un solo espacio (de `list_spaces`) |
| `type` | `all`, `status`, `content`, `events`, `courses` | No | Un solo tipo de elemento |
| `page`, `limit` | número | No | Paginación |

**Devuelve:** los elementos, cada uno con el **id** y el **tipo** que piden `create_comment`, `add_reaction` y `pin_post`, el autor, el título o texto, los recuentos y si está fijado.

**Pídelo así:** *"¿Cuáles han sido las publicaciones más comentadas esta semana?"* · *"¿Qué se ha publicado en el espacio Avisos?"*

## `search_content`

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

**Buscar por título.** Busca por título en publicaciones, eventos, cursos, secciones, espacios y convocatorias de ponencias, sin distinguir mayúsculas ni acentos, en una sola búsqueda en toda la comunidad. *Rol mínimo: cualquiera; cada uno encuentra lo que puede ver.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `query` | texto, de 2 a 200 | Sí | Parte del título. En las publicaciones cortas, busca en el texto |
| `types` | lista: `posts`, `events`, `courses`, `spaces`, `calls` | No | Por defecto: todos. `spaces` incluye las secciones |
| `limit` | número, hasta 50 | No | Por defecto, 20 |

**Devuelve:** los resultados, cada uno con tipo, id, título y, cuando lo hay, el espacio, la sección, el módulo, la fecha y el estado.

**Notas:** quien no es del equipo solo encuentra lo que está publicado y aprobado; los espacios y las secciones cerrados para esa persona quedan fuera. La búsqueda es la misma de [`GET /api/search`](/api/referencia/feed/get-search).

**Pídelo así:** *"Busca la publicación Cómo funciona la comunidad."*

## `list_comments`

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

**Listar comentarios de una publicación.** Los comentarios de una publicación de contenido o de un estado. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `content`, `status` | Sí | El tipo del elemento, de `list_posts` |
| `post_id` | id | Sí | El id del elemento, de `list_posts` |

**Devuelve:** los comentarios, con el id (que `create_comment` usa en `reply_to`), el autor, el texto y la fecha.

**Pídelo así:** *"¿Qué comentarios de la publicación de bienvenida siguen sin respuesta?"*

## `create_post`

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

**Publicar entrada.** Publica una entrada de texto en un espacio de Feed o de Contenido. *Rol mínimo: cualquier rol que pueda publicar en ese espacio.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space_id` | id | Sí | De `list_spaces` |
| `title` | texto | Sí | |
| `text` | Markdown | Sí | El cuerpo de la publicación, en [Markdown](/mcp/ferramentas#texto-en-markdown): negrita, cursiva, listas, enlaces, subtítulos, cita y código |
| `image_url` | enlace | No | La portada de la publicación: un enlace público (`http`/`https`) de una imagen JPEG, PNG, WebP o GIF de hasta 10 MB. Consulta [Imágenes](/mcp/ferramentas#imagenes) |

**Devuelve:** la publicación creada, con el id (para `pin_post`) y la portada. El texto vuelve en Markdown, con `text_format: "markdown"`.

**Pídelo así:** *"Publica en el Feed una bienvenida para quienes han entrado esta semana, mencionando a cada uno por su nombre."*

**Notas:** la publicación sale con el nombre y la foto de quien conectó. Se aplica la regla **Quién puede publicar** del espacio: en un espacio solo del equipo, un miembro recibe un rechazo. La publicación sale al momento; todavía no se puede programar. Si la imagen no se puede usar, no se publica nada y el asistente recibe el motivo.

## `update_post`

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

**Editar entrada.** Cambia el título, el texto o la portada de una publicación, y la fija o la desfija. Solo cambia lo que se envía. *Rol mínimo: el autor, o moderador en adelante.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `post` | id o enlace | Sí | |
| `type` | `content`, `status` | No | Por defecto: `content`. En los estados (publicaciones cortas), solo cambia el texto |
| `title` | texto simple | No | |
| `text` | Markdown | No | En una publicación corta (`status`), solo negrita, cursiva, enlaces y saltos de línea |
| `image_url` o `image_base64` | enlace o archivo | No | La portada nueva. Consulta [Imágenes](/mcp/ferramentas#imagenes) |
| `remove_image` | sí o no | No | Quita la portada |
| `pinned` | sí o no | No | Fija o desfija (moderador en adelante) |

**Pídelo así:** *"En la publicación Cómo funciona la comunidad, cambia la portada por esta imagen y fíjala arriba."*

**Notas:** la publicación no cambia de espacio.

## `delete_post`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar entrada.** Pide confirmación: la primera llamada muestra la publicación, y solo la segunda la elimina. *Rol mínimo: el autor, o moderador en adelante.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `post` | id o enlace | Sí | |
| `type` | `content`, `status` | No | Por defecto: `content` |

## `move_post`

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

**Mover post a otro espacio.** Lleva una publicación a otro espacio de Contenido o de Feed de la comunidad; su lugar en el feed va con ella. *Rol mínimo: moderador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `post` | id o enlace | Sí | |
| `to_space` | id, enlace, dirección o nombre | Sí | Un espacio de Contenido o de Feed |

**Pídelo así:** *"Esta oferta de empleo ha caído en Avisos; muévela al espacio Empleo."*

**Notas:** un espacio de otro módulo (Cursos, Eventos…) se rechaza.

## `create_short_post`

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

**Publicar post corto.** Una publicación corta, de hasta 500 caracteres y sin título, en un espacio de Feed, como el campo rápido de la app. Para una publicación con título y portada, el asistente usa `create_post`. *Rol: propietario, administrador, moderador o miembro que puede publicar en el espacio.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id, enlace, dirección o nombre | Sí | Un espacio de Feed |
| `text` | texto, hasta 500 | Sí | Solo acepta negrita, cursiva, enlaces y saltos de línea, en [Markdown](/mcp/ferramentas#texto-en-markdown) |
| `visibility` | `public`, `members`, `private` | No | |

**Pídelo así:** *"Escribe en el Feed: '¡Directo hoy a las 20:00, el enlace está en el evento!'"*

## `create_comment`

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

**Comentar o responder.** Comenta en un elemento del feed, o responde a un comentario. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sí | El tipo del elemento, de `list_posts` |
| `item_id` | id | Sí | El id del elemento |
| `text` | texto simple, hasta 2.000 | Sí | Sin formato: las marcas de Markdown se eliminan |
| `reply_to` | id | No | El id del comentario al que respondes (de `list_comments`). Solo en elementos de tipo `content` |

**Devuelve:** el comentario creado.

**Pídelo así:** *"Responde a cada pregunta sin respuesta de la publicación del directo de ayer, dando las gracias y diciendo que lo trataremos en el próximo."*

## `update_comment`

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

**Editar comentario.** Cambia el texto de un comentario. *Rol mínimo: el autor, o moderador en adelante.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `content`, `status` | Sí | |
| `post` | id o enlace | Sí | La publicación del comentario |
| `comment_id` | id | Sí | De `list_comments` |
| `text` | texto, hasta 2.000 | Sí | |

## `delete_comment`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar comentario.** Con confirmación. *Rol mínimo: el autor, o moderador en adelante.* Los mismos parámetros, sin `text`.

## `add_reaction`

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

**Reaccionar.** Reacciona a un elemento del feed. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sí | |
| `item_id` | id | Sí | |
| `reaction` | 👍 ❤️ 🔥 🙌 😊 👏 🎉 | Sí | Una de las siete reacciones |

**Devuelve:** la reacción registrada.

**Pídelo así:** *"Reacciona con 🎉 a las presentaciones de quienes han entrado hoy."*

## `pin_post`

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

**Fijar en el feed.** Fija un elemento en la parte superior del feed, o lo desfija. *Rol mínimo: moderador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `content`, `status`, `event`, `course` | Sí | |
| `item_id` | id | Sí | |
| `pinned` | sí o no | No | Por defecto: fijar. Con `false`, desfija |

**Devuelve:** el elemento con el nuevo estado.

**Pídelo así:** *"Fija la publicación de las normas de la comunidad."*

## `add_gallery_image`

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

**Añadir imagen a una galería.** Descarga una imagen de un enlace y la pone en un espacio de Galería. *Rol mínimo: cualquier rol que pueda publicar en ese espacio.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space_id` | id | Sí | Un espacio de Galería (`list_spaces` con `module: gallery`) |
| `image_url` | enlace | Sí | un enlace público (`http`/`https`) de una imagen JPEG, PNG, WebP o GIF de hasta 10 MB. Consulta [Imágenes](/mcp/ferramentas#imagenes) |
| `title` | texto, hasta 255 | No | El título de la imagen en la galería |

**Devuelve:** la imagen en la galería, con la dirección y la miniatura.

**Pídelo así:** *"Pon esta foto del encuentro en la galería Encuentros: https://…/foto.jpg"*

## `list_gallery_images`

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

**Listar imágenes de la galería.** Las imágenes de un espacio de Galería, de la más reciente a la más antigua, con título, autor y reacciones. *Rol mínimo: cualquier rol que vea el espacio.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id, enlace, dirección o nombre | Sí | El espacio de Galería |
| `page`, `limit` | número | No | `limit` hasta 50 |

**Devuelve:** las imágenes, con el id que piden las demás herramientas de la galería.

## `update_gallery_image`

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

**Editar imagen de la galería.** Cambia el título o la descripción de una imagen. *Rol: quien subió la imagen, o de moderador para arriba.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `image_id` | id | Sí | De `list_gallery_images` |
| `title` | texto, hasta 255 | No | |
| `description` | texto | No | |

## `react_to_gallery_image`

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

**Reaccionar a imagen de la galería.** Con 👍 ❤️ 🔥 👏 😊 o 🙌. La misma reacción otra vez quita la reacción. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `image_id` | id | Sí | De `list_gallery_images` |
| `reaction` | uno de los seis emojis | Sí | |

## `delete_gallery_image`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar imagen de la galería.** *Rol: quien subió la imagen, o de moderador para arriba.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `image_id` | id | Sí | De `list_gallery_images` |

**Devuelve:** en la primera llamada, el título y el autor de la imagen, y el código de confirmación.

## `get_leaderboard`

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

**Ver ranking.** Lo más alto del ranking de puntos de la comunidad. *Rol mínimo: cualquiera.*

Parámetros: ninguno.

**Pídelo así:** *"¿Quiénes son los 10 primeros del ranking?"*

## `get_my_points`

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

**Mis puntos en el ranking.** Tus puntos y tu posición en el ranking de la comunidad. *Rol mínimo: cualquiera.*

Parámetros: ninguno.

**Pídelo así:** *"¿Cuántos puntos tengo y en qué posición estoy?"*

## `get_ranking_rules`

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

**Ver reglas del ranking.** Si el ranking está activado y cuántos puntos vale cada acción. *Rol mínimo: administrador.*

Parámetros: ninguno.

**Pídelo así:** *"¿Cuántos puntos vale un comentario?"*

## `update_ranking_rules`

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

**Cambiar reglas del ranking.** Activa o desactiva el ranking y cambia los puntos por acción. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `enabled` | sí o no | No | |
| `points` | acción → puntos | No | Las acciones vienen de `get_ranking_rules`, p. ej. `{"comment": 10}` |

**Pídelo así:** *"Comentar pasa a valer 10 puntos."*

Consulta [Ranking](/espacos/ranking).

## `list_moderation_queue`

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

**Cola de moderación.** Lo que espera aprobación, o las cifras de la moderación. *Rol mínimo: moderador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `summary`, `posts`, `courses`, `events`, `gallery`, `status` | No | Por defecto: `posts`. `summary` devuelve las cifras |

**Pídelo así:** *"¿Hay algo esperando aprobación?"*

## `moderate_item`

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

**Aprobar o rechazar.** Aprueba o rechaza un elemento de la cola de moderación. *Rol mínimo: moderador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `type` | `posts`, `courses`, `events`, `gallery`, `status` | Sí | |
| `item_id` | id | Sí | De `list_moderation_queue` |
| `decision` | `approve`, `reject` | Sí | Aprobar o rechazar |
| `reason` | texto | No | Obligatorio para rechazar |

**Pídelo así:** *"Aprueba las publicaciones de la cola que no tienen enlace externo."*

Consulta [Moderación](/membros/moderacao).

## Relacionados

- [Herramientas](/mcp/ferramentas)
- [Recetas](/mcp/receitas)
- [Dinero y confirmación](/mcp/dinheiro-e-confirmacao)
