MCP_BusinessCentral - Servidor Model Context Protocol 🚀
Este proyecto implementa un servidor MCP para Microsoft Business Central, usando FastMCP y FastAPI, integrable con Claude Desktop y otros clientes AI.
🌐 Servidor Online Disponible
🎉 El servidor está desplegado y operativo en Azure App Service:
URL: https://mcp-bc-javi-chb7bue4evbkeyb0.westeurope-01.azurewebsites.net
Documentación API: https://mcp-bc-javi-chb7bue4evbkeyb0.westeurope-01.azurewebsites.net/docs
Estado: ✅ 100% funcional con datos reales de Business Central
Endpoints disponibles: GET /customers, /items, /orders, POST /customers
📋 Para usar el servidor desplegado: Consulta el archivo test-mcp-api.http con ejemplos de todas las operaciones.
📋 ¿Qué es MCP?
El Model Context Protocol (MCP) es un estándar abierto que permite a clientes AI acceder a herramientas, datos y servicios externos de forma segura y estructurada. MCP define una arquitectura cliente-servidor donde:
MCP Host: Cliente AI (Claude, Copilot, etc.)
MCP Client: Conector MCP en el host
MCP Server: Este proyecto (Python) expone herramientas y lógica de negocio
Transporte: JSON-RPC sobre stdin/stdout (local) o HTTP/SSE (remoto)
Más información: MCP servers en Microsoft Learn
🔒 Autenticación y Seguridad
Se recomienda usar Microsoft Entra ID (Azure AD) y OAuth2 para entornos de producción.
Consulta la guía de autenticación para Business Central.
Ejemplo: Autenticación OAuth2 con Entra ID
Más información: Guía de autenticación
⚠️ Manejo de límites y errores
Business Central impone límites de uso (rate limits) en sus APIs. Si recibes errores 429 (Too Many Requests) o 504 (Gateway Timeout), implementa lógica de reintentos y backoff.
Más información: Límites de API en Business Central.
Ejemplo: Manejo de errores 429 y 504 en llamadas a la API
Más información: Límites de API en Business Central
🏅 Buenas prácticas de integración
Usa siempre los endpoints REST oficiales de Business Central para la integración.
Desacopla la lógica de negocio del transporte MCP.
Documenta claramente las herramientas expuestas y sus parámetros siguiendo el estándar MCP.
Consulta la documentación de APIs REST de Business Central.
🏗️ Estructura del Proyecto
🎯 Servidores y APIs Implementados
1. BusinessCentralMCP.py - Servidor MCP (JSON-RPC)
Expone herramientas para interactuar con Business Central vía JSON-RPC:
get_customers(limit): Lista clientes
get_customer_details(customer_id): Detalle de un cliente
get_items(limit): Lista artículos
get_sales_orders(limit): Lista órdenes de venta
create_customer(...): Crea un nuevo cliente
2. http_server.py - API REST (FastAPI)
Expone los mismos métodos anteriores vía HTTP REST, con documentación Swagger/OpenAPI.
3. setup_guide.py - Validación de entorno
Script para comprobar variables de entorno y conectividad con Azure AD y Business Central.
🛠️ Tecnologías Utilizadas
FastMCP: Framework para servidores MCP (JSON-RPC)
FastAPI: API REST moderna con documentación automática
httpx: Cliente HTTP asíncrono
Pydantic: Validación y serialización de datos
python-dotenv: Gestión de variables de entorno
🚀 Instalación y Puesta en Marcha
💻 Entorno Local
1. Crear entorno virtual
2. Instalar dependencias
3. Validar entorno y credenciales
4. Lanzar el servidor MCP (JSON-RPC)
5. Lanzar la API REST (FastAPI)
Accede a la documentación interactiva en: http://localhost:8000/docs
☁️ Despliegue en Azure App Service
¿Quieres el servidor disponible online? Consulta la Guía Completa de Despliegue que incluye:
Proceso paso a paso para Azure App Service
Solución a todos los problemas encontrados
Configuración de variables de entorno
Scripts de automatización
Suite de testing completa
Resultado: Servidor 100% operativo en Azure con integración real a Business Central.
🧪 Testing del Servidor Desplegado
El archivo test-mcp-api.http contiene una suite completa de tests para validar todas las funcionalidades:
Usar REST Client extension de VS Code para ejecutar los tests directamente desde el editor.
🔧 Integración con Claude Desktop
Localiza el archivo de configuración de Claude Desktop:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Añade una entrada para el servidor MCP de Business Central, por ejemplo:
{ "mcpServers": { "businesscentral-mcp": { "command": "C:/ruta/completa/.venv/Scripts/python.exe", "args": ["-m", "bc_server.BusinessCentralMCP"] } } }Reinicia Claude Desktop para que detecte el nuevo servidor MCP.
🛠️ Herramientas Disponibles (BusinessCentralMCP)
Herramienta | Descripción | Parámetros principales |
get_customers | Lista clientes de Business Central | limit (int) |
get_customer_details | Detalle de un cliente por ID | customer_id (str) |
get_items | Lista artículos | limit (int) |
get_sales_orders | Lista órdenes de venta | limit (int) |
create_customer | Crea un nuevo cliente | displayName, email, ... (ver código) |
Consulta la documentación Swagger en /docs si usas la API REST.
🧪 Testing y Desarrollo
Claude Desktop: Configura el archivo de Claude Desktop y reinicia para probar las herramientas MCP.
Modo desarrollo: Usa los scripts de la carpeta
bc_serverpara pruebas y debugging.API REST: Ejecuta
uvicorn bc_server.http_server:app --reloady prueba los endpoints enhttp://localhost:8000/docs.VS Code Task: Usa la tarea "Run Python Script" para lanzar scripts rápidamente.
🎯 Casos de Uso Demostrados
Integración MCP con Business Central
Exposición de datos de clientes, artículos y órdenes
Creación de clientes desde herramientas AI
API REST y JSON-RPC para integración flexible
📚 Referencias oficiales y recursos útiles
📖 Documentación del Proyecto
Recurso | Descripción |
Proceso completo para llevar el servidor a producción | |
Validación completa de endpoints con REST Client | |
Servidor JSON-RPC para integración con AI clients | |
Endpoints HTTP con documentación OpenAPI |
🌐 Enlaces Oficiales de Microsoft
Recurso | Enlace |
MCP servers en Microsoft Learn | https://learn.microsoft.com/en-us/azure/api-management/export-rest-mcp-server#about-mcp-servers |
APIs REST de Business Central | https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/api-overview |
Autenticación y apps conectadas | |
Límites de API | |
Documentación MCP Oficial | |
FastMCP GitHub | |
Claude Desktop | |
Pydantic Docs | |
Blog TechSphereDynamics |
¡Desarrollado con visión y buen rollo! 😉
Para cualquier duda, revisa los comentarios en el código o consulta la documentación oficial de MCP.