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.
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:
Para compilar el proyecto y ejecutar en local, será necesario instalar además:
# 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 install
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.
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, mientras que en Claude se puede localizar en el fichero ~/AppData/Local/Packages/Claude_.../LocalCache/Roaming/Claude/claude_desktop_config.json.
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": "ruta/a/la/extensió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).FullName
En cambio, si se desea ejecutar el proyecto localmente, se debe cambiar:
"al_codegen": {
"command": "node",
"args": [ "ruta/absoluta/al/servidor/src/index.js" ],
"env": {
"AL_PROJECT_PATH": "ruta/absoluta/al/proyecto/AL"
}
}
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. Si se quiere probar el servidor manualmente, también se deberá definir en el entorno (uso de dotenv).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:
Existen 2 maneras de reducir el impacto de este problema:
...como Claude o similares.
Puesto que esta herramienta está pensada exclusivamente para agentes de Inteligencia Artificial (IA), se debe tener en cuenta lo siguiente:
Para obtener más información sobre el funcionamiento del servidor (herramientas y formatos de petición), se puede consultar la documentación extendida.