Genexus MCP

Servidor MCP do GeneXus 18 para Claude, Cursor e agentes de IA — leia, edite, analise objetos KB (transações, painéis web, procedimentos, SDTs) através do Model Context Protocol.

Documentação

Servidor GeneXus MCP — GeneXus multi-versão para Claude, Cursor e Agentes de IA

npm version npm downloads License: MIT SafeSkill 85/100 MCP Badge

¿Hablás español? → Guía de inicio en español Fala português? → Guia de início em português Stuck? → Troubleshooting guide


GeneXus MCP Server permite que agentes de IA — Claude Desktop, Claude Code, Cursor, Antigravity e qualquer cliente compatível com MCP — leiam, editem, analisem e refaturem objetos dentro de uma Knowledge Base suportada pelo SDK nativo selecionado ou pelo driver de compatibilidade legado. Os caminhos do SDK nativo funcionam com o SDK GeneXus real e os caminhos legados usam adaptadores explícitos de reflection/COM; nenhum dos caminhos depende de uma cópia analisada da KB.

Na prática: você aponta o MCP para sua KB e então pergunta ao seu assistente de IA coisas como "liste todas as transações com o atributo CustomerId", "adicione uma regra à transação Order que valide o total" ou "refatore este procedimento para usar o novo SDT" — e ele faz.


Suporte a GeneXus multi-versão

A mesma distribuição do MCP suporta as versões principais oficiais do SDK nativo listadas no documento de compatibilidade gerado. Ela também inclui compatibilidade básica, de melhor esforço, para as versões legadas listadas ali, por meio de drivers separados; esse caminho não é equivalente ao suporte completo do SDK nativo. Um processo pode rotear cada KB declarada para seu próprio SDK/driver; --gx permanece como o padrão global conveniente para uma configuração de versão única. Os comandos abaixo são exemplos de como alternar a configuração existente:

npx genexus-mcp@latest init --kb "C:\KBs\KBTeste17" --gx "C:\Program Files (x86)\GeneXus\GeneXus17Trial"
# To switch this MCP configuration to GX18:
npx genexus-mcp@latest init --kb "C:\KBs\MyGX18KB" --gx "C:\Program Files (x86)\GeneXus\GeneXus18"

Após alternar o SDK ou a KB, reinicie completamente o cliente de IA para que ele recarregue o processo MCP e seus esquemas de ferramentas. Se GX17 e GX18 precisarem ser executados simultaneamente, use configurações e portas MCP separadas.

KBs clássicas GX8/GX9 podem ser abertas sem alterar o padrão global GX18 ao declarar seu driver e instalação por KB (o Gateway aceita tanto a forma de lista quanto a de catálogo de objetos):

{
  "Environment": {
    "KBs": {
      "SECT80": {
        "Path": "D:\\GX80\\SECT",
        "Driver": "com-gxpublic",
        "InstallationPath": "C:\\Program Files (x86)\\ARTech\\GeneXus\\gxw80",
        "Major": "8"
      }
    }
  }
}

A solicitação única equivalente é genexus_kb action=open com path, alias, driver: "com-gxpublic", installationPath e major: "8". O GX8 usa o provedor GXPublic 32-bit registrado; o ProgID .4 documentado e o registro de compatibilidade GXPubGXX.GXPublic(.5) instalado são reconhecidos. As raízes de KB DAT clássicas são identificadas por seus marcadores legados (DATA001, GXSPC001, kbdata, ATTRIBUT.DAT ou ATT.XPW).

init também lê a versão principal .gxw da KB e os metadados GeneXus.exe selecionados. Ele aborta antes de gravar config.json quando as versões principais entram em conflito ou uma seleção automática não pode ser verificada. genexus-mcp doctor expõe o mesmo resultado que a verificação kb_sdk_compatibility. Para um fixture descartável, o harness de KB ao vivo inclui uma matriz orientada por catálogo que verifica cada versão principal suportada contra um artefato publicado.

O Gateway relata o SDK detectado por meio de genexus_whoami:

  • geneXus.supportedMajors: versões principais do SDK nativo explicitamente validadas no catálogo de versões
  • geneXus.legacyMajors: versões principais legadas catalogadas tratadas por seus drivers de compatibilidade
  • geneXus.sdkCompatibility.supportLevel: native-sdk ou basic-legacy para a instalação detectada
  • geneXus.matchedMajor: a versão principal detectada para a instalação configurada
  • geneXus.versionMatches: se a instalação detectada está nesse catálogo
  • geneXus.supportedMajor: mantido como o alias legado de versão única para a primária do catálogo

O Worker isola membros do SDK sensíveis à versão por trás de adaptadores de compatibilidade. Por exemplo, métodos auxiliares do Design System que diferem entre versões principais do SDK são substituídos campo a campo pela análise das partes nativas Tokens e Styles quando necessário. Os nomes de ferramentas, argumentos e formatos de configuração do cliente MCP existentes não mudam.

Versões principais do SDK suportadas: GeneXus 16, GeneXus 17, GeneXus 18 (SDK nativo). Compatibilidade legada básica: GeneXus Evolution 3, GeneXus Evolution 2, GeneXus Evolution 1, GeneXus 15, GeneXus 9.0, GeneXus 8.0 via com-gxpublic e dotnet-reflection (não a compilação do SDK nativo). SDK primário: GeneXus 18. Fonte da verdade: config/gx-versions.json.

Para adicionar outra versão principal do SDK nativo no futuro, adicione-a ao catálogo explícito supportedMajors somente após compilar o Worker com esse SDK e passar nos testes focados mais um smoke test de KB ao vivo. Isso evita que o servidor reivindique compatibilidade com o SDK nativo com base apenas em uma string de versão.

Compatibilidade legada básica (não é suporte ao SDK nativo)

Cada versão legada atualmente declarada em legacyMajors usa um driver de melhor esforço em vez da compilação do SDK nativo:

  • GeneXus Evolution 1 (10.1), Evolution 2 (10.2), Evolution 3 (10.3) e GeneXus 15: Tratados via reflection em tempo de execução (dotnet-reflection), adaptando-se dinamicamente a tipos ausentes ou diferenças estruturais (como KBs sem módulos e sem QualifiedName).
  • GeneXus 8.0 e GeneXus 9.0: Tratados por meio da superfície clássica GXPublic (com-gxpublic), detectados a partir de gxw32.exe/gx.exe/gxdl32.dll e Knowledge Bases clássicas .gxi. GXPublic é uma superfície OLE DB orientada a metadados; esse caminho é intencionalmente limitado a operações básicas de metadados/núcleo e não reivindica paridade de edição de fonte do SDK nativo.
  • Degradação graciosa: Ferramentas modernas que exigem recursos introduzidos em versões mais recentes do GeneXus (como genexus_api, genexus_gam ou genexus_module) retornam erros estruturados UNSUPPORTED_IN_GENEXUS_VERSION indicando a versão mínima necessária em vez de falhar de forma não graciosa.

