AL CodeGen MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AL CodeGen MCP Servergenerate a sales order page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Desarrollo de un servidor MCP para Laberit Sistemas S.L.
Contenidos
Related MCP server: AL MCP Server
Descripción breve del proyecto
El objetivo del proyecto consiste en planificar y desarrollar un servidor MCP que permita generar código AL, permitiendo a los desarrolladores aumentar su eficiencia sin necesidad de abandonar su entorno habitual de trabajo.
Para ello, se ha optado por emplear el lenguaje TypeScript y el SDK correspondiente proporcionado por el repositorio oficial dedicado al protocolo con el fin de desarrollar una versión "estándar" que además fuera fácilmente integrable y escalable.
Requisitos de instalación
Node.js (v16.0+; el desarrollo se ha realizado en la v24.14.1).
Nota: alternativamente, se puede emplear cualquier entorno de ejecución JS, como Bun.js o Deno, reemplazando los comandos pertinentes.Dependencias del proyecto:
modelcontextprotocol/sdk: framework utilizado
zod (v4): validador de formato, expone el formato de petición al agente
handlebars: gestor de plantillas de generación de código
dotenv: gestor de variables de entorno (ficheros .env). Permite ejecutar el servidor de forma independiente.
Para compilar el proyecto y ejecutar en local, será necesario instalar además:
typescript: lenguaje TypeScript
types/node: complemento de TypeScript para Node.js
typedoc: generador de documentación para JavaScript/TypeScript
typedoc-material-theme: estilo visual para la documentación complementario a TypeDoc
# Instala npm
npm install -g npm
# Versión de Node.js y npm
node -v
npm -v
# Instala las dependencias del proyecto (desde *package.json*)
npm installConfiguración y uso
Antes de comenzar con la configuración, se asume que debe haber instalado un agente que soporte integraciones MCP (Claude, Copilot, etc.) en el dispositivo que actúe a modo de cliente, ya sea independiente (aplicación propia) o esté integrado en un IDE (como VS Code o Google Antigravity).
En este listado se pueden ver los clientes disponibles. A priori, todos permiten el uso de herramientas (tools). Aún así, se recomienda que el agente escogido soporte también como mínimo peticiones (prompts) y recursos (resources) para no comprometer el funcionamiento de la aplicación conforme se vaya ampliando.
Configuración
Para que el agente reconozca el servidor, es necesario acceder al fichero de configuración MCP correspondiente. Dicho fichero suele ser accesible desde los ajustes de la aplicación desde la cual se invoca al agente.
Por ejemplo, en VS Code, la configuración MCP se encuentra en la ruta /.vscode/mcp.json desde la raíz del proyecto, mientras que en Claude se puede localizar en el fichero ~/AppData/Local/Packages/Claude_.../LocalCache/Roaming/Claude/claude_desktop_config.json.
Ejecución en remoto (recomendada)
Dentro de la clave de configuración para MCP en dicho fichero (cuyo nombre debería ser "servers", "mcpServers" o similar), añadir lo siguiente:
"al_codegen": {
"command": "npx",
"args": [
"-y",
"github:al426198/mcp-server"
],
"env": {
"AL_PROJECT_PATH": "./"
}
},
"al-object-id-ninja": {
"command": "npx",
"args": [
"-y",
"@vjeko.com/al-object-id-ninja-mcp"
]
},
"al": {
"command": "~/.vscode/extensions/ms-dynamics-smb-al-[VERSIÓN_AL]/bin/win32/altool.exe",
"args": ["launchmcpserver", "--transport", "stdio"]
}El primer servidor se corresponde con este proyecto.
El segundo servidor pertenece a AL Object ID Ninja, es una utilidad para obtener IDs de objeto evitando colisiones.
El tercer servidor sirve para interactuar con BC, y viene incluido en la extensión para el lenguaje AL a partir de la 17.0 (Business Central 2026 Release Wave 1). Se debería utilizar la última versión disponible; de no haber ninguna instalada, el código generado podría no ser compilable.
En Windows, el comando correspondiente para hallar dicha ruta es:
(Get-ChildItem -Path ~/.vscode/extensions/ms-dynamics-smb.al-*/bin/win32/altool.exe | Sort-Object Name -Descending | Select-Object -First 1).FullNameNota: la versión 17.0 emplea un argumento adicional que dejará de ser necesario a partir de la versión 18.0, véase el siguiente comando:
"al": { "command": "~/.vscode/extensions/ms-dynamics-smb-al-[VERSIÓN_AL]/bin/win32/altool.exe", "args": ["launchmcpserver", "--transport", "stdio", "--projects", "ruta/absoluta/al/proyecto/AL"] }
Ejecución en local
En cambio, si se desea ejecutar el proyecto localmente, se debe cambiar:
La configuración propia del servidor, indicando la ruta absoluta al fichero index.js:
"al_codegen": {
"command": "node",
"args": [ "ruta/absoluta/al/servidor/src/index.js" ],
"env": {
"AL_PROJECT_PATH": "ruta/absoluta/al/proyecto/AL"
}
}La variable
AL_PROJECT_PATH, que hace referencia a la ruta absoluta al proyecto AL sobre el cual se vaya a probar la aplicación, NO el proyecto destinado al servidor.
Realización de pruebas en local
Si se quiere probar el servidor de forma aislada, una forma de hacerlo es mediante la herramienta MCP Inspector. El servidor incluye el comando "show" a tal efecto, cuya sintaxis se muestra a continuación:
Se ejecuta mediante la orden: npm run show.
El comando realiza 3 tareas en el siguiente orden:
Compila el proyecto a JS para actualizar los cambios en la carpeta
build.Genera una clave secreta automáticamente y la guarda en la sesión del usuario. Esta clave se actualiza cada vez que se ejecuta el servidor.
Ejecuta el programa MCP Inspector en el navegador. La primera vez pedirá instalar el paquete Node correspondiente.
Nota: por cuestiones de compatibilidad, también se debe definir la variable de entorno "AL_PROJECT_PATH" dentro de un fichero llamado .env en la raíz del proyecto, aunque en la versión final del servidor se podría omitir, puesto que no hace nada. Se puede utilizar cualquier valor.
Una vez hecho esto, debería abrirse en el navegador la siguiente pantalla (también debe haber un enlace a la misma en la terminal):
Para conectarse al servidor, se debe hacer click en "Connect". Al utilizar el comando "show", MCP Inspector ya tiene la configuración necesaria para conectarse directamente al servidor MCP:
Si todo ha ido bien, debería mostrarse la siguiente interfaz:
Si no, es probable que no esté definida la variable de entorno "AL_PROJECT_PATH" o que no se encuentre donde se esperaba.
A partir de aquí, la idea es mostrar el listado de herramientas para ir probando, haciendo click sobre "Tools":
Para ejecutar la herramienta, simplemente es necesario rellenar el formulario. Como este paso puede llegar a ser bastante tedioso, en la documentación extendida (y por ende, en el código), hay ejemplos de código comentados antes de cada una de ellas:
La idea es ir copiando cada uno de estos fragmentos y pegándolos en los campos correspondientes del formulario. Se pueden modificar los datos como se desee, pero los JSON utilizados pueden llegar a ser algo complicados, aunque MCP Inspector suele indicar los errores de sintaxis (si falta un cierre, si sobra un carácter, etc.)
Por último, se debe hacer click en "Run Tool", que invocará el recurso del servidor y mostrará el resultado por pantalla. A continuación se muestra el resultado de ejecutar el ejemplo visto anteriormente:
Uso del servidor
Antes de emplear el servidor hay que comprobar que esté activo y funcionando. En VS Code se puede comprobar desde la configuración de agentes:
Desde una aplicación externa (como Claude, véase abajo), se puede consultar desde el apartado "Conectores" o similar:
Una vez hecho esto, ya es posible hacer uso del servidor preguntando directamente al agente, aunque no es muy recomendable puesto que ante la falta de contexto puede saltarse algunas comprobaciones básicas como:
La existencia de colisiones con la extensión actual (nombres e IDs de objeto).
La compilación exitosa del código generado.
Existen 2 maneras de reducir el impacto de este problema:
Desde el cliente, inyectando el contexto pertinente mediante ficheros "ocultos" que el agente lee en tiempo de ejecución (suelen terminar en -rules.md).
Desde el servidor, añadir una petición a modo de guía o un recurso a modo de manual. Durante el desarrollo, se ha optado por utilizar una petición a modo de flujo de trabajo para realizar pruebas, que el usuario puede utilizar tanto desde VS Code...
...como Claude o similares.
Consideraciones
Puesto que esta herramienta está pensada exclusivamente para agentes de Inteligencia Artificial (IA), se debe tener en cuenta lo siguiente:
Como usuario, es aconsejable hacer uso de un agente para acceder al servidor. Por tanto, es responsabilidad del usuario asegurarse de NO compartir datos personales al interactuar con dicho agente.
Las respuestas proporcionadas pueden variar según el modelo empleado o tener errores. Aunque se han aplicado técnicas y herramientas para reducir su aparición en gran medida, el usuario debería igualmente validar el código generado.
Cabe la posibilidad de que el agente desvaríe o decida no seguir los pasos propuestos (si existen alternativas que considera mejores); este hecho queda fuera del alcance del proyecto y no se puede evitar o prevenir al 100%.
Documentación adicional
Para obtener más información sobre el funcionamiento del servidor (herramientas y formatos de petición), se puede consultar la documentación extendida.
Autores
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/al426198/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server