# Herramientas · Comunidad y estructura

> Herramientas MCP para la estructura de la comunidad: el contexto de la conexión, las secciones y los espacios, abrir un enlace copiado de la app, crear, editar, reordenar y eliminar secciones y espacios, quién ve cada uno, mover un espacio de sección, la configuración de la comunidad (incluido el idioma) y el correo de los avisos de venta.

El punto de partida de toda conversación y la forma de la comunidad: en qué comunidad y con qué rol está el asistente, qué secciones y espacios existen, y crear, reordenar, ajustar o eliminar esa estructura, incluido quién ve cada espacio. Aquí es también donde el asistente entiende un enlace que pegas en la conversación, y donde ve y cambia la configuración de la comunidad (nombre, colores, logo, SEO, idioma y reglas de entrada) y el correo que recibe los avisos de venta.

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 |
|---|---|---|---|
| [`get_community_context`](#get-community-context) | Comunidad, rol, secciones y espacios con ids: el punto de partida | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_connection_diagnostics`](#get-connection-diagnostics) | Si la lista de herramientas del asistente está al día | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_spaces`](#list-spaces) | Secciones y espacios, con filtro por módulo | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`open_link`](#open-link) | Dice qué es un enlace copiado de la app (o un id) | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_section`](#create-section) | Crea una sección del menú | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_space`](#create-space) | Crea un espacio en una sección | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_space`](#update-space) | Cambia el nombre, la descripción, el icono o la visibilidad de un espacio, o lo mueve a otra sección | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_section`](#update-section) | Cambia el nombre, la descripción o el icono de una sección, o la convierte en la inicial | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`reorder_sections`](#reorder-sections) | Pone las secciones del menú en un orden nuevo | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`reorder_spaces`](#reorder-spaces) | Pone los espacios de una sección en un orden nuevo | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_space_access`](#update-space-access) | Quién ve un espacio o una sección, y quién publica en el espacio | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_section`](#delete-section) | Elimina una sección y sus espacios | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`delete_space`](#delete-space) | Elimina un espacio | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`get_community_settings`](#get-community-settings) | La configuración de la comunidad: nombre, colores, imágenes, SEO, idioma, entrada | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`update_community_settings`](#update-community-settings) | Cambia nombre, colores, logo, favicon, SEO, idioma y reglas de entrada | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`get_notification_settings`](#get-notification-settings) | El correo que recibe los avisos de venta | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`update_notification_settings`](#update-notification-settings) | Cambia o desactiva el correo de los avisos de venta | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |

## `get_community_context`

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

**Contexto de la comunidad.** El punto de partida: dice en qué comunidad está la conexión, con qué rol, y enumera las secciones y los espacios con sus ids. *Rol mínimo: cualquiera.*

Parámetros: ninguno.

**Devuelve:** la comunidad (id, nombre, dirección), tú (rol y nombre), los ámbitos de la conexión (`read`, `write`), las secciones (id, título, si es la inicial, visibilidad) con los espacios de cada una (id, título, módulo, visibilidad), el orden en que hay que crear las cosas, y los iconos disponibles para espacios (`available_icons`, con el uso de cada uno).

**Pídelo así:** *"¿A qué comunidad estás conectado y con qué rol?"* · *"¿Qué espacios tiene la comunidad?"*

**Notas:** los asistentes suelen llamar a esta herramienta por su cuenta al empezar cada conversación. El orden de creación que devuelve es el mismo de [Orden de creación](/api/ordem-de-criacao).

## `list_spaces`

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

**Listar secciones y spaces.** Las secciones y los espacios, con id, módulo y visibilidad, con filtro por módulo. *Rol mínimo: cualquiera; cada uno ve lo que puede ver.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `module` | texto | No | `feed`, `content`, `courses`, `events`, `storefront`, `gallery`… Devuelve solo las secciones que tienen espacios de ese módulo |

**Devuelve:** las secciones con los espacios, como en `get_community_context`.

**Pídelo así:** *"¿Cuál es el espacio de cursos?"* · *"Enumera los espacios de eventos."*

## `open_link`

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

**Abrir enlace de la app.** Recibe un enlace de tu comunidad (o un id o slug suelto) y dice qué es, con id, título, espacio y un resumen. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `link` | texto | Sí | La dirección de la app, una ruta como `/aprender/cursos/excel`, un id o un slug |

Entiende las direcciones de la app: espacio (`/sección/espacio`), publicación, evento, curso, certificado (desde dentro del espacio o desde la página pública de verificación), convocatoria y propuesta (`?proposal=`), plan (`/pricing/…`) y suscripción (`/billing?subscription=…`), incluidas las direcciones antiguas que la app redirige.

**Pídelo así:** *"¿Qué es este enlace? https://tucomunidad.com/aprender/cursos/excel-desde-cero"*

**Notas:** solo funciona con enlaces de la comunidad conectada. Un enlace de otra comunidad devuelve *"Ese enlace es de otra comunidad"*, aunque administres las dos: conecta la otra por separado.

## `create_section`

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

**Crear sección.** Crea una sección del menú, como *Aprender* o *Comunidad*. Los espacios viven dentro de las secciones. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `title` | texto, hasta 255 | Sí | El nombre en el menú |
| `description` | texto simple | No | Sin formato: las marcas de Markdown se eliminan |
| `visibility` | `public`, `members`, `plan`, `private` | No | Quién ve la sección. Consulta [Visibilidad y acceso](/conceitos/visibilidade-e-acesso) |

**Devuelve:** la sección creada, con el id que pide `create_space`.

**Pídelo así:** *"Crea una sección llamada Aprender, visible solo para miembros."*

## `create_space`

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

**Crear space.** Crea un espacio en una sección, con el módulo que define qué es. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `section_id` | id | Sí | De `get_community_context` o `create_section` |
| `title` | texto, hasta 255 | Sí | |
| `module` | `feed`, `content`, `courses`, `events`, `storefront`, `gallery`, `ranking`, `url`, `certificates`, `call4papers` | Sí | Feed, Contenido, Cursos, Eventos, Tienda, Galería, Ranking, Enlace, Certificados o Convocatoria. Consulta [Módulos](/conceitos/modulos) |
| `external_url` | dirección web | No | Solo en el módulo `url`: la dirección que abre el espacio |
| `icon` | uno de los iconos de la lista | No | El icono del espacio. Consulta [Iconos](#iconos). Sin él, Memberfy elige uno por el título y el módulo |
| `description` | texto simple | No | Sin formato: las marcas de Markdown se eliminan |
| `visibility` | `public`, `members`, `plan`, `private` | No | |

**Devuelve:** el espacio creado, con el id y el icono.

**Pídelo así:** *"Crea un espacio de Feed llamado Avisos en la sección Comunidad, con el icono de megáfono."*

**Notas:** para un curso o un evento completo, `create_course` y `create_event` crean el espacio a la vez. En un espacio de Convocatoria, el siguiente paso sugerido es abrir la primera convocatoria ([`create_call_for_papers`](/mcp/ferramentas-chamada#create-call-for-papers)). Los espacios no tienen imagen de portada.

## `update_space`

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

**Editar space.** Cambia el nombre, la descripción, el icono o la visibilidad de un espacio que ya existe, o lo mueve a otra sección. Solo cambia lo que se envía. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space_id` | id | Sí | De `list_spaces` |
| `title` | texto, hasta 255 | No | |
| `description` | texto simple | No | Sin formato: las marcas de Markdown se eliminan |
| `icon` | uno de los iconos de la lista | No | El icono del espacio. Consulta [Iconos](#iconos). Sin él, Memberfy elige uno por el título y el módulo |
| `visibility` | `public`, `members`, `plan`, `private` | No | Para el espacio privado con grupos, productos o planes, usa [`update_space_access`](#update-space-access) |
| `section_id` | id | No | Mueve el espacio a esta sección |

**Devuelve:** el espacio actualizado.

**Pídelo así:** *"Cambia el icono del espacio Empleo por un maletín."* · *"Pon un icono distinto a cada espacio de la sección Aprender, según el tema."*

## `update_section`

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

**Editar sección.** Renombra una sección del menú, cambia su descripción o su icono, o la convierte en la sección inicial. Solo cambia lo que se envía. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `section` | id, dirección o nombre | Sí | De `get_community_context` |
| `title` | texto, hasta 255 | No | |
| `description` | texto simple | No | Sin formato: las marcas de Markdown se eliminan |
| `icon` | texto | No | |
| `is_home` | sí o no | No | La sección que se abre primero |

**Pídelo así:** *"Cambia el nombre de la sección Aprender a Cursos y conviértela en la sección inicial."*

**Notas:** quién ve la sección se cambia con [`update_space_access`](#update-space-access).

## `reorder_sections`

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

**Reordenar secciones.** Pone las secciones del menú en un orden nuevo, de arriba abajo. Las que se queden fuera mantienen su orden, después de estas. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `section_ids` | lista de ids | Sí | De `get_community_context`, en el orden nuevo |

**Pídelo así:** *"Pon la sección Eventos justo después de Comunidad."*

## `reorder_spaces`

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

**Reordenar espacios.** Pone los espacios de una sección en un orden nuevo. Los que se queden fuera mantienen su orden, después de estos. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `section` | id, dirección o nombre | Sí | La sección |
| `space_ids` | lista de ids | Sí | De `list_spaces`, en el orden nuevo |

**Pídelo así:** *"En la sección Aprender, pon primero el espacio Excel desde Cero."*

**Notas:** para llevar un espacio a otra sección, usa [`update_space`](#update-space) con `section_id`.

## `update_space_access`

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

**Cambiar quién ve el espacio.** Define quién ve un espacio o una sección entera y, en un espacio, quién puede publicar. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` o `section` | id, enlace, dirección o nombre | Uno de los dos | El espacio o la sección |
| `visibility` | `public`, `members`, `plan`, `private` | No | Público, miembros, cualquier suscripción activa, o privado |
| `group_ids` | lista de ids | No | En el privado: los grupos que entran (de `list_groups`) |
| `product_ids` | lista de ids | No | En el privado: los productos cuya compra da acceso (de `list_products`) |
| `plan_ids` | lista de ids | No | En el privado: los planes cuya suscripción da acceso (de `list_plans`) |
| `can_create` | `anyone`, `staff`, `admins` | No | Solo en un espacio: pueden publicar **Cualquiera**, el **Equipo** o los **Admins** |

**Devuelve:** el espacio o la sección actualizados.

**Pídelo así:** *"Deja el espacio Excel desde Cero visible solo para quien haya comprado el producto del curso o esté suscrito al plan Alumno."*

**Notas:** los grupos, productos y planes que se envían sustituyen a los que había; basta con uno de ellos para que la persona entre. Un espacio nunca queda más abierto que su sección. Cambia quién ve qué al momento: pide al asistente que te muestre antes lo que va a cambiar, si quieres revisarlo. Consulta [Visibilidad y acceso](/conceitos/visibilidade-e-acesso).

## `delete_section`

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

**Eliminar sección.** Elimina una sección del menú y los espacios que contiene. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `section` | id, dirección o nombre | Sí | |

**Devuelve:** en la primera llamada, la sección y la lista de los espacios que se eliminan con ella, y el código de confirmación.

## `delete_space`

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

**Eliminar espacio.** Elimina un espacio, y lo que contiene, del menú. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id, enlace, dirección o nombre | Sí | |

**Devuelve:** en la primera llamada, el espacio, el módulo y la sección, y el código de confirmación.

## `get_community_settings`

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

**Ver la configuración de la comunidad.** La configuración de la comunidad tal como está. *Rol mínimo: administrador.*

Parámetros: ninguno.

**Devuelve:** el nombre, la descripción, los colores (primario y secundario en hex, y la escala completa), el logo, el favicon, la imagen para compartir, el SEO, las reglas de entrada (registro abierto, modelo de registro, visitantes), la moderación y el ranking. Nada secreto, como integraciones o DNS.

**Pídelo así:** *"¿Cuáles son ahora los colores y el SEO de la comunidad?"*

## `update_community_settings`

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

**Cambiar la configuración de la comunidad.** Cambia la configuración; solo cambia lo que se envía. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `name`, `description` | texto | No | El nombre y la descripción de la comunidad |
| `primary_color`, `secondary_color` | color en hex (`#RRGGBB`) | No | La escala entera, de 50 a 950, se genera a partir de ellos. Consulta [Colores](/configuracoes/cores) |
| `reset_colors` | sí o no | No | Vuelve a los colores por defecto del producto |
| `mobile_bar_color` | color en hex | No | El color de la barra del navegador en el móvil |
| `seo_title`, `seo_description` | texto | No | Consulta [Imágenes y SEO](/configuracoes/imagens-e-seo) |
| `signup_open` | sí o no | No | Cualquiera puede registrarse |
| `signup_model` | `FREE`, `PAID` | No | |
| `guest_access` | sí o no | No | Los visitantes ven lo que es público |
| `content_moderation` | sí o no | No | |
| `global_ranking` | sí o no | No | |
| `language` | `pt-BR`, `pt-PT`, `en-US`, `es-ES`, `es-MX`, `es-AR`, `it-IT`, `de-DE`, `de-AT`, `de-CH` | No | El idioma de la comunidad: el de los correos y el de quien todavía no ha elegido un idioma. Consulta [Idiomas](/configuracoes/idiomas) |
| `linkedin_id` | número | No | El ID de la página de la comunidad en LinkedIn, para los certificados |
| `logo_url` o `logo_base64` | enlace o archivo | No | El logo |
| `favicon_url` o `favicon_base64` | enlace o archivo | No | El favicon |
| `share_image_url` o `share_image_base64` | enlace o archivo | No | La imagen que aparece cuando alguien comparte el enlace |

**Devuelve:** la configuración aplicada, con el **antes → después** de cada campo.

**Pídelo así:** *"Cambia el color primario a #4F46E5 y usa este logo: https://…"*

**Notas:** todo esto lo ve la comunidad entera en cuanto se ejecuta la llamada; para deshacerlo, pídelo de nuevo con el valor anterior, que está en el **antes → después**. El dominio y las integraciones no se cambian por aquí. Consulta [Configuración general](/configuracoes/configuracoes-gerais).

## `get_notification_settings`

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

**Ver avisos de venta.** Adónde van los avisos de la comunidad: el correo que recibe un aviso con cada venta. *Rol mínimo: administrador.*

Parámetros: ninguno.

**Pídelo así:** *"¿Quién recibe el aviso cuando se hace una venta?"*

## `update_notification_settings`

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

**Cambiar e-mail de avisos de venta.** Define el correo que recibe un aviso con cada venta. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `sales_notification_email` | correo | Sí | Vacío (`""`) desactiva los avisos |

**Pídelo así:** *"Envía los avisos de venta a financeiro\@memberfy.net."*

Consulta [Avisos de venta](/notificacoes/avisos-de-venda).

## Iconos

Los espacios usan los mismos iconos que el selector del panel. El asistente recibe la lista con el uso de cada uno (en `get_community_context`, campo `available_icons`, y en la descripción de las herramientas) y tiene instrucciones de elegir según el tema, sin repetir siempre el mismo. Si no elige, Memberfy elige por el título (*Agenda de directos* recibe `calendar`, *Empleo* recibe `briefcase`) o, sin pistas en el título, por el módulo (Cursos recibe `book-open`, Galería recibe `image`).

Algunos ejemplos: `calendar` (eventos, agenda), `book-open` (cursos, lecciones), `graduation-cap` (formación, mentoría), `megaphone` (avisos, anuncios), `message-square` (foro, dudas), `briefcase` (carrera, empleo), `image` (galería, fotos), `trophy` (ranking, retos), `shopping-bag` (tienda), `crown` (premium, VIP), `lock` (privado).

## `get_connection_diagnostics`

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

**Diagnóstico de la conexión.** Dice si la lista de herramientas que usa el asistente está al día. *Rol mínimo: administrador (propietario o administrador).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `connection_id` | id | No | Sin él, la conexión de esta conversación |

**Devuelve:** el asistente, quién lo autorizó y cuándo, la versión del servidor y la lista que la conexión recibiría ahora (el código de la lista y cuántas herramientas), lo que recibió la última vez, la última llamada y el último intento de usar una herramienta que no tiene, y `listUpToDate`. Con `listUpToDate` en falso, el asistente tiene la lista antigua: abre una conversación nueva o vuelve a conectar el conector.

**Pídelo así:** *"Una llamada tuya falló. ¿Tu lista de herramientas de Memberfy está al día?"*

## Relacionados

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