Esse caminho legado é destinado a operações básicas do núcleo onde implementado; ele não reivindica a mesma paridade de recursos que o contrato do SDK nativo para GeneXus 16, 17 e 18.


Compartilhando um Worker entre clientes MCP

O Gateway e o Worker do SDK GeneXus têm responsabilidades diferentes. Por padrão, Server.WorkerSharingMode é "isolated": cada Gateway possui seu próprio processo Worker. Mantenha esse modo quando um agente precisar intencionalmente de vários Workers independentes.

Quando dois ou mais clientes MCP independentes precisam trabalhar na mesma KB física, defina WorkerSharingMode como "shared-host" em uma configuração stdio-isolated:

{
  "ConfigSchemaVersion": 2,
  "GatewayMode": "stdio-isolated",
  "GeneXus": {
    "InstallationPath": "C:\\Program Files (x86)\\GeneXus\\GeneXus18",
    "WorkerExecutable": "C:\\path\\to\\GxMcp.Worker.exe"
  },
  "Server": {
    "HttpPort": 0,
    "McpStdio": true,
    "WorkerSharingMode": "shared-host"
  },
  "Environment": {
    "ResolutionPolicy": "strict",
    "KBs": [
      { "alias": "main", "path": "C:\\KBs\\YourKB" }
    ]
  }
}

shared-host compartilha apenas o Worker do SDK de propriedade do broker por KB por meio de anexos limitados a named pipes locais. Os Gateways permanecem independentes: sessões MCP, autorização, seleção de KB, caches, rastreamento de solicitações, cancelamento, progresso, notificações e artefatos gerados não cruzam o limite do processo. O compartilhamento é aceito somente quando a KB física, o executável do Worker, a instalação do GeneXus, o driver e a versão principal alvo são compatíveis; uma incompatibilidade falha de forma fechada em vez de anexar ao processo de SDK errado.

As gravações carregam um proprietário local do Gateway no Worker. O mesmo objeto/parte não pode ser gravado simultaneamente por dois clientes anexados, enquanto gravações em objetos distintos podem prosseguir independentemente pelo limite compartilhado do SDK. O Worker em si permanece um único processo STA, portanto, chamadas que alcançam o mesmo SDK ainda são serializadas conforme exigido pelo GeneXus.

Para um anexo compartilhado saudável, genexus_whoami e genexus_doctor relatam o modo, a chave de identidade, o pipe, os PIDs do host/Worker, a geração, o ID do anexo, o estado da conexão e o diagnóstico mais recente de inicialização/falha. Quando algo falha, inspecione worker.diagnostics e workerHealth antes de reiniciar ou excluir o estado local; esses campos distinguem configuração/identidade, mutex ou registro, pipe/handshake, inicialização, saída/reinicialização do filho, TTL e falhas de quadro.

Consulte Propriedade do Worker para o contrato de ciclo de vida e o benchmark de Worker compartilhado para os resultados medidos de smoke test com dois clientes e backpressure.


O que você pode fazer com ele

Um mapa rápido do que o agente pode fazer contra sua KB real por meio das 50 ferramentas (detalhes em Superfície de Ferramentas):

ÁreaO que o agente pode fazer
🔎 ExplorarPesquisar e listar objetos, ler qualquer parte (fonte, regras, eventos, estrutura, documentação, XML de padrão), inspecionar metadados e chamadores, pesquisar fonte com regex, visualizar o relatório de navegação
✏️ Editar códigoEditar qualquer parte do objeto (modos full/patch/ops), CRUD de variáveis, formatar, criar e excluir objetos, gerar um Procedure a partir de um comando curl, editar + reconstruir chamadores em uma única operação
🗄️ Criar o modelo de dadosEstrutura de transação (DSL), índices únicos/não únicos (criar e remover), fórmulas e subtipos de atributos, atributos de Descrição/Imagem de nível, valores de enumeração de Domain, pastas e módulos, relações tabela↔transação e detecção de atributos redundantes
🧩 Criar outros objetosMétodos e propriedades de External Object, opções de Menu, objetos de API REST, padrões WorkWithPlus / WorkWith, referências tipadas de gerador .NET
🎨 UI e WorkWithPlusLeitura/gravação completa do XML de padrão (controles, ações, grids, ordens, grupos), classes e estilos de tema, edições nativas de WebForm/layout, catálogo de controles e tokens/classes/imagens do design system, verificação com navegador headless
🔬 AnalisarAnálise de impacto/dependência, métricas de complexidade e código, nomenclatura, explicar-o-que-isso-faz, atividade/atualização da KB, pré-visualização de impacto de reorg/DDL, varredura de segurança nativa, verificação de desvio de esquema
🛠️ Compilar, testar e implantarCompilar (completa ou rápida compile_check), validar, reorg, indexar, executar testes nativos GXtest, implantar o aplicativo (alvos + implantação)
🔀 Refatorar e compararRenomear em toda a KB, extrair procedimento, comparar e mesclar objetos (paridade com a IDE)
🌿 Versionamento, transferência e equipesVersões/ramos de modelo da KB, exportação/importação XPZ real (ciente de dependências), sincronização GXserver (Team Development) + pipelines de CI, histórico estilo git, trabalho paralelo em múltiplas KBs
🔐 SegurançaProvisionamento de GAM / segurança integrada, auditoria de segurança da KB + Scanner de Segurança nativo

O suporte ao SDK nativo funciona por meio do SDK GeneXus nativo — os mesmos caminhos de código que a IDE usa — portanto, as edições são reais e validadas, não ajustes de texto em arquivos de KB. O suporte legado usa o driver de reflection ou COM listado no catálogo e degrada ferramentas modernas não suportadas de forma explícita.


Pré-requisitos

Antes de começar, certifique-se de ter:

  • ✅ Windows (GeneXus é exclusivo para Windows)
  • ✅ Uma instalação suportada do GeneXus instalada localmente: GeneXus 16, 17 ou 18 para suporte ao SDK nativo, ou uma instalação legada catalogada para compatibilidade básica (consulte docs/generated/supported-versions.md; passe outro caminho de instalação explicitamente quando necessário)
  • ✅ GeneXus 18 instalado localmente para o caminho primário do SDK nativo; outras versões nativas e legadas catalogadas também são suportadas de acordo com seu driver listado
  • ✅ Uma Knowledge Base criada com uma versão principal nativa ou legada suportada do GeneXus e aberta pelo menos uma vez na IDE (para que seja inicializada)
  • ✅ Node.js 22+ — verifique com node --version em um terminal; instale em nodejs.org se estiver ausente
  • ✅ Um cliente de IA compatível com MCP — Claude Desktop, Claude Code, Cursor, Antigravity, etc.

