Microsoft Business Central MCP Server
Servidor MCP de Microsoft Business Central
Servidor del Model Context Protocol (MCP) para Microsoft Dynamics 365 Business Central. Proporciona a los asistentes de IA acceso directo a los datos de Business Central mediante llamadas correctamente formateadas a la API v2.0.
Características
✅ URLs de API correctas: Utiliza el formato
/companies(id)/resource(sin segmento ODataV4)✅ Cero instalación: Ejecutar con
npx- no requiere instalación previa✅ Autenticación con Azure CLI: Aprovecha la autenticación existente de Azure CLI
✅ Autenticación con credenciales de cliente: Autenticación de servicio a servicio para agentes de IA
✅ Nombres de herramientas limpios: Sin prefijos, solo
get_schema,list_items, etc.✅ CRUD completo: Crear, leer, actualizar y eliminar registros de Business Central
Instalación
Usando npx (Recomendado)
¡No se necesita instalación! Configúralo en Claude Desktop o Claude Code:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/{environment}/api/v2.0",
"BC_COMPANY": "Your Company Name",
"BC_AUTH_TYPE": "azure_cli"
}
}
}
}Nota para Windows: Usa cmd con /c como se muestra arriba para una ejecución correcta de npx.
Usando Smithery
Instala a través de Smithery:
npx -y @smithery/cli install @knowall-ai/mcp-business-central --client claudeDesarrollo local
git clone https://github.com/knowall-ai/mcp-business-central.git
cd mcp-business-central
npm install
npm run build
node build/index.jsConfiguración
Variables de entorno
Variable | Requerida | Descripción | Ejemplo |
| Sí | URL base de la API de Business Central |
|
| Sí | Nombre para mostrar de la empresa |
|
| No | Tipo de autenticación (por defecto: |
|
| Para client_credentials | ID de inquilino de Azure AD |
|
| Para client_credentials | ID de cliente del registro de aplicación |
|
| Para client_credentials | Secreto de cliente del registro de aplicación |
|
Obtención de los valores de configuración
ID de inquilino: Encuéntralo en Azure Portal → Azure Active Directory → Información general
Entorno: Normalmente
ProductionoSandboxNombre de la empresa: El nombre para mostrar que aparece en Business Central
Ejemplo de formato de URL:
https://api.businesscentral.dynamics.com/v2.0/00000000-0000-0000-0000-000000000000/Production/api/v2.0Autenticación
Recomendación: Usa la autenticación
azure_cli- es más sencilla de configurar y más fiable. El métodoclient_credentialstambién es compatible, pero tiene problemas de configuración conocidos con la configuración de Microsoft Entra Applications de Business Central. Consulta docs/TROUBLESHOOTING.adoc para más detalles.
Opción 1: Azure CLI (Recomendado)
El método de autenticación más sencillo y fiable. Utiliza tu inicio de sesión existente de Azure CLI.
Requisitos previos:
Instalar Azure CLI: https://docs.microsoft.com/cli/azure/install-azure-cli
Iniciar sesión:
az loginVerificar acceso:
az account get-access-token --resource https://api.businesscentral.dynamics.com
Configuración:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_AUTH_TYPE": "azure_cli",
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/Production/api/v2.0",
"BC_COMPANY": "My Company"
}
}
}
}Opción 2: Credenciales de cliente (Servicio a servicio)
Para sistemas automatizados que necesitan ejecutarse sin interacción del usuario. Este método utiliza el flujo de credenciales de cliente OAuth 2.0.
Nota: Este método tiene problemas de configuración conocidos. La configuración de "Microsoft Entra Applications" de Business Central puede ser compleja y la creación del usuario de aplicación puede no funcionar como se espera. Consulta docs/TROUBLESHOOTING.adoc para obtener una guía detallada.
Resumen de configuración:
Crear un registro de aplicación de Azure:
Ve a Azure Portal → Azure Active Directory → Registros de aplicaciones
Crea un nuevo registro (inquilino único)
Añade permiso de API: Dynamics 365 Business Central →
app_access(permiso de aplicación, NO delegado)Concede consentimiento de administrador para el permiso
Añade URI de redirección:
https://businesscentral.dynamics.com/OAuthLanding.htm
Generar secreto de cliente:
En tu registro de aplicación, ve a Certificados y secretos
Crea un nuevo secreto de cliente y guárdalo de forma segura
Configurar Business Central:
En Business Central, busca "Microsoft Entra Applications"
Haz clic en + Nuevo e introduce el ID de cliente de tu aplicación
Establece una descripción (esto se convierte en el nombre de usuario de la aplicación)
Establece el estado en "Habilitado" - deberías ver "Se creará un usuario llamado '[Descripción]'"
Añade conjuntos de permisos:
D365 BUS FULL ACCESS(recomendado) oD365 READDeja el campo Empresa en blanco para acceso a todas las empresas
Haz clic en "Conceder consentimiento"
Verificar la configuración:
El usuario de la aplicación debería aparecer en la lista de usuarios de Business Central
Si no es así, consulta docs/TROUBLESHOOTING.adoc para soluciones
Referencias:
Herramientas disponibles
1. get_schema
Obtener metadatos OData para un recurso de Business Central.
Parámetros:
resource(cadena, requerido): Nombre del recurso (por ejemplo,customers,contacts,salesOpportunities)
Ejemplo:
{
"resource": "customers"
}2. list_items
Listar elementos con filtrado y paginación opcionales.
Parámetros:
resource(cadena, requerido): Nombre del recursofilter(cadena, opcional): Expresión de filtro ODatatop(número, opcional): Número máximo de elementos a devolverskip(número, opcional): Número de elementos a omitir para la paginación
Ejemplo:
{
"resource": "customers",
"filter": "displayName eq 'Contoso'",
"top": 10
}3. get_items_by_field
Obtener elementos que coincidan con un valor de campo específico.
Parámetros:
resource(cadena, requerido): Nombre del recursofield(cadena, requerido): Nombre del campo por el que filtrarvalue(cadena, requerido): Valor a coincidir
Ejemplo:
{
"resource": "contacts",
"field": "companyName",
"value": "Contoso Ltd"
}4. create_item
Crear un nuevo elemento en Business Central.
Parámetros:
resource(cadena, requerido): Nombre del recursoitem_data(objeto, requerido): Datos del elemento a crear
Ejemplo:
{
"resource": "contacts",
"item_data": {
"displayName": "John Doe",
"companyName": "Contoso Ltd",
"email": "john.doe@contoso.com"
}
}5. update_item
Actualizar un elemento existente.
Parámetros:
resource(cadena, requerido): Nombre del recursoitem_id(cadena, requerido): ID del elemento (GUID)item_data(objeto, requerido): Campos a actualizar
Ejemplo:
{
"resource": "customers",
"item_id": "1366066e-7688-f011-b9d1-6045bde9b95f",
"item_data": {
"displayName": "Updated Name"
}
}6. delete_item
Eliminar un elemento de Business Central.
Parámetros:
resource(cadena, requerido): Nombre del recursoitem_id(cadena, requerido): ID del elemento (GUID)
Ejemplo:
{
"resource": "contacts",
"item_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}Recursos comunes
companies- Información de la empresacustomers- Registros de clientescontacts- Registros de contactossalesOpportunities- Oportunidades de ventasalesQuotes- Presupuestos de ventasalesOrders- Pedidos de ventasalesInvoices- Facturas de ventaitems- Elementos de producto/serviciovendors- Registros de proveedores
Solución de problemas
Consulta docs/TROUBLESHOOTING.adoc para guías detalladas de solución de problemas que cubren:
Problemas de autenticación (errores 401, problemas con tokens)
Problemas de configuración de
client_credentialsy problemas conocidosErrores de empresa no encontrada
Configuración específica del entorno (Production vs Sandbox)
Desarrollo
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run devLicencia
MIT
Contribuciones
Se aceptan problemas y solicitudes de extracción en https://github.com/knowall-ai/mcp-business-central
Proyectos relacionados
Especificación MCP: modelcontextprotocol.io
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.
Related MCP Connectors
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
MCP server for AI access to Swagger by SmartBear.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/masoniqbal777/Mcp-Business-Central'
If you have feedback or need assistance with the MCP directory API, please join our Discord server