# Ferramentas · Comunidade e estrutura

> Ferramentas MCP para a estrutura da comunidade: o contexto da conexão, as seções e os espaços, abrir um link copiado do app, criar, editar, reordenar e excluir seções e espaços, quem vê cada um, mover um espaço de seção, as configurações da comunidade (inclusive o idioma) e o e-mail dos avisos de venda.

O ponto de partida de toda conversa e a forma da comunidade: em que comunidade e com que papel o assistente está, quais seções e espaços existem, e criar, reordenar, ajustar ou excluir essa estrutura, inclusive quem vê cada espaço. É aqui também que o assistente entende um link que você cola na conversa, e que ele vê e muda as configurações da comunidade (nome, cores, logo, SEO, idioma e regras de entrada) e o e-mail que recebe os avisos de venda.

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 |
|---|---|---|---|
| [`get_community_context`](#get-community-context) | Comunidade, papel, seções e espaços com ids: o ponto de partida | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`get_connection_diagnostics`](#get-connection-diagnostics) | Se a lista de ferramentas do assistente está em dia | Administrador | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`list_spaces`](#list-spaces) | Seções e espaços, com filtro por módulo | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`open_link`](#open-link) | Diz o que é um link copiado do app (ou um id) | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`create_section`](#create-section) | Cria uma seção do menu | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`create_space`](#create-space) | Cria um espaço numa seção, com ícone | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`update_space`](#update-space) | Muda nome, descrição, ícone ou visibilidade de um espaço, ou move para outra seção | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`update_section`](#update-section) | Muda nome, descrição, ícone de uma seção, ou a torna a inicial | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`reorder_sections`](#reorder-sections) | Põe as seções do menu numa nova ordem | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`reorder_spaces`](#reorder-spaces) | Põe os espaços de uma seção numa nova ordem | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`update_space_access`](#update-space-access) | Quem vê um espaço ou uma seção, e quem posta no espaço | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`delete_section`](#delete-section) | Exclui uma seção e os espaços dela | Administrador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`delete_space`](#delete-space) | Exclui um espaço | Administrador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`get_community_settings`](#get-community-settings) | As configurações da comunidade: nome, cores, imagens, SEO, idioma, entrada | Administrador | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`update_community_settings`](#update-community-settings) | Muda nome, cores, logo, favicon, SEO, idioma e regras de entrada | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`get_notification_settings`](#get-notification-settings) | O e-mail que recebe os avisos de venda | Administrador | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`update_notification_settings`](#update-notification-settings) | Muda ou desliga o e-mail dos avisos de venda | Administrador | <span class="tool-kind tool-kind-write">Altera</span> |

## `get_community_context`

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

**Contexto da comunidade.** O ponto de partida: diz em qual comunidade a conexão está, com qual papel, e lista as seções e os espaços com os ids. *Papel mínimo: qualquer.*

Parâmetros: nenhum.

**Devolve:** a comunidade (id, nome, endereço), você (papel e nome), os escopos da conexão (`read`, `write`), as seções (id, título, se é a inicial, visibilidade) com os espaços de cada uma (id, título, módulo, visibilidade), a ordem em que as coisas precisam ser criadas, e os ícones disponíveis para espaços (`available_icons`, com o uso de cada um).

**Peça assim:** *"Em que comunidade você está conectado, e com que papel?"* · *"Quais espaços a comunidade tem?"*

**Notas:** os assistentes costumam chamar esta ferramenta sozinhos no começo de cada conversa. A ordem de criação que ela devolve é a mesma de [Ordem de criação](/api/ordem-de-criacao).

## `list_spaces`

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

**Listar seções e spaces.** As seções e os espaços, com id, módulo e visibilidade, com filtro por módulo. *Papel mínimo: qualquer; cada um vê o que pode ver.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `module` | texto | Não | `feed`, `content`, `courses`, `events`, `storefront`, `gallery`… Devolve só as seções que têm espaços desse módulo |

**Devolve:** as seções com os espaços, como no `get_community_context`.

**Peça assim:** *"Qual é o espaço de cursos?"* · *"Liste os espaços de eventos."*

## `open_link`

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

**Abrir link do app.** Recebe um link da sua comunidade (ou um id ou slug solto) e diz o que é, com id, título, espaço e um resumo. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `link` | texto | Sim | O endereço do app, um caminho como `/aprender/cursos/excel`, um id ou um slug |

Entende os endereços do app: espaço (`/seção/espaço`), post, evento, curso, certificado (de dentro do espaço ou da página pública de verificação), chamada de trabalhos e proposta (`?proposal=`), plano (`/pricing/…`) e assinatura (`/billing?subscription=…`), inclusive os endereços antigos que o app redireciona.

**Peça assim:** *"O que é este link? https://suacomunidade.com.br/aprender/cursos/excel-do-zero"*

**Notas:** só funciona com links da comunidade conectada. Um link de outra comunidade volta *"Esse link é de outra comunidade"*, mesmo que você administre as duas: conecte a outra em separado.

## `create_section`

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

**Criar seção.** Cria uma seção do menu, como *Aprender* ou *Comunidade*. Os espaços moram dentro das seções. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `title` | texto, até 255 | Sim | O nome no menu |
| `description` | texto simples | Não | Sem formatação: marcas de Markdown são tiradas |
| `visibility` | `public`, `members`, `plan`, `private` | Não | Quem vê a seção. Ver [Visibilidade e acesso](/conceitos/visibilidade-e-acesso) |

**Devolve:** a seção criada, com o id que `create_space` pede.

**Peça assim:** *"Crie uma seção chamada Aprender, visível só para membros."*

## `create_space`

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

**Criar space.** Cria um espaço numa seção, com o módulo que define o que ele é. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `section_id` | id | Sim | De `get_community_context` ou `create_section` |
| `title` | texto, até 255 | Sim | |
| `module` | `feed`, `content`, `courses`, `events`, `storefront`, `gallery`, `ranking`, `url`, `certificates`, `call4papers` | Sim | Feed, Conteúdo, Cursos, Eventos, Loja, Galeria, Ranking, Link, Certificados ou Chamada. Ver [Módulos](/conceitos/modulos) |
| `external_url` | endereço web | Não | Só no módulo `url`: o endereço que o espaço abre |
| `icon` | um dos ícones da lista | Não | O ícone do espaço. Veja [Ícones](#icones). Sem ele, a Memberfy escolhe um pelo título e pelo módulo |
| `description` | texto simples | Não | Sem formatação: marcas de Markdown são tiradas |
| `visibility` | `public`, `members`, `plan`, `private` | Não | |

**Devolve:** o espaço criado, com o id e o ícone.

**Peça assim:** *"Crie um espaço de Feed chamado Avisos na seção Comunidade, com o ícone de megafone."*

**Notas:** para um curso ou um evento completo, `create_course` e `create_event` criam o espaço junto. Num espaço de Chamada, o próximo passo sugerido é abrir a primeira chamada ([`create_call_for_papers`](/mcp/ferramentas-chamada#create-call-for-papers)). Espaços não têm imagem de capa.

## `update_space`

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

**Editar space.** Muda o nome, a descrição, o ícone ou a visibilidade de um espaço que já existe, ou o move para outra seção. Só o que for enviado muda. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space_id` | id | Sim | De `list_spaces` |
| `title` | texto, até 255 | Não | |
| `description` | texto simples | Não | Sem formatação: marcas de Markdown são tiradas |
| `icon` | um dos ícones da lista | Não | O ícone do espaço. Veja [Ícones](#icones). Sem ele, a Memberfy escolhe um pelo título e pelo módulo |
| `visibility` | `public`, `members`, `plan`, `private` | Não | Para o espaço privado com grupos, produtos ou planos, use [`update_space_access`](#update-space-access) |
| `section_id` | id | Não | Move o espaço para esta seção |

**Devolve:** o espaço atualizado.

**Peça assim:** *"Troque o ícone do espaço Vagas por uma maleta."* · *"Dê um ícone diferente a cada espaço da seção Aprender, de acordo com o tema."*

## `update_section`

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

**Editar seção.** Renomeia uma seção do menu, muda a descrição ou o ícone, ou a torna a seção inicial. Só o que for enviado muda. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `section` | id, endereço ou nome | Sim | De `get_community_context` |
| `title` | texto, até 255 | Não | |
| `description` | texto simples | Não | Sem formatação: marcas de Markdown são tiradas |
| `icon` | texto | Não | |
| `is_home` | sim ou não | Não | A seção que abre primeiro |

**Peça assim:** *"Renomeie a seção Aprender para Cursos e faça dela a seção inicial."*

**Notas:** quem vê a seção muda com [`update_space_access`](#update-space-access).

## `reorder_sections`

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

**Reordenar seções.** Põe as seções do menu numa nova ordem, de cima para baixo. As que ficarem de fora mantêm a ordem, depois destas. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `section_ids` | lista de ids | Sim | De `get_community_context`, na ordem nova |

**Peça assim:** *"Ponha a seção Eventos logo depois de Comunidade."*

## `reorder_spaces`

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

**Reordenar spaces.** Põe os espaços de uma seção numa nova ordem. Os que ficarem de fora mantêm a ordem, depois destes. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `section` | id, endereço ou nome | Sim | A seção |
| `space_ids` | lista de ids | Sim | De `list_spaces`, na ordem nova |

**Peça assim:** *"Na seção Aprender, deixe o espaço Excel do Zero em primeiro."*

**Notas:** para levar um espaço para outra seção, use [`update_space`](#update-space) com `section_id`.

## `update_space_access`

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

**Alterar quem vê o space.** Define quem vê um espaço ou uma seção inteira e, num espaço, quem pode postar. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` ou `section` | id, link, endereço ou nome | Um dos dois | O espaço ou a seção |
| `visibility` | `public`, `members`, `plan`, `private` | Não | Público, membros, qualquer assinatura ativa, ou privado |
| `group_ids` | lista de ids | Não | No privado: os grupos que entram (de `list_groups`) |
| `product_ids` | lista de ids | Não | No privado: os produtos cuja compra libera (de `list_products`) |
| `plan_ids` | lista de ids | Não | No privado: os planos cuja assinatura libera (de `list_plans`) |
| `can_create` | `anyone`, `staff`, `admins` | Não | Só espaço: **Qualquer um**, **Equipe** ou **Admins** podem postar |

**Devolve:** o espaço ou a seção atualizados.

**Peça assim:** *"Deixe o espaço Excel do Zero visível só para quem comprou o produto do curso ou assina o plano Aluno."*

**Notas:** os grupos, produtos e planos enviados substituem os que havia; basta um deles para a pessoa entrar. Um espaço nunca fica mais aberto do que a seção dele. Muda quem vê o quê na hora: peça para o assistente mostrar antes o que vai mudar, se quiser conferir. Ver [Visibilidade e acesso](/conceitos/visibilidade-e-acesso).

## `delete_section`

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

**Excluir seção.** Exclui uma seção do menu e os espaços que estão nela. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `section` | id, endereço ou nome | Sim | |

**Devolve:** na primeira chamada, a seção e a lista dos espaços que vão junto, e o código de confirmação.

## `delete_space`

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

**Excluir space.** Exclui um espaço e o que ele guarda do menu. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id, link, endereço ou nome | Sim | |

**Devolve:** na primeira chamada, o espaço, o módulo e a seção, e o código de confirmação.

## `get_community_settings`

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

**Ver configurações da comunidade.** As configurações da comunidade como estão. *Papel mínimo: administrador.*

Parâmetros: nenhum.

**Devolve:** o nome, a descrição, as cores (primária e secundária em hex, e a escala completa), o logo, o favicon, a imagem de compartilhamento, o SEO, as regras de entrada (cadastro aberto, modelo de cadastro, visitantes), a moderação e o ranking. Nada de segredo, como integrações ou DNS.

**Peça assim:** *"Quais são as cores e o SEO da comunidade hoje?"*

## `update_community_settings`

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

**Alterar configurações da comunidade.** Muda as configurações; só o que for enviado muda. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `name`, `description` | texto | Não | O nome e a descrição da comunidade |
| `primary_color`, `secondary_color` | cor em hex (`#RRGGBB`) | Não | A escala inteira, de 50 a 950, é gerada a partir delas. Ver [Cores](/configuracoes/cores) |
| `reset_colors` | sim ou não | Não | Volta às cores padrão do produto |
| `mobile_bar_color` | cor em hex | Não | A cor da barra do navegador no celular |
| `seo_title`, `seo_description` | texto | Não | Ver [Imagens e SEO](/configuracoes/imagens-e-seo) |
| `signup_open` | sim ou não | Não | Qualquer pessoa pode se cadastrar |
| `signup_model` | `FREE`, `PAID` | Não | |
| `guest_access` | sim ou não | Não | Visitantes veem o que é público |
| `content_moderation` | sim ou não | Não | |
| `global_ranking` | sim ou não | Não | |
| `language` | `pt-BR`, `pt-PT`, `en-US`, `es-ES`, `es-MX`, `es-AR`, `it-IT`, `de-DE`, `de-AT`, `de-CH` | Não | O idioma da comunidade: o dos e-mails e o de quem ainda não escolheu um idioma. Ver [Idiomas](/configuracoes/idiomas) |
| `linkedin_id` | número | Não | O ID da página da comunidade no LinkedIn, para os certificados |
| `logo_url` ou `logo_base64` | link ou arquivo | Não | O logo |
| `favicon_url` ou `favicon_base64` | link ou arquivo | Não | O favicon |
| `share_image_url` ou `share_image_base64` | link ou arquivo | Não | A imagem que aparece quando alguém compartilha o link |

**Devolve:** as configurações aplicadas, com o **antes → depois** de cada campo.

**Peça assim:** *"Troque a cor primária para #4F46E5 e use este logo: https://…"*

**Notas:** tudo isso aparece para a comunidade inteira assim que a chamada roda; para desfazer, peça de novo com o valor antigo, que está no **antes → depois**. Domínio e integrações não se mudam por aqui. Ver [Configurações gerais](/configuracoes/configuracoes-gerais).

## `get_notification_settings`

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

**Ver avisos de venda.** Para onde vão os avisos da comunidade: o e-mail que recebe um aviso a cada venda. *Papel mínimo: administrador.*

Parâmetros: nenhum.

**Peça assim:** *"Quem recebe o aviso quando sai uma venda?"*

## `update_notification_settings`

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

**Alterar e-mail dos avisos de venda.** Define o e-mail que recebe um aviso a cada venda. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `sales_notification_email` | e-mail | Sim | Vazio (`""`) desliga os avisos |

**Peça assim:** *"Mande os avisos de venda para financeiro\@memberfy.net."*

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

## Ícones

Os espaços usam os mesmos ícones do seletor do painel. O assistente recebe a lista com o uso de cada um (em `get_community_context`, campo `available_icons`, e na descrição das ferramentas) e é instruído a escolher pelo tema, sem repetir sempre o mesmo. Se não escolher, a Memberfy escolhe pelo título (*Agenda de lives* ganha `calendar`, *Vagas* ganha `briefcase`) ou, sem pista no título, pelo módulo (Cursos ganha `book-open`, Galeria ganha `image`).

Alguns exemplos: `calendar` (eventos, agenda), `book-open` (cursos, aulas), `graduation-cap` (formação, mentoria), `megaphone` (avisos, anúncios), `message-square` (fórum, dúvidas), `briefcase` (carreira, vagas), `image` (galeria, fotos), `trophy` (ranking, desafios), `shopping-bag` (loja), `crown` (premium, VIP), `lock` (privado).

## `get_connection_diagnostics`

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

**Diagnóstico da conexão.** Diz se a lista de ferramentas que o assistente está usando está em dia. *Papel mínimo: administrador (proprietário ou administrador).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `connection_id` | id | Não | Sem ele, a conexão desta conversa |

**Devolve:** o assistente, quem autorizou e quando, a versão do servidor e a lista que a conexão receberia agora (o código da lista e quantas ferramentas), o que ela recebeu da última vez, a última chamada e a última tentativa de usar uma ferramenta que ela não tem, e `listUpToDate`. Com `listUpToDate` falso, o assistente está com a lista antiga: abra uma conversa nova ou reconecte o conector.

**Peça assim:** *"Uma chamada sua falhou. Sua lista de ferramentas da Memberfy está em dia?"*

## Relacionados

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