Você não precisa clonar este repositório ou instalar nada globalmente — npx cuida disso.

Nunca usou um terminal antes? Pressione Win+R, digite powershell e pressione Enter. Esse é o seu terminal.


Início rápido (3 etapas, ~5 minutos)

Encontre seus dois caminhos primeiro

Antes de executar o instalador, anote o seguinte:

  1. Pasta de instalação do GeneXus — onde GeneXus.exe está localizado. Geralmente C:\Program Files (x86)\GeneXus\GeneXus18.
  2. Sua pasta da KB — a pasta raiz da sua Knowledge Base (contém o arquivo .gx e subpastas como Model/, WebSpa/).

Não sabe onde sua KB está? Abra-a no GeneXus e verifique a barra de título, ou procure em File → Recent.

Etapa 1 — Execute o instalador

Abra um terminal e execute, substituindo os caminhos pela pasta da sua KB e pela sua instalação do GeneXus:

npx genexus-mcp@latest init --kb "C:\KBs\YourKB" --gx "C:\Program Files (x86)\GeneXus\GeneXus18"

Prefere o assistente? Execute npx genexus-mcp@latest init --interactive e responda às perguntas.

O que você verá (leva ~30 segundos na primeira vez, mais rápido nas execuções seguintes):

  1. npx baixa o pacote.
  2. O instalador verifica se os caminhos existem e se o GeneXus está presente.
  3. Ele detecta automaticamente quais clientes de IA você tem instalados e adiciona a configuração do MCP em cada um.
  4. Imprime um trecho JSON no final — guarde-o caso precise configurar um cliente manualmente.
  5. Termina com 🎉 You are all set!.

No Windows, o Antigravity é registrado com o executável do gateway incluído no pacote npm atual quando esse artefato está disponível, então ele pula a cadeia de inicialização via npx em cada handshake do MCP. Esse caminho acompanha o pacote no cache do npx; após uma atualização, execute npx genexus-mcp@latest clients add --clients antigravity novamente se genexus-mcp clients relatar um launcher desatualizado. Outros clientes mantêm o launcher npx genexus-mcp@latest a menos que você use o instalador de caminho fixo abaixo.

Etapa 2 — Registre o MCP no seu cliente de IA

A Etapa 1 registra automaticamente todos os clientes suportados que detecta, incluindo Claude Desktop, Claude Code, Cursor, Antigravity, Gemini CLI, OpenCode, Codex CLI e VS Code. Se o seu não foi detectado, copie o trecho JSON da Etapa 1 para a configuração do MCP do seu cliente manualmente. Consulte o guia de configuração do cliente se não tiver certeza de onde esse arquivo fica.

Etapa 3 — Reinicie seu cliente de IA e teste

Esta parte pega a maioria das pessoas: feche completamente seu cliente de IA e reabra-o. Não apenas a janela — o processo inteiro.

  • Claude Desktop: clique com o botão direito no ícone da bandeja do sistema → Sair. Depois abra novamente. (Fechar a janela não é suficiente.)
  • Claude Code: encerre a sessão e inicie uma nova.
  • Cursor / Antigravity: feche todas as janelas e reabra.
  • OpenCode: saia completamente e reabra para que ele recarregue opencode.json / opencode.jsonc.
  • Gemini CLI / Codex CLI: inicie um novo processo ou sessão.

Depois cole este prompt:

"Usando o Genexus MCP, liste os primeiros 5 objetos na minha KB e mostre nome + tipo."

O que deve acontecer:

  • A IA invoca a ferramenta genexus_list_objects (algumas UIs mostram "chamando ferramenta…").
  • Alguns segundos depois, você recebe uma lista de objetos da sua KB.

Se você receber uma lista de volta — pronto. Vá para O que posso perguntar à IA? para ideias.

Se a IA disser que não tem uma ferramenta do GeneXus, ou se nada acontecer, vá para Solução de problemas — a maioria dos problemas está coberta lá.


🤖 Deixe sua IA instalar para você

Se preferir não executar nada no terminal, cole isto no chat da sua IA:

Por favor, configure o servidor MCP do GeneXus. Execute npx genexus-mcp@latest init --kb "<MY_KB_PATH>" --gx "<MY_GENEXUS_PATH>" no terminal. Se eu ainda não informei meu caminho do GeneXus e o caminho da KB, pergunte-me primeiro. Quando for bem-sucedido, leia o bloco JSON que ele imprimiu e adicione-o à configuração do MCP do meu cliente. Avise-me quando eu devo reiniciar o cliente para começar a usar as ferramentas do GeneXus.

Substitua os espaços reservados ou deixe a IA pedir por eles.


Instalação corporativa (caminho fixo, compatível com ASR)

Se sua máquina tiver Microsoft Defender ASR, SmartScreen ou outra política de endpoint bloqueando binários não assinados, o fluxo padrão do npx é problemático — o npx armazena o pacote em cache em %LOCALAPPDATA%\npm-cache\_npx\<hash>\..., e o <hash> muda a cada versão, então a TI não pode incluir um caminho estável na lista de permissões sem um curinga sobre todo o cache do npm (o que é amplo demais).

Use o instalador corporativo. Ele extrai os binários para um diretório estável e registra os clientes de IA para iniciar o gateway diretamente de lá — o npx nunca está no caminho de execução.

