Skip to main content
Glama

MCP Server for Microsoft Business Central

by ZAPACEIG

MCP Server para Microsoft Business Central

Servidor MCP (Model Context Protocol) que permite integración con Microsoft Business Central a través de su API REST.

Arquitectura

Este servidor ahora usa SSE (Server-Sent Events) transport para hosting remoto, lo que permite:

  • Despliegue en plataformas cloud como Render, Vercel, Heroku
  • Conexión desde cualquier cliente MCP remoto
  • Múltiples sesiones concurrentes
  • Escalabilidad horizontal

Características

  • Gestión de Clientes: Obtener, crear, actualizar y eliminar clientes
  • Gestión de Productos: Obtener, crear, actualizar y eliminar productos/artículos
  • Pedidos de Venta: Crear pedidos de venta con líneas de detalle
  • API Genérica: Interactuar con cualquier recurso de Business Central
  • SSE Transport: Hosting remoto con Server-Sent Events
  • Esquemas dinámicos: Obtener información de esquemas de recursos
  • Filtros y paginación: Búsquedas avanzadas con OData

Configuración de Variables de Entorno

Antes de usar el servidor, debes configurar las siguientes variables de entorno:

OAUTH_URL=https://login.microsoftonline.com/your-tenant-id/oauth2/v2.0/token CLIENT_ID=your-application-client-id CLIENT_SECRET=your-application-client-secret SCOPE=https://api.businesscentral.dynamics.com/.default BC_BASE_URL=https://api.businesscentral.dynamics.com/v2.0/your-tenant-id/your-environment

Despliegue en Render

1. Preparar el repositorio

Asegúrate de que tu repositorio tenga todos los archivos necesarios:

  • server.py (servidor SSE)
  • bc_client.py (cliente Business Central)
  • requirements.txt (dependencias)
  • Procfile (configuración de Render)

2. Crear servicio en Render

  1. Ve a Render.com y crea una cuenta
  2. Conecta tu repositorio de GitHub
  3. Crea un nuevo Web Service
  4. Configura los siguientes parámetros:Build Settings:
    • Build Command: pip install -r requirements.txt
    • Start Command: uvicorn server:app --host 0.0.0.0 --port $PORT

    Environment Variables: Añade todas las variables de entorno de Business Central:

    OAUTH_URL=https://login.microsoftonline.com/your-tenant-id/oauth2/v2.0/token CLIENT_ID=your-application-client-id CLIENT_SECRET=your-application-client-secret SCOPE=https://api.businesscentral.dynamics.com/.default BC_BASE_URL=https://api.businesscentral.dynamics.com/v2.0/your-tenant-id/your-environment
  5. Deploy el servicio

3. Verificar el despliegue

Una vez desplegado, deberías poder acceder a:

  • https://your-app.onrender.com/ - Health check
  • https://your-app.onrender.com/health - Estado del servidor
  • https://your-app.onrender.com/sse - Endpoint SSE para clientes MCP

Conectar con Claude Desktop

Para conectar Claude Desktop a tu servidor remoto, necesitarás configurar el claude_desktop_config.json:

{ "mcpServers": { "mcp-server-bc": { "command": "npx", "args": ["@modelcontextprotocol/server-sse", "https://your-app.onrender.com"] } } }

Nota: Actualmente, Claude Desktop principalmente soporta conexiones stdio locales. Para conexiones SSE remotas, podrías necesitar usar otros clientes MCP o proxies.

Uso Local (Desarrollo)

Para desarrollo local, puedes ejecutar el servidor:

# Instalar dependencias pip install -r requirements.txt # Configurar variables de entorno # (crear archivo .env o exportar variables) # Ejecutar servidor uvicorn server:app --reload --port 8000

El servidor estará disponible en http://localhost:8000

Herramientas Disponibles

1. Gestión de Clientes

  • get_customers() - Obtener lista de clientes
  • list_resource_items("customers", ...) - Clientes con filtros
  • create_resource_item("customers", data) - Crear cliente
  • update_resource_item("customers", id, data) - Actualizar cliente

2. Gestión de Productos

  • get_items() - Obtener lista de productos
  • list_resource_items("items", ...) - Productos con filtros
  • create_resource_item("items", data) - Crear producto
  • update_resource_item("items", id, data) - Actualizar producto

3. Pedidos de Venta

  • create_sales_order(customer, date, ...) - Crear pedido completo
  • list_resource_items("salesOrders", ...) - Listar pedidos

4. API Genérica

  • get_resource_schema(resource) - Obtener esquema de cualquier recurso
  • list_resource_items(resource, filter, top, skip) - Listar elementos
  • find_items_by_field(resource, field, value) - Buscar por campo
  • create_resource_item(resource, data) - Crear elemento
  • update_resource_item(resource, id, data) - Actualizar elemento
  • delete_resource_item(resource, id) - Eliminar elemento

5. Información del Servidor

  • get_server_info() - Estado y configuración del servidor

Arquitectura del Proyecto

mcp-server-bc/ ├── server.py # Servidor FastAPI con SSE transport ├── bc_client.py # Cliente para Business Central API ├── requirements.txt # Dependencias Python ├── Procfile # Configuración para Render ├── pyproject.toml # Metadatos del proyecto └── README.md # Esta documentación

Diferencias entre Stdio y SSE

Stdio Transport (Local)

  • Cliente y servidor en la misma máquina
  • Comunicación a través de stdin/stdout
  • Ideal para desarrollo y uso personal
  • Claude Desktop lo maneja automáticamente

SSE Transport (Remoto)

  • Cliente y servidor en máquinas diferentes
  • Comunicación HTTP con Server-Sent Events
  • Ideal para hosting cloud y múltiples usuarios
  • Requiere endpoints /sse y /messages

Troubleshooting

Error de conexión en Render

  1. Verifica que todas las variables de entorno estén configuradas
  2. Revisa los logs de Render para errores específicos
  3. Asegúrate de que el puerto esté correctamente configurado ($PORT)

Error de autenticación Business Central

  1. Verifica que CLIENT_ID y CLIENT_SECRET sean correctos
  2. Confirma que el SCOPE incluya .default
  3. Revisa que la URL de tenant sea correcta

Claude Desktop no se conecta

  1. Claude Desktop principalmente soporta stdio, no SSE
  2. Considera usar otros clientes MCP que soporten SSE
  3. O usa un proxy/gateway para convertir stdio a SSE

Próximos pasos

  • Implementar autenticación para el servidor SSE
  • Añadir más endpoints específicos de Business Central
  • Crear cliente MCP personalizado para SSE
  • Añadir logging y monitoreo avanzado
  • Implementar cache para mejorar rendimiento
-
security - not tested
F
license - not found
-
quality - not tested

Server that enables integration with Microsoft Business Central through its REST API, providing functionality for customer and product management, sales orders, and generic API interactions.

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A server that provides standardized development rules and context for Business Central projects, optimized for use with Cursor editor.
    Last updated -
    JavaScript
    MIT License
  • -
    security
    A
    license
    -
    quality
    Provides database interaction and business intelligence capabilities, enabling users to run SQL queries, analyze business data, and automatically generate business insight memos for Microsoft SQL Server databases.
    Last updated -
    29
    Python
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A server that provides integration with PayPal's APIs, enabling seamless interaction with payment processing, invoicing, subscription management, and business operations through a standardized interface.
    Last updated -
    TypeScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    A server that enables AI models to interact with Confluence Data Center through REST API, providing operations like searching, reading, creating, updating, and deleting pages.
    Last updated -
    1
    Python

View all related MCP servers

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/ZAPACEIG/mcp-server-bc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server