business-central-mcp
Resumen
Propiedad | Valor |
Idioma | TypeScript / Node 20+ |
Paquete npm | |
Versiones BC | BC27, BC28 (compatibles a nivel de protocolo) |
Autenticación | NavUserPassword (OAuth en la hoja de ruta) |
Herramientas | 12 |
Pruebas | 284 unitarias/protocolo + 111 de integración |
Licencia | MIT |
Instalación
VSCode
Haz clic en la insignia. VSCode se abre, te pide que agregues el servidor y escribe en tu mcp.json de usuario.
Aún tendrás que configurar BC_BASE_URL, BC_USERNAME y BC_PASSWORD en el bloque env de la entrada. VSCode abre el archivo para que lo edites.
Espacio de trabajo: crea .vscode/mcp.json:
{
"servers": {
"business-central": {
"command": "npx",
"args": ["-y", "business-central-mcp"],
"env": {
"BC_BASE_URL": "http://your-bc-server/BC",
"BC_USERNAME": "your-user",
"BC_PASSWORD": "your-password"
}
}
}
}Claude Code
claude mcp add business-central \
-e BC_BASE_URL=http://your-bc-server/BC \
-e BC_USERNAME=you \
-e BC_PASSWORD=secret \
-- npx -y business-central-mcpLimítalo al proyecto actual con --scope project. Consulta claude mcp --help para ver las opciones de alcance.
Claude Desktop
Descarga el último
.dxtdesde Releases.Haz doble clic. Claude Desktop abre Configuración → Extensiones y te pide la URL de BC, el nombre de usuario y la contraseña.
Reinicia Claude Desktop.
Edita claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"business-central": {
"command": "npx",
"args": ["-y", "business-central-mcp"],
"env": {
"BC_BASE_URL": "http://your-bc-server/BC",
"BC_USERNAME": "your-user",
"BC_PASSWORD": "your-password"
}
}
}
}Reinicia Claude Desktop.
Configuración
Variable | Requerido | Por defecto | Descripción |
| Sí | — | URL base del servidor BC, p. ej. |
| Sí | — | Nombre de usuario de NavUserPassword |
| Sí | — | Contraseña de NavUserPassword |
| No | predeterminado del servidor | Id. de perfil, p. ej. |
| No |
| Solo implementaciones multiinquilino. |
| No |
| Versión notificada a BC durante la apertura de sesión. |
| No |
| Puerto de transporte HTTP (el transporte stdio lo ignora). |
| No |
|
|
| No |
| Directorio para archivos de registro. |
| No |
| Directorio para el estado de sesión. |
| No |
| Tiempo de espera por invocación en ms. Mata sesiones colgadas. |
| No |
| Intentos de reconexión tras la muerte de la sesión. |
| No |
| Retraso base (ms) para la retrocesión exponencial de reconexión. |
¿Qué puede hacer?
Herramienta | Qué hace |
| Abre cualquier página por ID: listas, tarjetas, documentos, centros de roles. Devuelve la página como |
| Refresca una sola sección: filtra, pagina, divide, proyecta pestañas/columnas. Devuelve la misma forma |
| Escribe valores de campo; BC valida y devuelve los valores confirmados. Consciente de secciones (líneas, cuadros de información, encabezado). |
| Ejecuta acciones de encabezado / fila / asistente, o profundiza en mosaicos de indicadores del Centro de roles mediante la entrada |
| Gestiona avisos de confirmación y páginas de solicitud |
| Selecciona filas, profundiza en registros, búsquedas de campo |
| Búsqueda de Tell Me. Devuelve |
| Cierra una página y libera recursos del servidor |
| Cambia a una empresa diferente a mitad de sesión |
| Descubre las empresas disponibles |
| Ejecuta informes y rellena los parámetros de la página de solicitud |
| Conduce flujos de NavigatePage / asistente (atrás / siguiente / finalizar / cancelar) |
Cómo funciona
Este servidor habla directamente el protocolo WebSocket interno de BC, el mismo que usa el cliente web basado en navegador. Fue ingeniado a partir de ensamblados de servidor BC descompilados. Sin puntos de conexión OData, sin servicios SOAP, sin Selenium.
Una conexión WebSocket por sesión. Todas las operaciones se serializan a través de una cola de promesas. BC27 y BC28 son compatibles a nivel de protocolo.
LLM (Claude / Copilot / etc.)
|
v MCP (stdio or HTTP)
business-central-mcp
|
v WebSocket + JSON-RPC
BC Web Service Tier (BC27 / BC28)
|
v internal calls
BC Serverbc_open_page devuelve la página como una lista plana de secciones:
{
"pageContextId": "session:page:21:abc",
"pageType": "Card",
"caption": "Customer Card",
"isModal": false,
"sections": [
{ "sectionId": "header", "kind": "header", "fields": [...], "actions": [...] },
{ "sectionId": "factbox:Customer Statistics", "kind": "factbox", "fields": [...] }
]
}Cada sección tiene su propia forma de contenido:
Estilo tarjeta (
headeren páginas de tarjeta,factbox,requestPage):fields[]y (paraheader)actions[]Estilo lista (
linesen documentos,headeren páginas de lista, subpáginas repetidoras):rows[]ytotalRowCountMosaicos de indicadores (CardParts alojados en el Centro de roles):
cues[]con elname,value,groupCaption,synopsis,hasActionde cada mosaico. Profundiza conbc_execute_action { section, cue }.
bc_read_data devuelve una sola Section para el sectionId solicitado (por defecto "header"). El ID de sección para un cuadro de información o subpágina proviene de la respuesta de bc_open_page.
Reconexión automática con retrocesión exponencial tras la muerte de la sesión
Gestiona la retención de la ranura de autenticación NTLM de ~15 s de BC después de fallos
Descarta automáticamente los avisos de licencia en bases de datos nuevas
El tiempo de espera de invocación mata sesiones colgadas y activa la recuperación
Recuperación automática de
LogicalModalityViolationExceptiona mitad de sesión: reconcilia la pila modal y reintenta de forma transparente; recurre al restablecimiento de sesión cuando BC mantiene un diálogo de confirmación fijo
Archivos clave
Archivo | Propósito |
| Entrada |
| Entrada de transporte MCP HTTP |
| Registro de herramientas MCP, esquemas, manejador de solicitudes |
| Un manejador por herramienta ( |
| Lógica de negocio de página, datos, acciones, navegación, búsqueda |
| Transporte WebSocket, tipos de cable, capturas |
| Ciclo de vida de sesión, pila modal, reconexión |
| Manifiesto de extensión de Claude Desktop |
| Construye el artefacto |
| Construye y adjunta |
| Trabajo pendiente (OAuth, Cursor, asistente de inicio) |
Desarrollo
git clone https://github.com/SShadowS/business-central-mcp
cd business-central-mcp
npm install
npm run start:stdio-direct # Run from source
npm test # 284 unit + protocol tests
npm run test:integration # 111 integration tests against real BC (requires running BC server)Hoja de ruta
OAuth, soporte para Cursor, un asistente interactivo de init y algunas brechas de protocolo.
Consulta ROADMAP.md para la lista completa y las prioridades.
Autor: Torben Leth (sshadows@sshadows.dk) Licencia: MIT (ver LICENSE)
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.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI dialogue using various LLM models via AceDataCloud
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/Business-Central-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server