Este repositório reúne o conhecimento sobre o uso do GeneXus MCP Server, com foco no que já foi confirmado e no que ainda falta validar.
Este material parte do cenário Windows Native, foco do guia oficial de instalação.
- Registrar a definição do servidor
- Registrar a localização exata na máquina
- Concentrar observações, validações e descobertas futuras em um único lugar
- Entender como usar o MCP com ou sem a IDE aberta
Este repositório fica como base de conhecimento sobre o GeneXus MCP Server.
Há um workspace local separado para testes e artefatos de estudo, em C:\Dev\Test.
Este documento registra o estado atual do que já entendemos e o que ainda falta confirmar.
Regra prática:
- aqui ficam as anotações, decisões e explicações em
.md - o que vier da KB, o que for exportado e o que for preparado para importação fica no workspace de testes local
- artefatos de estudo não devem ficar misturados com a documentação permanente
O GeneXus MCP Server é o backend local do GeneXus Next para integração com ferramentas e agentes. Na instalação validada, ele é atendido pelo executável GeneXus.Services.Host.exe.
Model Context Protocol (MCP) é o protocolo que permite a agentes se conectar a servidores que expõem operações controladas.
O guia oficial confirma que o servidor:
- já vem incluído no
GeneXus Next - fica disponível quando a IDE está em execução
- também pode ser executado diretamente a partir da pasta
bl - está disponível desde
GeneXus Next 2026.01eGeneXus 18 Upgrade 15 - permite, entre outras ações, criar e abrir
Knowledge Bases, criar ou modificar objetos, definirrules, configurar propriedades e importar ou exportar objetos em texto
O servidor fica na pasta bl da instalação do GeneXus Next.
O executável confirmado é GeneXus.Services.Host.exe.
Na instalação validada nesta máquina, o caminho absoluto do host é:
C:\Users\ANTONIOJOSE\AppData\Local\Programs\GeneXus\GeneXus Next\bl\GeneXus.Services.Host.exe
Com base no guia oficial, os arquivos locais mais relevantes para acompanhamento são:
GXMBLServices.log, para monitorar a execução e interação do backendsettings.json, criado por padrão emblsettings-overrides.json, para sobrescrever configurações sem alterar o arquivo padrão
O guia oficial mostra que o servidor expõe o endpoint http://localhost:8001/mcp e pode ser conectado à CLI compatível com MCP.
O foco principal aqui é conseguir usar o GeneXus MCP Server sem depender da IDE aberta, sem excluir o uso misto quando ele fizer sentido.
Pelo guia oficial, existem dois modos úteis:
- iniciar a IDE, o que sobe o servidor automaticamente junto com ela
- iniciar apenas o backend local, executando
GeneXus.Services.Host.exea partir da pastabl
- Abrir a instalação do
GeneXus Next. - Entrar na pasta
bl. - Executar
GeneXus.Services.Host.exe. - Confirmar que o servidor respondeu no endpoint padrão.
Nesta máquina já existem atalhos no menu Iniciar para subir apenas o host:
GENEXUS MCP, para abrir o host normalmenteGENEXUS MCP MIN, para abrir o host minimizado
Esses atalhos aparecem na busca do Windows e apontam para GeneXus.Services.Host.exe.
Ao abrir o host por atalho ou executando o .exe diretamente, é esperado que apareça uma janela de terminal.
Os sinais relevantes de inicialização correta são:
GeneXus Services Host started. port:8001Now listening on: http://localhost:8001Application started. Press Ctrl+C to shut down.
Também é normal que a janela mostre logs de carregamento de pacotes e mensagens 404 em endpoints auxiliares de OAuth discovery.
A janela precisa permanecer aberta enquanto o servidor estiver em uso.
A forma prática de validação é confirmar que o endpoint MCP responde em:
http://localhost:8001/mcp
Também faz sentido observar o GXMBLServices.log, porque ele registra a execução e a interação do backend.
- o processo do host está em execução
- o endpoint
http://localhost:8001/mcpresponde - o
GXMBLServices.logmostra inicialização sem erro de carregamento - a CLI consegue se conectar ao servidor MCP
O endpoint não responde a um GET simples. Ele espera um cliente MCP com Accept: application/json, text/event-stream.
Ao usar scripts, cuidado: a resposta pode chegar em SSE com prefixos event: e data:. Extraia as linhas data: e parseie o JSON contido nelas.
Na validação realizada:
initializerespondeu com sucesso- o servidor devolveu
Mcp-Session-Id tools/listretornou as ferramentas GeneXus expostas
Isso confirma que o servidor está funcional como MCP, e não apenas escutando a porta.
Ao trabalhar com Knowledge Bases, é importante considerar que a KB aberta fica associada à sessão MCP que executou o open_knowledge_base.
Na prática, isso significa que abrir a KB em uma sessão não garante que outra sessão MCP já enxergue o mesmo estado aberto.
O Codex local suporta MCP servers externos no arquivo de configuração do usuário. O registro deste servidor usa o alias gxnext.
codex mcp add gxnext --url http://localhost:8001/mcpFluxo mínimo para trabalhar com o GeneXus MCP Server:
- Iniciar o host
GeneXus.Services.Host.exe. - Confirmar que a porta
8001está aberta. - Confirmar o handshake MCP com
initialize. - Usar o servidor no Codex como
gxnext.
Dica de ambiente: em scripts locais no Windows, use
python3sempre que disponível. O comandopythonpode apontar para Python 2 e causar erros de sintaxe ou encoding.
Se o initialize falhar com 406, o problema costuma ser o Accept da requisição e não necessariamente o servidor desligado.
Em operações de listagem, export_kb_to_text com listOnly:true pode concluir com sucesso sem devolver a lista de objetos no payload MCP.
Quando for necessário obter a listagem real de objetos, pode ser necessário exportar da KB para o filesystem de trabalho e ler os artefatos gerados.
- O
GeneXus MCP Serverpode responder emhttp://localhost:8001/mcp - O host local é
GeneXus.Services.Host.exe - o caminho absoluto validado do host nesta máquina é
C:\Users\ANTONIOJOSE\AppData\Local\Programs\GeneXus\GeneXus Next\bl\GeneXus.Services.Host.exe - O servidor pode ser iniciado sem abrir a IDE
- há atalhos locais para abertura normal e minimizada do host
- O log relevante é
GXMBLServices.log settings.jsonesettings-overrides.jsonfazem parte do apoio local
Arquivo Textual de Objeto Genexus significa um arquivo .gx que representa textualmente um objeto GeneXus e que pode servir como fonte para leitura, estudo, exportação ou importação no fluxo MCP.
O workspace local para artefatos gerados e exportados é C:\Dev\Test\NextTest1. Essa é a pasta oficial de currentDirectory para todas as operações MCP com a KB NextTest1.
Estrutura interna:
| Subpasta | Uso |
|---|---|
ExportadosPeloGenexusMCP\ |
Exports feitos via MCP — Textual (src/src.ns) e estrutura física |
ProntosParaImportacao\ |
Objetos validados prontos para import_text_to_kb |
RascunhosGerados\ |
Rascunhos ainda não validados |
Exemplos\ |
Exemplos de referência |
Verify-*\ |
Pastas de verificação por objeto |
O fluxo completo validado para uma KB com Transaction nova é:
open_knowledge_basecomcurrentDirectoryapontando para o workspace de testesimport_text_to_kbcom os arquivos.gxprontosbuild_all— requerprefer-offline=trueeaudit=falseno~/.npmrc- Verificar se o banco de aplicação já existe no LocalDB antes de qualquer operação de banco
create_or_impact_databasecomisCreate: falsese banco existir com dados,isCreate: truese não existir- Subir a aplicação via
dotnet GxNetCoreStartup.dllna pastaNetModel\web\bin
O build_all chama npm install para os UserControls do GeneXusUnanimo. Sem configuração adequada, esse processo trava indefinidamente.
Solução validada: adicionar ao ~/.npmrc:
prefer-offline=true
Em avaliação:
audit=falsetambém resolve, mas desativa verificações de segurança globalmente. Ainda não confirmado seprefer-offline=truesozinho é suficiente — validar no próximo build.
- A ferramenta
rundo MCP não está funcional nesta versão — declarada no schema mas não implementada. Vermcp-tools.mdpara detalhes e alternativa. - Confirmar se
prefer-offline=truesozinho no~/.npmrcé suficiente para evitar o hang donpm installnobuild_all(em observação no próximo build) Procedurenova via MCP —PrcSaudacaofoi importada com sucesso e está na KB, mas não gerou.dlldurante obuild_all. Possível timing issue (build rodou antes da spec processar o novo objeto) ou bug real. Requer novobuild_allpara validar se compila na próxima execução.
- Round-trip de
WebPanelvia MCP: export → edição do.layout.xml→ import → build → resultado visível no browser ✅ textblockno layout requercontrolNamealém dename— sem ele o import falha ✅- Encerrar o web app antes de buildar — processo segura
.dllemNetModel\web\bin\✅ Folderé tipo de objeto GeneXus criável viaimport_text_to_kbcom arquivo de corpo vazio ✅- Mover objetos entre pastas via MCP não funciona — nem via
Folderem#Properties, nem via subdiretório; exclusivo da IDE ✅ - MCP não tem
delete_object— objetos importados não podem ser removidos via MCP ✅ WorkWitheWorkWithDevices— exportáveis via MCP, mas não reimportáveis: o validador rejeita tabs no YAML mesmo em arquivos gerados pelo próprio GeneXus; criação e edição exclusivas da IDE ✅BusinessComponent = trueem#Propertiesexige minúsculo (TOML) —Truemaiúsculo causa erro de parsing ✅&bc.Load(Key)requer o PK como parâmetro —Load()sem parâmetro não é aceito pelo validador ✅- Round-trip de objetos gerados pelo WorkWithWeb (
WWxxx,ViewXxx,XxxGeneral) — sãoWebPanel/WebComponentcomuns e suportam o fluxo padrão: export → edição do.layout.xml→ validate → import → build → visível no browser ✅ - Round-trip de código
.main.gx(não só layout) — editar eventos/rules em WebPanel funciona:Form.Captionalterado no Event Start, importado, compilado, mudança refletida no browser ✅ execute.xmlpode ficar bloqueado apósbuild_all: o GeneXus reporta falha geral, mas o passodotnet publishjá ocorreu e os DLLs embin\estão atualizados — a aplicação serve as mudanças corretamente ✅- Daemons GeneXus (
SpecifierDaemon,GeneratorDaemon,ResidentBuilderDaemon) ficam órfãos após fechar a IDE e travam builds via MCP; solução: listar comGet-WmiObject Win32_Processe matar os PIDs comStop-Process -Forceantes do próximo build ✅ WebPanelnovo criado do zero via MCP — arquivo.webpanel.main.gxcom mínimo de eventos/variables compila e gera DLL funcional ✅build_oneecompile_object— não funcionam nesta versão do GeneXus; ambas retornam "Erro interno" sem detalhes; usebuild_allcomo alternativa ❌