# One-liner — installs latest release, registers AI clients
iex (irm https://raw.githubusercontent.com/lennix1337/Genexus18MCP/main/scripts/install.ps1)

# With explicit KB and GeneXus paths
$s = irm https://raw.githubusercontent.com/lennix1337/Genexus18MCP/main/scripts/install.ps1
& ([scriptblock]::Create($s)) -Kb "C:\KBs\MyKB" -Gx "C:\Program Files (x86)\GeneXus\GeneXus18"

Local de instalação:

  • Shell de administrador → C:\Tools\GenexusMCP\
  • Shell sem administrador → %LOCALAPPDATA%\Programs\GenexusMCP\

Caminhos para dar à TI para a lista de exclusão do ASR / Defender:

<InstallDir>\GxMcp.Gateway.exe
<InstallDir>\worker\GxMcp.Worker.exe

Execute o mesmo comando de uma linha novamente mais tarde para atualizar — ele detecta a versão instalada (version.txt no diretório de instalação) e baixa apenas se houver uma versão mais recente disponível. Use -Force para reinstalar a mesma versão, -Version v2.3.0 para fixar uma tag específica, -NoClient para pular o registro do cliente de IA. O Node.js 22+ deve estar instalado para o registro do cliente; sem ele, o script ainda extrai os binários, mas você precisará editar a configuração do cliente (claude_desktop_config.json etc.) manualmente.


O que posso perguntar à IA?

Uma vez instalado, aqui está o que é desbloqueado. Experimente estes como seus primeiros prompts:

Exploração

  • "Liste todos os objetos do tipo Procedure na KB."
  • "Mostre-me o código-fonte do procedure CalculateInvoiceTotal."
  • "Encontre todas as transações que referenciam o atributo CustomerId."

Edição

  • "Adicione uma regra à transação Order: error('Total must be positive') se Total < 0."
  • "Adicione um novo atributo CreatedAt do tipo DateTime à transação Customer."
  • "Renomeie a variável &qty para &quantity no procedure CreateOrder."

Criação de modelo de dados (sem ida e volta ao IDE)

  • "Torne CustomerEmail único na transação Customer." (cria um índice único)
  • "Transforme CustomerBalance em uma fórmula: sum(InvoiceAmount)."
  • "Adicione os valores de enumeração Active/Inactive/Pending ao domínio Status."
  • "Adicione uma propriedade apiKey e um método Connect(url) ao objeto externo PaymentGateway."
  • "Adicione uma opção de menu 'Customers' ao MainMenu que abra CustomerWW."

Edição de padrão WorkWithPlus (controle estrutural e de tema completo)

  • "Adicione uma aba tipada com variáveis, uma ação e tabelas responsivas aninhadas a um WebPanel WorkWithPlus."
  • "Em WorkWithPlusOrder, adicione um botão 'Duplicate' à visualização da transação junto com Salvar/Cancelar/Excluir."
  • "Agrupe os atributos da transação Customer em uma seção 'Contact Info' com a classe de tema GroupTelaResp."
  • "Na lista WorkWithPlusInvoice, adicione uma nova ordenação por InvoiceDate decrescente."
  • "Estilize o botão Salvar em WorkWithPlusOrder com buttonClass='btn ButtonGreen' e aplique BigTitle ao cabeçalho do formulário."
  • "Remova a ação Export da grade Selection do WorkWithPlusReport."
  • "Leia a parte Documentation da transação Customer e reescreva-a em markdown."

Análise

  • "Explique o que o procedure ProcessShipment faz." — genexus_analyze mode=explain é um envelope apenas de compatibilidade e retorna NotImplemented; use mode=summary, mode=context ou genexus_read para análise e código-fonte suportados.
  • "Qual SQL a consulta no WebPanel CustomerList gera?"
  • "Resuma a estrutura do módulo Sales."

Build e ciclo de vida

  • "Faça o build da KB e relate quaisquer erros."
  • "Execute os testes de unidade e mostre quais falharam."

O agente escolhe a ferramenta certa entre as 50 ferramentas que o MCP expõe (leitura, edição, refatoração, análise, build, criação de modelo de dados, automação de layout, DB/DDL, versionamento, segurança, pré-visualização de SQL, etc.). A lista completa de ferramentas está em Superfície de Ferramentas abaixo.


Clientes de IA suportados

Detectados e configurados automaticamente pelo instalador:

ClienteConfiguração automáticaNotas
Claude Desktop✅Reinicialização necessária após a instalação
Claude Code (CLI)✅Recarregar sessão
Cursor✅Reinicialização necessária
Antigravity✅Gateway empacotado direto; reinicialização necessária; detectado mesmo antes de sua configuração MCP existir
Gemini CLI✅—
OpenCode (CLI)✅Lê layouts MCP diretos e aninhados; reinicialização necessária
Codex CLI✅Escreve ~/.codex/config.toml
VS Code / VS Code Insiders✅MCP nativo (User/mcp.json); reinicialização necessária
OpenCode Desktop✅Compartilha opencode.jsonc com o OpenCode CLI; reinicialização necessária
Qualquer cliente MCPManualUse o trecho JSON impresso por init

Execute npx genexus-mcp clients a qualquer momento para ver quais agentes estão instalados, quais têm genexus registrado e se algum aponta para um executável de gateway desatualizado. Para (re)registrar específicos: npx genexus-mcp clients add --clients antigravity,vscode.

OpenCode Desktop

O OpenCode Desktop compartilha seu arquivo de configuração MCP (opencode.jsonc ou opencode.json) com o OpenCode CLI. Executar genexus-mcp init --write-clients ou genexus-mcp clients add --clients opencode-desktop registra automaticamente genexus18mcp na configuração compartilhada. Após o registro, reinicie completamente o OpenCode Desktop para que ele recarregue sua configuração MCP.


Solução de problemas

Primeiro passo para qualquer problema de "o agente não vê o GeneXus": npx genexus-mcp clients (está registrado? aponta para um executável de gateway que ainda existe?) e npx genexus-mcp doctor --mcp-smoke.

A maioria dos problemas de instalação se enquadra em algumas categorias — veja TROUBLESHOOTING.md para correções:

  • O instalador não encontra o GeneXus ou a KB
  • O cliente de IA não vê as ferramentas do GeneXus após reiniciar
  • Erros de "Worker failed to start" / .NET 4.8
  • Erros de build da KB / artefatos bloqueados
  • Porta 5000 já em uso
  • Permissões em %LOCALAPPDATA%\GenexusMCP\
  • Antigravity mostra apenas exit status 1 / 0xffffffff sem stderr útil

Quando um launcher stdio falha antes que o cliente possa reter o stderr, o wrapper escreve a última falha em %LOCALAPPDATA%\GenexusMCP\logs\last-stdio-error.txt. Ele contém o timestamp UTC, o código de saída e a cauda limitada do stderr. genexus-mcp doctor relata o mesmo caminho quando uma falha anterior está presente. Leia-o antes de alterar a instalação ou usar uma instalação npm global; se o launcher do Antigravity estiver desatualizado, registre-o novamente com npx genexus-mcp@latest clients add --clients antigravity.

Diagnosticando uma falha compartilhada do Worker

Se shared-host não anexar ou um Worker for reiniciado, execute genexus_whoami e genexus_doctor no cliente afetado e preserve o bloco estruturado worker.diagnostics/workerHealth. A evidência útil é o modo, identidade, PID do host/Worker, geração, estado de anexação, erro de conexão e diagnóstico de falha — não apenas o resumo final no_worker ou startup_failed. Não remova um arquivo de registro de worker compartilhado enquanto um host correspondente ainda estiver em execução; o broker é dono desse ciclo de vida e registros desatualizados são recuperados após a validação de PID/hora de início.

Ainda travado? Abra um problema com a saída de npx genexus-mcp doctor --mcp-smoke e os campos de diagnóstico limitados acima. Redija credenciais, tokens, strings de conexão e outros valores sensíveis.


Superfície de Ferramentas

O worker expõe 50 ferramentas ao roteador MCP, agrupadas por capacidade abaixo. A maioria são guarda-chuvas com um action (ex.: genexus_db action=sql_ddl); os esquemas detalhados estão em src/GxMcp.Gateway/tool_definitions.json.

Orientação e saúde

  • genexus_whoami — contexto da KB, versão, saúde do worker/índice/banco de dados, verificação de auto-atualização, dicas de próximos passos
  • genexus_doctor — verificação de saúde de conexão + instalação + cache
  • genexus_recipe — playbooks nomeados / macros de auto-extensão
  • genexus_telemetry — observabilidade (métricas, latência, erros)

Busca e descoberta

  • genexus_query — busca de objetos (prefixos name:, type:, usedby:, parent:, …)
  • genexus_list_objects — listagem paginada de objetos com agregados
  • genexus_read — leia qualquer parte de um objeto (código-fonte, estrutura, regras, eventos, docs, XML de padrão, …)
  • genexus_inspect — instantâneo de objeto em uma única chamada (metadados, variáveis, estrutura, assinatura, chamadores)
  • genexus_search_source — busca regex/semântica no código-fonte de Procedure/DataProvider/WebPanel/Transaction
  • genexus_navigation — relatório "View Navigation" do IDE Para um Data Selector do GeneXus 18 U16, genexus_read type=DataSelector também aceita parameters, conditions, orders, definedBy, baseTransaction, baseTable e structure. Ele preserva a ordem do SDK e expressões completas, retorna um versionToken e não executa nenhuma operação de ciclo de vida. O SDK público do U16 não expõe uma coleção de atributos projetados nem joins resolvidos para esse tipo de objeto, então projection e joins são retornados em unsupportedParts com o motivo técnico em vez de arrays vazios enganosos. Objetos base e índices declarados são relatados apenas quando podem ser resolvidos sem Specify. structure.expression é identificado como um semanticProjection: ele combina os elementos públicos tipados do SDK e nunca expõe os nomes de tipos de coleção internos produzidos por DataSelectorStructurePart.ToString() no U16.

Edição

  • genexus_edit — edita qualquer parte do objeto; modos full / patch / ops
  • genexus_edit_and_build — edição + especificação opcional + reconstrução de chamadores em uma única chamada, com rollback compensatório em caso de falha de validação
  • genexus_edit_form — edições semânticas de WebForm
  • genexus_variable — CRUD da parte de Variáveis
  • genexus_create — guarda-chuva de criação (Transaction, Procedure, Domain, SDT, API, Folder, Module, curl_procedure = gerar um Procedure a partir de um comando curl, …); object_atomic cria definition + variáveis + Rules + propriedades + Source com preflight/read-back/rollback
  • genexus_data_view — cria/inspeciona/atualiza/exclui atomicamente um Business Component Transaction somente-raiz mapeado por meio de uma Data View nativa para uma tabela física existente; valida atributos/chaves primeiro, suporta versões otimistas e dry-runs verdadeiros sem mutação, exige confirm=true para exclusão destrutiva e relata o estado de commit/verificação separadamente
  • genexus_delete_object — exclui um objeto pela identidade nativa do SDK; use dryRun=true para inspecionar referências recebidas antes de confirm=true
  • genexus_format — formata um trecho de código com as regras do worker

Modelo de dados e criação de estrutura

  • genexus_structure — leitura/escrita do modelo de dados: get_visual/get_logic, update_visual (DSL de estrutura), create_index/drop_index (índices únicos/não únicos — a forma GeneXus de impor unicidade), set_attribute (Formula, subtipo, Title/ColumnTitle, IsCollection, basedOnDomain), set_level (atributo de nível Description/Image), set_domain (editar valores de enum / tipo base de um Domain existente). Para create_index, dryRun:true valida e retorna o diff projetado sem salvar; use o versionToken de get_indexes como baseVersion para proteção de concorrência. Uma escrita real é relida e verificada exatamente, com rollback de snapshot em caso de falha. Ela nunca dispara Specify, Generate, Build, Rebuild, compilação, reorganização, execução ou testes.
  • genexus_authoring — membros de tipos de objeto que a DSL de estrutura não cobre: add_external_method/add_external_property (External Objects), add_menu_option (Menus)
  • genexus_properties — leitura/atualização de propriedades no nível do objeto
  • genexus_generator_reference — lista/pré-visualiza/adiciona/remove referências nativas do gerador .NET com validação de assembly gerenciado, concorrência otimista, verificação de salvar/reler e rollback exato de snapshot completo; nunca executa ações de ciclo de vida implicitamente

Refatoração, padrões e comparação

  • genexus_refactor — renomear, extrair procedure, conjunto de condições WWP
  • genexus_apply_pattern — aplica um padrão GeneXus (WorkWith, WorkWithPlus, …); mode=actions gerencia ações de grid tipadas do WorkWithPlus e Action Groups
  • genexus_wwp — edição tipada do WorkWithPlus: Action Groups, add_grid_attribute nativo atômico, além de add_tab, move_tab e remove_tab para abas do WebPanel e filhos tipados
  • genexus_compare — paridade com "Compare Objects" da IDE (IComparerService)
  • genexus_merge — mesclagem de objetos em 2 ou 3 vias (IMergeService)

Análise, documentação e API

  • genexus_analyze — análise semântica entre objetos (impacto, dependências, complexidade, nomenclatura, code_metrics, resumo, kb_stats = atividade/atualidade da KB, table_relations = relações tabela↔transação + atributos redundantes, …). mode=explain é somente para compatibilidade: preserva o envelope de resposta legado e retorna NotImplemented; use mode=summary, mode=context ou genexus_read em vez disso.
  • genexus_doc — gera wiki / grafos de dependência / relatórios de saúde
  • genexus_api — inspeciona endpoints REST expostos por procedures HTTP
  • genexus_security — audita a segurança da KB: audit_gam (propriedades de env/GAM), scan_secrets (regex sobre o Source), scan_native (o Security Scanner do próprio SDK, ISecurityScannerService)

Ciclo de vida, build, teste e banco de dados

  • genexus_lifecycle — build direcionado (incl. compile_check), build_all global incremental, rebuild global forçado, validate, index, reorg e consulta de status
  • genexus_test — executa testes nativos GXtest
  • genexus_db — guarda-chuva de banco de dados: schema-drift, sql_ddl/sql_navigation, consultor estático de índices, sample_data, consulta/inserção/atualização tipada de registros de Transaction com dry-run, versionamento otimista, releitura e rollback verificado, introspecção de tipos Domain/SDT, importação de tradução, reorg_impact e reorg_preview não mutante com DDL exato somente a partir de um artefato atual de Impact Analysis
  • genexus_deploy — implanta aplicação (IDeploymentService): list_targets (leitura) / deploy (destrutivo, confirm=true)
  • genexus_run_object / genexus_browser — resolve URL de runtime e verificação com navegador headless

Layout nativo / UI

  • genexus_layout — operações de layout/WebForm do SDK (get_tree, find_controls, set_property, add_printblock, get_preview, list_controls = catálogo de controles/classes de tema, design_system = tokens/classes/imagens DSO, …)

Pool de KBs, versionamento e desenvolvimento em equipe

  • genexus_kb — pool de múltiplas KBs (list/open/close/set_default)
  • genexus_module — Module Manager (IModuleManagerService)
  • genexus_kb_version — gerenciamento de versão/ramo do modelo (Create/Activate/Revert)
  • genexus_versioning — guarda-chuva de versionamento (histórico estilo git sobre a KB)
  • genexus_gxserver — sincronização GXserver / Team Development, incl. pipeline_* (pipelines de CI via IContinuousIntegrationService)
  • genexus_transfer — exportação/importação real de XPZ (IKnowledgeManagerService, ciente de dependências): export / inspect / import
  • genexus_memory — armazenamento de fatos por KB para o agente

Provisionamento de segurança, IO e meta

  • genexus_gam — provisionamento de GAM / segurança integrada (IIntegratedSecurityService)
  • genexus_io — assets, troca de texto de partes, screenshots, OCR
  • genexus_sdk_probe — despeja a superfície do SDK ao vivo (tipos/métodos/propriedades) para descoberta de capacidades
  • genexus_worker_reload — troca a quente do worker sem reiniciar o cliente

Multi-KB (v2.3.0+): toda ferramenta não-meta aceita um argumento opcional kb (alias ou caminho absoluto). O gateway pode manter até Server.MaxOpenKbs (padrão 3) KBs abertas ao mesmo tempo, cada uma em seu próprio processo Worker — chamadas para KBs diferentes são executadas verdadeiramente em paralelo. Consulte Advanced Configuration para o esquema KBs[].

WorkWithPlus e temas (via genexus_read / genexus_edit)

  • Leitura/escrita completa do XML de PatternInstance / PatternVirtual: containers (<table>, grupos), controles (<textBlock>, <attribute>, <gridAttribute>, <filterAttribute>, <errorViewer>), ações (<standardAction>, <userAction>), grids, ordens, regras, blocos de eventos. As visões Transaction e Selection são endereçáveis independentemente.
  • Documentation (markdown) e Help (HTML) são alvos de escrita de primeira classe.
  • Aplique valores reais de ThemeClass (themeClass, buttonClass, groupThemeClass, …); descubra-os com genexus_list_objects --typeFilter ThemeClass.

Modos de edição (genexus_edit): full (substituição de parte inteira, padrão), patch (Replace/Insert_After/Append sobre uma âncora de contexto — funciona em código-fonte E XML de padrão), ops (operações semânticas tipadas como set_attribute, add_rule para partes com source).

Reconciliação automática de XML de padrão: o WorkWithPlus codifica a ordem de renderização da IDE em um atributo childrenOrderedList por pai. O MCP agora reconstrói (e cria se ausente) cada lista a partir da ordem real dos filhos no XML a cada escrita — os chamadores apenas descrevem onde um elemento vai na árvore e o MCP faz a IDE renderizá-lo lá. A resposta inclui um bloco childrenOrderedListReconciliation listando cada pai (re)escrito, além de quaisquer elementos estruturais que não puderam ser inferidos com segurança.

Seguro por padrão: todas as ferramentas de escrita aceitam dryRun: true (retorna uma pré-visualização sem mutar a KB) e idempotencyKey (tentativas seguras; chamadas concorrentes são coalescidas, resultados em cache por 15 min).


Edição de padrão WorkWithPlus — o que você pode realmente fazer

Padrões WorkWithPlus são documentos XML que direcionam telas de Transaction e Selection. O MCP expõe toda a superfície para que um agente possa projetar ou reestruturar uma tela sem abrir a IDE:

CapacidadeFerramenta / padrãoStatus
Ler XML de PatternInstance / PatternVirtualgenexus_read --part PatternInstance✅
Substituir padrão inteiro (mode: full)genexus_edit --mode full --part PatternInstance✅ verificado ao vivo
Localizar/substituir patches estilo texto (mode: patch)genexus_edit --mode patch --part PatternInstance --operation Replace✅ verificado ao vivo
Adicionar / remover / reordenar elementos estruturais (textBlock, attribute, standardAction, table-as-group, order, filterAttribute, gridAttribute, eventBlock…)Edição de XML + reconciliação automática✅ verificado ao vivo
Classes de tema (themeClass, buttonClass, groupThemeClass, cellThemeClass, format="HTML")Atributo XML no elemento✅ verificado ao vivo
Reorganizar visão Transaction (layout de formulário, linha de ações)editar sob /instance/transaction/...✅ verificado ao vivo
Reorganizar visão Selection (lista/grid, filtros, ordens)editar sob /instance/level/selection/...✅ verificado ao vivo
Reconstruir automaticamente childrenOrderedList a partir da ordem do XMLfeito implicitamente a cada escrita; relatório sob childrenOrderedListReconciliation✅ verificado ao vivo
Adicionar / mover / remover abas do WebPanel e controles tipadosgenexus_wwp add_tab / move_tab / remove_tab✅ comandos nativos do Pattern SDK; snapshot + releitura + verificação de projeção do WebForm
Adicionar ou reconciliar uma legenda de atributo de gridgenexus_wwp add_grid_attribute✅ dry-run isolado, snapshots completos de PatternInstance/WebForm, rollback exato e sem ciclo de vida implícito

Fluxo de trabalho recomendado para redesenho de tela:

  1. genexus_list_objects --typeFilter ThemeClass --nameFilter Button — descubra as classes de botão reais disponíveis nesta KB (ButtonGreen, ButtonBlue, ButtonRed, etc — os nomes variam por KB).
  2. genexus_read --name WorkWithPlus<Object> --part PatternInstance — obtenha o XML atual.
  3. Edite o XML em memória (LLM): envolva atributos em um <table isGroup="True" title="…" groupThemeClass="GroupTelaResp">, reordene botões, adicione um novo <standardAction>, anexe buttonClass="btn ButtonGreen", etc.
  4. genexus_edit --mode full --part PatternInstance --content "<new xml>" — o MCP reescreve a parte, reconcilia childrenOrderedList em cada container e verifica o round-trip.
  5. Leia de volta para confirmar; atualize a IDE do GeneXus para ver o resultado.

Botões personalizados usam <userAction>, não <standardAction>. Trn_Enter / Trn_Cancel / Trn_Delete são as únicas ações padrão registradas em uma transação WorkWithPlus; qualquer botão personalizado (Duplicate, Audit, Export, etc.) deve ser um <userAction caption="…" name="…" buttonClass="btn ButtonGreen" confirm="False" />. O reconciliador do MCP trata <userAction> como um par de <standardAction> (mesmo typeCode 17/18 por contexto), então eles coexistem na mesma linha de TableActions e a IDE os renderiza lado a lado.

Para abas do WebPanel, prefira a operação tipada nativa em vez da substituição de XML inteiro:

{
  "action": "add_tab",
  "name": "SamplePanel",
  "controlName": "IntegrationV3",
  "title": "Integration API V3",
  "position": 5,
  "children": [
    { "type": "variable", "name": "Operation", "basicType": "VarChar", "length": 40 },
    { "type": "userAction", "name": "SendIntegration", "caption": "Send" }
  ],
  "dryRun": true
}

O dry-run retorna um diff tipado e versionToken. Passe-o como baseVersion na chamada persistida. A escrita usa comandos de elementos do Pattern SDK, exige snapshots exatos de PatternInstance/WebForm, preserva Apply-on-save, relê o PatternInstance, projeta e relê o WebForm pai, e reverte ambas as partes em qualquer confirmação falha. Ela nunca invoca operações de ciclo de vida.

Coisas para saber (orientação, não pegadinhas):

  • WorkWithPlus normaliza alguns atributos após cada salvamento. Certos campos estão vinculados à transação subjacente (por exemplo, title em grupos de nível superior deriva do nome amigável da transação). Quando "Apply this pattern on save" está habilitado no objeto WorkWithPlus, o mecanismo recalcula esses campos — mesmo comportamento se você editar no IDE ou via MCP. Para fazer uma substituição forçada persistir, alterne esse flag via MCP:
    { "tool": "genexus_properties",
      "arguments": { "action": "set", "name": "WorkWithPlus<Object>",
                     "propertyName": "SDPlus_Editor_Apply_On_Save", "value": "False" } }
    
    Aceita "True" | "False" | "Default" (Default herda a configuração de nível de KB). Volte para "Default" para reabilitar o recálculo do mecanismo. Validado ao vivo neste repositório.
  • A segurança estrutural é imposta pelo SDK. Se você enviar XML que viole invariantes do padrão (por exemplo, um <transaction> sem um <level>, ou um <standardAction> cujo name não é uma ação registrada), o SDK rejeita o salvamento e o MCP retorna o erro exato para que você possa corrigir a entrada. A KB nunca fica pela metade.
  • A pré-visualização do padrão no IDE é um mockup estrutural, não uma renderização estilizada. O CSS do tema (buttonClass, themeClass, fontes, cores) é resolvido em tempo de execução, não no canvas de pré-visualização — então mesmo após uma escrita MCP bem-sucedida, o painel de pré-visualização parecerá genérico. Para verificar a estilização: abra o elemento na árvore do IDE e verifique o painel Properties à direita (as classes aplicadas aparecem lá), ou use Run / Live Editing para ver o CSS real. Isso é comportamento do IDE GeneXus, independente de como o padrão foi editado.

AXI CLI (para agentes e automação)

O comando genexus-mcp em si também é uma CLI voltada para agentes com saída otimizada para tokens:

genexus-mcp status               # gateway/worker state
genexus-mcp doctor --mcp-smoke   # health check + protocol probe
genexus-mcp tools list           # list available tools
genexus-mcp config show          # current resolved config
genexus-mcp layout status        # native layout automation state

Flags globais: --format toon|json|text · --fields f1,f2,... · --limit N · --query <text> · --quiet · --no-color.

Contrato completo: docs/axi_cli_contract.md. Manual de boas práticas: docs/llm_cli_mcp_playbook.md.


Configuração avançada

O instalador grava um config.json para você. Para personalizar rede, timeouts ou caminhos de sombra:

{
  "Server": {
    "HttpPort": 5000,
    "BindAddress": "127.0.0.1",
    "SessionIdleTimeoutMinutes": 10,
    "WorkerIdleTimeoutMinutes": 60,
    "MaxOpenKbs": 3,
    "ArtifactOutputDirectory": "C:\\GenexusMCP\\Artifacts"
  },
  "GeneXus": {
    "InstallationPath": "C:\\Program Files (x86)\\GeneXus\\GeneXus18",
    "WorkerExecutable": "worker\\GxMcp.Worker.exe"
  },
  "Environment": {
    "DefaultKb": "main",
    "KBs": [
      { "alias": "main",   "path": "C:\\KBs\\YourKB" },
      { "alias": "legacy", "path": "C:\\KBs\\OtherKB" }
    ]
  }
}

Compatibilidade reversa: configurações antigas com um único Environment.KBPath continuam funcionando — o gateway as migra automaticamente para KBs[] + DefaultKb no momento do carregamento.

Artefatos de documentação gerados

genexus_doc mantém os arquivos gerados fora da instalação do Worker para que uma atualização não os deixe presos no backup de instalação. Por padrão, a raiz é %LOCALAPPDATA%\GxMcp\Artifacts; cada KB recebe um diretório kb-<identity> estável com filhos docs e html. Defina Server.ArtifactOutputDirectory para escolher outra raiz; o filho por KB ainda é adicionado. GXMCP_ARTIFACT_OUTPUT_DIR é a substituição equivalente para um Worker iniciado diretamente. Respostas do Wiki relatam result.file; respostas do visualizador relatam result.url; ambos também relatam result.outputDirectory. Visualizador e health consomem o snapshot canônico IndexCacheService da KB ativa, não um cache compartilhado relativo à instalação.

Trabalhando com múltiplas KBs

Depois que você declarar mais de uma KB em Environment.KBs[], toda ferramenta aceita um argumento opcional kb:

// LLM example: list procedures in two KBs in parallel
{ "tool": "genexus_list_objects", "arguments": { "kb": "main",   "type": "Procedure" } }
{ "tool": "genexus_list_objects", "arguments": { "kb": "legacy", "type": "Transaction" } }

Regras de resolução quando kb é omitido:

  • um kb explícito sempre vence; use-o para trabalho paralelo ou quando um prompt tocar mais de uma KB
  • cada sessão MCP captura o DefaultKb configurado em initialize; set_default altera a sessão atual e persiste o fallback de inicialização para sessões futuras
  • open apenas inicia/registra um Worker; ele não altera silenciosamente o alvo de outra sessão. Selecione-o com set_default, ou passe kb explicitamente
  • exatamente 1 KB aberta → usa essa KB quando a sessão não tem seleção
  • 2+ KBs abertas sem seleção de sessão → o servidor retorna KB_AMBIGUOUS; escolha uma com set_default ou passe kb explicitamente

Gerencie o pool em tempo de execução:

{ "tool": "genexus_kb", "arguments": { "action": "list" } }
// → { selectedKb, activeKb, openKbs: [{alias, path, pid, workingSetMB, idleSeconds}], knownKbs, maxOpenKbs, defaultKb, declaredKbs }

{ "tool": "genexus_kb", "arguments": { "action": "open", "alias": "adhoc", "path": "C:/KBs/ScratchKB" } }
{ "tool": "genexus_kb", "arguments": { "action": "close", "alias": "legacy" } }
{ "tool": "genexus_kb", "arguments": { "action": "set_default", "alias": "main" } }   // persists to config.json

Para OpenCode, chame genexus_whoami uma vez no início de uma sessão. Use kb.selected, kb.default, kb.openKbs, kb.knownKbs e kb.declaredKbs para entender o alvo, então selecione a KB normal de trabalho com genexus_kb action=set_default. Toda resposta vinculada a uma KB também inclui kbAlias em seu payload JSON, o que permite ao OpenCode correlacionar respostas somente de texto. Mantenha kb=<alias> em chamadas que intencionalmente comparam ou atualizam outra KB.

O instalador registra ambos os layouts de configuração do OpenCode: a entrada direta legada mcp.genexus usada pelo OpenCode 1.x e o layout atual mcp.servers.genexus. clients add --clients opencode só é necessário para reparar ou re-registrar explicitamente um cliente após a instalação; o init normal lida com clientes detectados automaticamente. Reinicie o OpenCode após um registro para que ele recarregue a configuração MCP.

Quando o pool está cheio e nenhum Worker está ocioso, o servidor retorna KB_POOL_FULL — feche um explicitamente ou aumente Server.MaxOpenKbs. Cada Worker carrega o SDK em seu próprio processo (~200–400 MB ocioso, até 1–2 GB em KBs pesadas), então dimensione o pool contra a RAM disponível.

Arquitetura

graph LR
    A[AI Client / Nexus-IDE] -->|MCP stdio or HTTP /mcp| B[Independent Gateway .NET 10]
    B -->|isolated stdio: direct child| C[Worker .NET Framework 4.8]
    B -->|shared-host: named-pipe attachment| H[Per-KB WorkerHost broker]
    H -->|one compatible child| C
    C -->|Native SDK| D[GeneXus KB]
  • Worker pool (v2.3.0+): em modo isolado, um processo Worker .NET 4.8 por KB aberta em cada Gateway, limitado por MaxOpenKbs (padrão 3). Com shared-host, Gateways compatíveis se conectam a um Worker de propriedade do broker por KB física em vez de iniciar processos SDK duplicados. Workers são iniciados preguiçosamente, reciclados por WorkerIdleTimeoutMinutes e removidos por LRU quando o pool está cheio.
  • Paralelismo entre KBs: chamadas de ferramenta para KBs diferentes rodam em processos Worker diferentes e nunca bloqueiam umas às outras. Chamadas para a mesma KB ainda são serializadas pelo requisito STA do SDK GeneXus.
  • Isolamento de Gateway: shared-host não transforma um Gateway em mestre ou proxy para outro; cada cliente mantém seu próprio estado MCP e apenas o Worker SDK é compartilhado.
  • Reuso de Gateway: múltiplas instâncias do IDE compartilham um gateway via arquivos de lease em %LOCALAPPDATA%\GenexusMCP\gateway-leases.
  • Modo HTTP: também disponível em http://127.0.0.1:5000/mcp com SSE. Cabeçalho: MCP-Protocol-Version: 2025-11-25.

Desenvolvimento e build a partir do código-fonte

Quer contribuir ou rodar um build de desenvolvimento local?

  1. Clone este repositório no Windows.
  2. Execute .\build.ps1 para restaurar e compilar os componentes C# e empacotar os artefatos locais. O script verifica o .NET SDK e a instalação do GeneXus 18 necessários.
  3. Se o GeneXus estiver instalado fora do caminho padrão, defina $env:GX_PATH para sua pasta de instalação antes de executar o build. Uma Knowledge Base só é necessária para testes em tempo de execução.

Habilidades de IA empacotadas (.gemini/skills/)

Este repositório inclui um conjunto de habilidades de agente em .gemini/skills/ que qualquer cliente compatível com MCP com suporte a habilidades (Gemini CLI, Claude Code via plugin, etc.) pode carregar para fundamentar seu raciocínio sobre GeneXus:

HabilidadeO que dá ao agente
genexus-masteryO fluxo de trabalho MCP preferido deste repositório + uso multi-KB
genexus18-guidelinesRegras de engenharia locais em camadas sobre Nexa
nexaConjunto de referência completo para o SDK primário do GeneXus: cada tipo de objeto, comando, tipo, propriedade — importado do oficial genexuslabs/genexus-skills
frontend/chameleon-controls-library58 especificações de componentes de UI Chameleon
frontend/mercury-design-systemTokens Mercury, bundles, theming
frontend/design-system-builderCriação de design systems personalizados
frontend/ui-creatorModelos de geração de painéis/telas

Habilidades de terceiros são Apache 2.0 (veja .gemini/skills/NOTICE.md). Para atualizar contra o upstream, siga os passos em NOTICE.md.

Nexus-IDE (extensão VS Code — opcional, não instalada automaticamente)

src/nexus-ide é uma extensão VS Code leve e experimental no repositório. O instalador não empacota nem instala mais — o VS Code é configurado como cliente MCP nativo (veja Clientes de IA suportados). Se você quiser a extensão, compile e instale manualmente:

cd src/nexus-ide; npm ci; npm run compile
npx --yes @vscode/vsce package --out nexus-ide.vsix
code --install-extension nexus-ide.vsix --force

Ela fornece um sistema de arquivos virtual (esquema genexus://), um explorador de KB com edição de múltiplas partes e comandos de descoberta MCP.

Lançamento automatizado

  • Workflow: .github/workflows/release.yml
  • Gatilho: push para main com um bump de versão package.json
  • Comportamento: publica no npm se a versão for nova + cria um GitHub Release com tag v<version>
  • Segredo necessário: NPM_TOKEN

Licença

MIT — veja LICENSE.

Palavras-chave de busca: GeneXus MCP · GeneXus 18 MCP · GeneXus AI · GeneXus Claude · Model Context Protocol GeneXus · GeneXus low-code AI agent · GeneXus Cursor · GeneXus Antigravity