Skip to main content
Glama
javiarmesto

Business Central MCP Server

by javiarmesto
README.md7.97 kB
# 🤖 Conector Personalizado para Copilot Studio - Business Central MCP Esta carpeta contiene todos los archivos necesarios para crear y configurar un conector personalizado en Microsoft Copilot Studio que se integre con nuestro servidor MCP de Business Central. ## 📋 TL;DR - **Objetivo**: Conectar Copilot Studio con Business Central vía protocolo MCP Streamable - **Tipo**: Conector MCP (Model Context Protocol) con transporte Streamable - **URL Base**: https://mcp-bc-javi-chb7bue4evbkeyb0.westeurope-01.azurewebsites.net - **Protocolo**: `x-ms-agentic-protocol: mcp-streamable-1.0` (Recomendado por Microsoft) - **Autenticación**: API Key opcional para producción - **Herramientas**: 6 herramientas MCP auto-detectadas para agentes conversacionales --- ## 🎯 ¿Qué es un Conector MCP? Un **conector MCP** (Model Context Protocol) en Copilot Studio permite que tus agentes conversacionales se conecten a servidores MCP externos y ejecuten herramientas específicas de negocio. En nuestro caso: - **Input**: Preguntas del usuario en lenguaje natural - **Processing**: Copilot Studio interpreta la intención y llama herramientas MCP - **MCP Call**: El conector ejecuta herramientas en el servidor Business Central MCP - **Output**: Respuesta estructurada al usuario ### Ventajas del enfoque MCP ✅ **Protocolo estándar**: Implementa Model Context Protocol oficial ✅ **Auto-detección**: Herramientas detectadas automáticamente del servidor ✅ **Streamable transport**: Protocolo recomendado por Microsoft ✅ **Escalable**: Servidor desplegado en Azure App Service ✅ **JSON-RPC**: Comunicación estructurada y eficiente --- ## 📁 Archivos en esta Carpeta | Archivo | Descripción | |---------|-------------| | `business-central-power-platform.yaml` | Esquema YAML optimizado para Power Platform (Recomendado) | | `business-central-mcp-streamable.yaml` | Esquema YAML MCP Streamable puro (Avanzado) | | `business-central-mcp-connector.json` | Definición OpenAPI tradicional (referencia) | | `connector-setup-guide.md` | Guía paso a paso para crear el conector MCP | | `copilot-studio-actions.md` | Ejemplos de acciones para usar en agentes | | `testing-scenarios.md` | Casos de prueba y validación | | `microsoft-compliance-checklist.md` | Verificación de cumplimiento con estándares Microsoft | --- ## 🚀 Proceso de Implementación MCP ### 1. **Preparar el Conector MCP** 📝 - Usar esquema `business-central-mcp-streamable.yaml` (protocolo oficial) - Configurar transporte MCP Streamable con `x-ms-agentic-protocol: mcp-streamable-1.0` - Validar herramientas disponibles en el servidor MCP ### 2. **Crear en Copilot Studio** 🔧 - Seguir proceso específico para conectores MCP en Power Platform - Importar definición YAML MCP Streamable - Configurar endpoint único `/mcp` para comunicación JSON-RPC - Probar herramientas MCP básicas ### 3. **Configurar Agente** 🤖 - Crear acciones conversacionales usando herramientas MCP - Mapear parámetros de herramientas MCP a inputs del usuario - Configurar respuestas naturales desde datos de Business Central ### 4. **Testing y Validación** ✅ - Casos de prueba completos para herramientas MCP - Validación de protocolo JSON-RPC - Optimización de performance y timeouts --- ## 🛠️ Herramientas MCP Disponibles Nuestro servidor MCP expone las siguientes herramientas listas para usar en Copilot Studio: ### 📊 **Consultas de Datos** | Operación | Endpoint | Descripción | Parámetros | |-----------|----------|-------------|------------| | **Listar Clientes** | `GET /customers` | Obtiene lista de clientes | `limit` (opcional) | | **Detalle Cliente** | `GET /customers/{id}` | Información específica de un cliente | `customer_id` | | **Listar Artículos** | `GET /items` | Catálogo de productos/servicios | `limit` (opcional) | | **Órdenes de Venta** | `GET /orders` | Lista de órdenes de venta | `limit` (opcional) | ### ✏️ **Operaciones de Escritura** | Operación | Endpoint | Descripción | Parámetros | |-----------|----------|-------------|------------| | **Crear Cliente** | `POST /customers` | Registra nuevo cliente | `displayName`, `email`, etc. | ### 🏥 **Utilidades** | Operación | Endpoint | Descripción | Parámetros | |-----------|----------|-------------|------------| | **Health Check** | `GET /health` | Verifica estado del servidor | Ninguno | --- ## 💬 Ejemplos de Conversación ### Consulta de Cliente ``` 👤 Usuario: "¿Puedes buscar información del cliente Fabrikam?" 🤖 Copilot: "Voy a buscar información sobre Fabrikam en Business Central..." → [Llama a GET /customers?limit=10] → [Busca coincidencias con "Fabrikam"] 🤖 Copilot: "Encontré el cliente Fabrikam Inc.: - ID: 10000 - Email: contact@fabrikam.com - Ciudad: Seattle, WA - Estado: Activo" ``` ### Creación de Cliente ``` 👤 Usuario: "Necesito registrar un nuevo cliente llamado TechCorp" 🤖 Copilot: "Te ayudo a crear el cliente TechCorp. ¿Puedes proporcionarme: - Email de contacto - Dirección - Teléfono?" 👤 Usuario: "Email: info@techcorp.com, ubicados en Madrid" 🤖 Copilot: → [Llama a POST /customers con los datos] "✅ Cliente TechCorp creado exitosamente: - ID: 50001 - Nombre: TechCorp - Email: info@techcorp.com - Ciudad: Madrid" ``` ### Consulta de Inventario ``` 👤 Usuario: "¿Qué productos tenemos disponibles?" 🤖 Copilot: → [Llama a GET /items?limit=10] "Aquí tienes los productos principales: 📦 **Productos Físicos:** - Laptop Business Pro - €1,299 - Office Chair Deluxe - €450 💼 **Servicios:** - Consultoría IT - €120/hora - Soporte Premium - €200/mes" ``` --- ## 🔐 Configuración de Seguridad ### Opciones de Autenticación 1. **No Authentication** (Desarrollo/Testing) - Ideal para pruebas iniciales - Sin configuración adicional - No recomendado para producción 2. **API Key** (Recomendado) - Header personalizado: `X-API-Key` - Configurable en Azure App Service - Balance entre seguridad y simplicidad 3. **OAuth 2.0** (Máxima Seguridad) - Integración con Azure AD - Tokens de acceso con expiración - Ideal para entornos corporativos ### Implementación de API Key Si decides usar API Key, modifica el servidor para validar el header: ```python from fastapi import Header, HTTPException @app.middleware("http") async def validate_api_key(request: Request, call_next): if request.url.path not in ["/health", "/docs", "/openapi.json"]: api_key = request.headers.get("X-API-Key") expected_key = os.getenv("API_KEY") if not api_key or api_key != expected_key: raise HTTPException(status_code=401, detail="Invalid API Key") response = await call_next(request) return response ``` --- ## 🎯 Próximos Pasos 1. **📋 Revisar la [Guía de Configuración](./connector-setup-guide.md)** 2. **🔧 Implementar el conector en Copilot Studio** 3. **🤖 Crear las [Acciones Personalizadas](./copilot-studio-actions.md)** 4. **✅ Ejecutar [Casos de Prueba](./testing-scenarios.md)** 5. **🚀 Desplegar en producción** --- ## 📚 Referencias | Recurso | URL | |---------|-----| | Copilot Studio Connectors | https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-custom-connectors | | OpenAPI Specification | https://swagger.io/specification/ | | Power Platform Connectors | https://learn.microsoft.com/en-us/connectors/ | | Business Central APIs | https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/ | --- **🎉 ¡Vamos a crear un agente conversacional que hable directamente con Business Central!** Para empezar, sigue la guía de configuración paso a paso.

Latest Blog Posts

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/javiarmesto/Lab3_1_MCP_BusinessCentral'

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