Skip to main content
Glama
javiarmesto

Business Central MCP Server

by javiarmesto
openapi-error-solution.md4.8 kB
# 🔧 Solución al Error de Validación OpenAPI ## 🚨 Problema Identificado Al intentar crear el conector personalizado en Copilot Studio, encontraste este error: ```json { "error": { "code": "ValidationError", "message": "One or more fields contain incorrect values:", "details": [ { "code": "ValidationError", "target": "representation", "message": "Parsing error(s): Operation can have only one body parameter. Path: paths['/{connectionId}/mcp'].post.parameters[3]" } ] } } ``` ## 🎯 Causa Raíz **OpenAPI 2.0 Specification Violation**: El esquema YAML original tenía múltiples parámetros en el cuerpo de la operación POST, lo cual viola la especificación OpenAPI 2.0 que usa Power Platform. ### Problemas Específicos: 1. **Múltiples Body Parameters**: OpenAPI 2.0 solo permite UN parámetro de tipo `body` por operación 2. **Extensiones MCP**: Algunas extensiones específicas MCP no son reconocidas por el validador de Power Platform 3. **Estructura Path**: El path original `/mcp` necesitaba el parámetro `{connectionId}` requerido por Power Platform ## ✅ Solución Implementada ### 1. Nuevo Esquema Optimizado **Archivo**: `business-central-power-platform.yaml` - ✅ **Un solo parámetro body**: Cumple con OpenAPI 2.0 - ✅ **Path compatible**: Incluye `{connectionId}` requerido por Power Platform - ✅ **Estructura MCP**: Mantiene funcionalidad JSON-RPC para MCP - ✅ **Metadatos Power Platform**: Incluye extensiones `x-ms-*` apropiadas ### 2. Estructura Corregida **Antes (Problemático)**: ```yaml parameters: - name: mcp-request in: body - name: other-param # ❌ SEGUNDO BODY PARAMETER in: body ``` **Después (Solucionado)**: ```yaml parameters: - name: connectionId in: path required: true - name: mcpRequest # ✅ UN SOLO BODY PARAMETER in: body required: true ``` ### 3. JSON-RPC Encapsulado El esquema ahora encapsula correctamente las solicitudes MCP dentro de un solo objeto: ```json { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_customers", "arguments": {"limit": 10} }, "id": "req-001" } ``` ## 🔄 Cómo Proceder ### Opción A: Usar Esquema Optimizado (Recomendado) 1. **Archivo a usar**: `business-central-power-platform.yaml` 2. **Ventajas**: - ✅ Compatible 100% con Power Platform - ✅ Mantiene funcionalidad MCP completa - ✅ Pasa validación OpenAPI 2.0 - ✅ Incluye metadatos apropiados ### Opción B: Esquema MCP Puro (Solo si necesitas extensiones específicas) 1. **Archivo**: `business-central-mcp-streamable.yaml` (corregido) 2. **Uso**: Solo si necesitas extensiones MCP específicas no soportadas por Power Platform 3. **Nota**: Puede requerir ajustes adicionales ## 📋 Pasos para Implementar ### 1. Eliminar Conector Anterior (Si existe) ``` Power Platform Admin Center > Connectors > Eliminar "Business Central MCP" ``` ### 2. Crear Nuevo Conector 1. Usar `business-central-power-platform.yaml` 2. Seguir `connector-setup-guide.md` actualizado 3. Validar que no hay errores de importación ### 3. Probar Funcionalidad ```json POST /{connectionId}/mcp { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "health_check", "arguments": {} }, "id": "test-001" } ``` ## 🎯 Lecciones Aprendidas ### Validación Power Platform vs MCP | Aspecto | Power Platform | MCP Puro | |---------|----------------|----------| | **OpenAPI Version** | 2.0 Estricto | Flexible | | **Body Parameters** | Máximo 1 | Sin límite | | **Extensiones** | Solo `x-ms-*` | Cualquiera | | **Path Structure** | Requiere `{connectionId}` | Libre | ### Mejores Prácticas 1. **Siempre validar** esquemas OpenAPI con herramientas de Power Platform antes de importar 2. **Usar un solo body parameter** por operación 3. **Incluir metadatos** `x-ms-*` para mejor integración con Copilot Studio 4. **Mantener compatibilidad** OpenAPI 2.0 para máxima compatibilidad ## 🚀 Resultado Esperado Con el esquema corregido deberías poder: - ✅ Importar sin errores de validación - ✅ Conectar con el servidor MCP desplegado - ✅ Ejecutar herramientas MCP desde Copilot Studio - ✅ Crear agentes conversacionales funcionales ## 🔗 Referencias - **Archivo solucionado**: `business-central-power-platform.yaml` - **Guía actualizada**: `connector-setup-guide.md` (sección troubleshooting) - **Microsoft Learn**: [Custom Connectors OpenAPI](https://learn.microsoft.com/en-us/connectors/custom-connectors/define-openapi-definition) - **OpenAPI 2.0 Spec**: [Swagger 2.0 Specification](https://swagger.io/specification/v2/) --- **🎉 ¡Error resuelto!** Ahora puedes continuar con la creación del conector usando el esquema optimizado para Power Platform.

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