Gleam.br Wiki

🧠 GBR Gleam LSP Brain (`gbr_mcp_lsp_gleam`) | Governança

Especificação técnica e manual do componente gbr_mcp_lsp_gleam.

🧠 GBR Gleam LSP Brain (gbr_mcp_lsp_gleam)

Este sub-servidor MCP (Model Context Protocol) provê uma interface de análise estática e inteligência sintática conectando-se diretamente ao executável gleam lsp em background.

Ele atua como substituto direto em Gleam puro do antigo servidor Python GleamLspBrain.


🏛️ Arquitetura e Concorrência

Para uma descrição completa da topologia de atores OTP e como as mensagens são tratadas de forma não-bloqueante no BEAM, consulte o arquivo de arquitetura: * 🔗 *ARCH.md*


🎯 Por Que Existe?

  • *Análise em Tempo Real*: Expõe dados de tipo, localização de definição, documentação em markdown e referências direto da engine oficial do compilador Gleam.
  • *Auto-Geração de Decodificadores*: Automatiza a criação de decodificadores tipados seguros (gleam/dynamic/decode) para tipos customizados através de comandos de workspace.
  • *Concorrência Segura*: Implementa um cliente JSON-RPC resiliente no BEAM que suporta leitura assíncrona baseada em buffers e sincronização de eventos.

⚙️ Ferramentas Exportadas

Este servidor MCP expõe as seguintes ferramentas via stdio:

  • 📡 **lsp_status**: Retorna o estado do handshake de inicialização com o gleam lsp.
  • 💬 **lsp_hover**: Consulta e renderiza informações de tipo e documentação de um símbolo sob a posição de cursor.
  • 📍 **lsp_goto_definition**: Encontra a localização exata de definição do símbolo (arquivo e linha).
  • 🌲 **lsp_document_symbols**: Mapeia a árvore de símbolos (funções, tipos, classes) presentes em um arquivo.
  • 🛡️ **lsp_get_diagnostics**: Retorna os erros e avisos de compilação ativos gerados pelo LSP.
  • 🔗 **lsp_find_references**: Localiza todos os arquivos e linhas que referenciam o símbolo selecionado.
  • 🧙 **lsp_generate_decoder**: Gera automaticamente a estrutura completa de decodificador para um Custom Type informado.

🚀 Como Executar Localmente

Em Desenvolvimento: bash

Navegue até a pasta do projeto cd apps/gbrmcplsp_gleam

Inicie o servidor MCP via stdio gleam run


📦 Distribuição Otimizada com escript (Gleam v1.16+)

Para máxima eficiência, o servidor MCP pode ser empacotado como um executável standalone do Erlang (escript), acelerando drasticamente o tempo de boot:

  1. *Compilar e Exportar o escript*: bash gleam export escript

  2. *Localização do Executável*: O executável final standalone do Erlang é gerado em: build/erlang-escript/gbr_mcp_lsp_gleam

  3. *Como Executar o escript gerado*: Você pode rodar o executável diretamente usando o interpretador do Erlang no sistema operacional: bash escript ./build/erlang-escript/gbr_mcp_lsp_gleam