Skip to main content
Glama
masoniqbal777

MCP X++ Server

Servidor MCP X++

Un servidor del Model Context Protocol (MCP) para el desarrollo de Microsoft Dynamics 365 Finance & Operations. Esta herramienta permite la creación, modificación y análisis de objetos D365 mediante el estándar MCP, lo que posibilita la integración con diversos entornos de desarrollo.

Fecha: 18 de septiembre de 2025
Estado: Funcional con integración del servicio VS2022 y creación de formularios mejorada

Actualizaciones recientes ✨

19 de septiembre de 2025 - Función de eliminación segura de objetos:

  • 🗑️ NUEVA herramienta delete_xpp_object: Eliminación segura de objetos D365 con validación de dependencias y soporte de cascada

  • 🛡️ Protección de dependencias: Evita la eliminación si otros objetos dependen del objetivo, impidiendo cambios que rompan la funcionalidad

  • 🔄 Coherencia de caché: Actualización automática del índice de búsqueda tras eliminaciones correctas

  • Alto rendimiento: Integración directa con el proveedor de metadatos mediante ISingleKeyedMetadataProvider.Delete

  • 🌲 Eliminación en cascada: Eliminación opcional de objetos secundarios (partes de formularios, relaciones de tablas, etc.)

  • Pruebas exhaustivas: Ciclo completo de validación de creación/eliminación en todos los tipos de objetos

18 de septiembre de 2025 - Modificaciones de matrices y mejoras en la creación de formularios:

  • 🚀 NUEVAS modificaciones solo de matriz: execute_object_modification ahora utiliza exclusivamente el formato de lote para operaciones coherentes

  • 🔄 Procesamiento por lotes obligatorio: Las operaciones individuales usan una matriz con un solo elemento; no más llamadas separadas consecutivas

  • 📊 Seguimiento de respuestas mejorado: Informes de éxito/error por operación con tiempos detallados y mensajes de error

  • 📋 Documentación de prácticas recomendadas: Instrucciones claras para agrupar todas las modificaciones del mismo objeto en una sola llamada

  • 🎯 NUEVA herramienta create_form: Creación especializada de formularios con soporte de patrones e integración de orígenes de datos

  • 🔧 Patrón DetailsMaster corregido: Se resolvieron los problemas de validación mediante la creación inteligente de controles de campo

  • 🗄️ Soporte mejorado de orígenes de datos: Gestión flexible de orígenes de datos (matrices, cadenas, valores separados por comas)

  • 📋 Descubrimiento de patrones: 36 patrones de formularios filtrados con descripciones y requisitos

  • Validación de patrones: Creación automática de controles de campo para los patrones que los requieren

Descripción general

Este servidor MCP proporciona capacidades de desarrollo para D365 F&O, entre las que se incluyen:

  • Creación de objetos: Compatibilidad con clases, tablas, formularios, enumeraciones y más de 544 tipos de objetos D365

  • Creación de formularios: ✨ Mejorada - Creación especializada de formularios con validación de patrones e integración de orígenes de datos

  • Eliminación de objetos: ✨ NUEVA - Eliminación segura de objetos con validación de dependencias y soporte de cascada

  • Modificación de objetos: Añade métodos, campos y otros componentes a objetos existentes

  • Inspección de objetos: Analiza objetos D365 y extrae código fuente X++

  • Búsqueda en el código base: Explora y busca en los códigos base de D365 con coincidencia de patrones

  • Protocolo MCP: Compatible con Claude Desktop, VS Code y otros clientes MCP

Arquitectura

El sistema consta de dos componentes principales que se comunican mediante canalizaciones con nombre de Windows (Windows Named Pipes):

Servidor MCP X++ (Node.js/TypeScript)

  • Implementa el Model Context Protocol (STDIO)

  • Gestiona las operaciones de creación, modificación y búsqueda de objetos

  • Proporciona exploración de archivos e indexación del código base

  • Compatible con clientes MCP como Claude Desktop y VS Code

Servicio de metadatos D365 (C# .NET 4.8)

  • Se integra con los ensamblados de Microsoft D365

  • Gestiona la creación y modificación de objetos mediante las API de VS2022

  • Proporciona reflexión dinámica para el descubrimiento de objetos en tiempo de ejecución

  • Se comunica mediante la canalización con nombre: mcp-xpp-d365-service

La arquitectura permite el desarrollo de D365 desde varios clientes compatibles con MCP, manteniendo al mismo tiempo la compatibilidad con los flujos de trabajo de desarrollo D365 existentes.

Herramientas disponibles

El servidor proporciona 10 herramientas especializadas para el desarrollo de D365:

  1. create_xpp_object - Crea objetos D365 (clases, tablas, enumeraciones, etc.) - Nota: use create_form para formularios

  2. create_form - ✨ NUEVA - Creación especializada de formularios con soporte de patrones e integración de orígenes de datos

  3. delete_xpp_object - ✨ NUEVA - Eliminación segura de objetos D365 con validación de dependencias y coherencia de caché

  4. execute_object_modification - ✨ MEJORADA - Modificación de objetos basada en matrices con procesamiento por lotes - PRÁCTICA RECOMENDADA: Agrupe todas las modificaciones del mismo objeto

  5. discover_modification_capabilities - Explora los métodos de modificación disponibles

  6. find_xpp_object - Busca objetos específicos por nombre/tipo

  7. search_objects_pattern - Búsqueda de patrones con compatibilidad de comodines

  8. inspect_xpp_object - Análisis de objetos con extracción de código fuente X++

  9. get_current_config - Configuración y estado del sistema

  10. build_object_index - Gestión de índices para el rendimiento de búsqueda

Requisitos previos

  • Visual Studio 2022 (Community, Professional o Enterprise)

  • Herramientas de desarrollo de Dynamics 365 para Visual Studio 2022

  • Node.js (se recomienda la última versión LTS)

  • .NET Framework 4.8 (normalmente incluido con Windows)

Instalación

  1. Clone el repositorio

  2. Instale las dependencias de Node.js: npm install

  3. Ejecute la configuración para ajustar la integración con VS2022: .\tools\build-and-run.ps1 -Action setup

  4. Compile el proyecto: .\tools\build-and-run.ps1 -Action build

Uso

Inicio del servidor

Ejecute el servidor MCP mediante:

node build/index.js

El servidor detecta automáticamente las rutas de D365 desde su instalación de VS2022. Para la configuración manual, use:

node build/index.js --xpp-path "C:\path\to\PackagesLocalDirectory"

Configuración del cliente MCP

VS Code

Configure en .vscode/mcp.json:

{
  "servers": {
    "mcp-xpp-server": {
      "command": "node",
      "args": ["./build/index.js"],
      "cwd": "${workspaceFolder}",
      "type": "stdio"
    }
  }
}

Claude Desktop

Añada al archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "mcp-xpp-server": {
      "command": "node",
      "args": ["path/to/mcp_xpp/build/index.js"]
    }
  }
}

Referencia de herramientas

Creación de objetos

create_xpp_object

Crea objetos D365 F&O mediante la integración del servicio VS2022.

⚠️ Importante: Para crear formularios, use la herramienta dedicada create_form, ya que ofrece soporte especializado de patrones e integración de orígenes de datos.

Parámetros:

  • objectName (cadena) - Nombre del objeto D365

  • objectType (cadena) - Tipo de objeto (AxClass, AxTable, AxEnum, etc.) - Excluye AxForm

  • layer (cadena, opcional) - Capa de aplicación (usr, cus, var)

  • outputPath (cadena, opcional) - Directorio de salida (predeterminado: "Models")

  • publisher (cadena, opcional) - Nombre de la empresa (predeterminado: "YourCompany")

  • version (cadena, opcional) - Número de versión (predeterminado: "1.0.0.0")

  • dependencies (matriz, opcional) - Dependencias del modelo

  • properties (objeto, opcional) - Configuración específica del objeto

Ejemplo:

create_xpp_object({
  "objectName": "MyCustomClass",
  "objectType": "AxClass",
  "layer": "usr"
})

create_formNUEVA

Herramienta especializada para crear formularios D365 con soporte avanzado de patrones e integración de orígenes de datos. Esta herramienta combina la creación de formularios y el descubrimiento de patrones en una única interfaz.

Parámetros:

  • mode (cadena, obligatorio) - Modo de operación:

    • "create" - Crea un nuevo formulario con patrones y orígenes de datos

    • "list_patterns" - Descubre los patrones de formularios D365 disponibles

  • formName (cadena, opcional) - Nombre del formulario (obligatorio cuando mode='create')

  • patternName (cadena, opcional) - Patrón de formulario D365 que se aplicará (p. ej., 'SimpleListDetails', 'DetailsMaster', 'Dialog')

  • patternVersion (cadena, opcional) - Versión del patrón (predeterminado: 'UX7 1.0')

  • dataSources (matriz|cadena, opcional) - Nombres de tablas para los orígenes de datos del formulario

  • modelName (cadena, opcional) - Nombre del modelo/paquete D365 (predeterminado: 'ApplicationSuite')

Características principales:

  • 🎯 Consciente de patrones: Añade automáticamente controles de campo cuando los patrones lo requieren (p. ej., DetailsMaster)

  • 🗄️ Orígenes de datos flexibles: Admite matrices, cadenas individuales o cadenas separadas por comas

  • 🔍 Descubrimiento de patrones: Enumera los más de 36 patrones de formularios D365 disponibles con sus descripciones

  • Validación mejorada: Resuelve los problemas de validación de patrones mediante la creación inteligente de controles de campo

Ejemplos:

// Discover available patterns
create_form({"mode": "list_patterns"})

// Create simple list form with datasource
create_form({
  "mode": "create",
  "formName": "MyCustomerListForm", 
  "patternName": "SimpleListDetails",
  "dataSources": ["CustTable"]
})

// Create DetailsMaster form with multiple datasources
create_form({
  "mode": "create",
  "formName": "MySalesOrderForm",
  "patternName": "DetailsMaster",
  "patternVersion": "UX7 1.0", 
  "dataSources": ["SalesTable", "SalesLine", "CustTable"],
  "modelName": "MyCustomModel"
})

// Create dialog form without datasources
create_form({
  "mode": "create",
  "formName": "MyConfirmationDialog",
  "patternName": "Dialog"
})

Notas técnicas:

  • Los patrones como DetailsMaster, SimpleListDetails y ListPage se mejoran automáticamente con controles de campo (RecId, Name, Description, Code) cuando se proporcionan orígenes de datos

  • Se ha corregido la validación de patrones: los formularios se pueden crear con o sin orígenes de datos según los requisitos del patrón

  • La herramienta usa la integración directa del servicio VS2022 para una compatibilidad óptima con D365

delete_xpp_objectNUEVA

Elimina de forma segura objetos D365 F&O con una validación exhaustiva de dependencias y coherencia de caché. Esta herramienta evita cambios que rompan la funcionalidad al validar las dependencias antes de la eliminación.

Parámetros:

  • objectName (cadena, obligatorio) - Nombre del objeto D365 que se va a eliminar

  • objectType (cadena, obligatorio) - Tipo de objeto D365 (AxClass, AxTable, AxForm, AxEnum, etc.)

  • cascadeDelete (booleano, opcional) - Elimina también los objetos dependientes (predeterminado: false)

Características principales:

  • 🛡️ Validación de dependencias: Evita la eliminación si otros objetos dependen del objetivo

  • 🗑️ Eliminación segura: Usa ISingleKeyedMetadataProvider.Delete de D365 para una limpieza adecuada

  • 🔄 Coherencia de caché: Actualiza automáticamente el índice de búsqueda tras una eliminación correcta

  • Rendimiento rápido: Integración directa con el proveedor de metadatos para una velocidad óptima

  • 🌲 Soporte de cascada: Eliminación opcional de objetos secundarios (formularios con partes/controles, etc.)

Ejemplos:

// Delete a custom class
delete_xpp_object({
  "objectName": "MyCustomClass",
  "objectType": "AxClass"
})

// Delete a table with cascade (removes dependent field groups, relations, etc.)
delete_xpp_object({
  "objectName": "MyTestTable", 
  "objectType": "AxTable",
  "cascadeDelete": true
})

// Delete a form (will fail if dependencies exist without cascade)
delete_xpp_object({
  "objectName": "MyCustomForm",
  "objectType": "AxForm"
})

Formato de respuesta:

{
  "success": true,
  "message": "Successfully deleted object: MyCustomClass (AxClass)",
  "objectName": "MyCustomClass",
  "objectType": "AxClass",
  "cascadeDelete": false,
  "dependenciesRemoved": [],
  "cacheUpdate": "Success",
  "performance": "156ms"
}

⚠️ Notas de seguridad:

  • OPERACIÓN DE ALTO RIESGO: La eliminación es permanente y no se puede deshacer

  • Verifique siempre las dependencias con find_xpp_object antes de eliminar

  • Use cascadeDelete: false (predeterminado) para una seguridad máxima

  • Pruebe las eliminaciones primero en entornos de desarrollo

  • La herramienta fallará de forma segura si existen dependencias sin el indicador de cascada

  • Las actualizaciones de caché garantizan la coherencia inmediata de las búsquedas tras la eliminación

Tipos de objetos comunes:

  • AxClass - Clases X++ y lógica de negocio

  • AxTable - Tablas de datos y esquema

  • AxForm - Formularios de interfaz de usuario

  • AxEnum - Enumeraciones y listas de valores

  • AxEdt - Tipos de datos extendidos

  • AxView - Vistas de base de datos

  • AxQuery - Consultas de datos

  • AxReport - Informes SSRS

Descubrimiento de objetos

find_xpp_object

Localiza objetos X++ por nombre con filtrado opcional.

Parámetros:

  • objectName (cadena, obligatorio) - Nombre del objeto X++

  • objectType (cadena, opcional) - Filtra por tipo de objeto

  • model (cadena, opcional) - Filtra por nombre de modelo/paquete D365

search_objects_pattern

Busca objetos D365 mediante patrones con comodines.

Parámetros:

  • pattern (cadena, obligatorio) - Patrón de búsqueda con comodines (*, ?)

  • objectType (cadena, opcional) - Filtra por tipo de objeto

  • model (cadena, opcional) - Filtra por nombre de modelo/paquete D365

  • limit (número, opcional) - Máximo de resultados (predeterminado: 50)

  • format (cadena, opcional) - Formato de salida: 'text' o 'json'

inspect_xpp_object

Analiza objetos D365 con varios modos de inspección.

Parámetros:

  • objectName (cadena, obligatorio) - Nombre del objeto X++

  • objectType (cadena, opcional) - Tipo de objeto D365

  • inspectionMode (cadena, opcional) - Nivel de inspección:

    • summary - Resumen rápido con recuentos de colecciones

    • properties - Todas las propiedades del objeto con descripciones

    • collection - Elementos de colección específicos (requiere collectionName)

    • xppcode - Extrae el código fuente X++ (requiere codeTarget)

  • collectionName (cadena, opcional) - Obligatorio cuando inspectionMode='collection'

  • codeTarget (cadena, opcional) - Obligatorio cuando inspectionMode='xppcode':

    • methods - Extrae el código fuente de todos los métodos

    • specific-method - Un único método (requiere methodName)

    • event-handlers - Solo métodos de controladores de eventos

  • methodName (cadena, opcional) - Obligatorio cuando codeTarget='specific-method'

  • maxCodeLines (número, opcional) - Limita las líneas de código fuente por método

  • filterPattern (cadena, opcional) - Filtro con comodines para los resultados

Ejemplos:

// Get object summary
inspect_xpp_object({"objectName": "CustTable", "inspectionMode": "summary"})

// Extract specific method source code
inspect_xpp_object({
  "objectName": "SalesLine", 
  "objectType": "AxTable", 
  "inspectionMode": "xppcode", 
  "codeTarget": "specific-method", 
  "methodName": "validateWrite"
})

Modificación de objetos

execute_object_modificationMEJORADA CON PROCESAMIENTO POR LOTES

Ejecuta métodos de modificación en objetos D365 existentes con procesamiento por lotes basado en matrices. Use siempre el formato de matriz: las operaciones individuales usan una matriz con un solo elemento.

📋 PRÁCTICA RECOMENDADA: Agrupe TODAS las modificaciones del mismo objeto en UNA sola llamada en lugar de realizar llamadas separadas. Esto ofrece un mejor rendimiento, gestión de errores e integridad transaccional.

Parámetros:

  • objectType (string, obligatorio) - Tipo de objeto D365 (p. ej., 'AxTable', 'AxClass', 'AxForm')

  • objectName (string, obligatorio) - Nombre del objeto existente a modificar

  • modifications (array, obligatorio) - Matriz de operaciones de modificación:

    • methodName (string, obligatorio) - Método de modificación a ejecutar

    • parameters (object, obligatorio) - Parámetros específicos del método, incluyendo:

      • concreteType (string, obligatorio) - Tipo exacto de discover_modification_capabilities

      • Name (string) - Nombre del campo/objeto (usar 'Name', no 'fieldName')

      • Otros parámetros específicos de D365 según sea necesario

✅ Características:

  • Seguimiento por operación: Cada operación devuelve estado de éxito/fallo individual

  • Informes de error detallados: Mensajes de validación claros para operaciones fallidas

  • Procesamiento secuencial: Las operaciones se ejecutan en orden con información de tiempo

  • Eficiencia por lotes: Múltiples operaciones en una única llamada de servicio

Ejemplos:

Campo único (matriz con un elemento):

execute_object_modification({
  "objectType": "AxTable",
  "objectName": "CustTable",
  "modifications": [
    {
      "methodName": "AddField",
      "parameters": {
        "concreteType": "AxTableFieldString",
        "Name": "MyCustomField",
        "Label": "My Custom Field",
        "HelpText": "Custom field description",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    }
  ]
})

Múltiples campos en un solo lote (PREFERIDO):

execute_object_modification({
  "objectType": "AxTable",
  "objectName": "CustTable",
  "modifications": [
    {
      "methodName": "AddField",
      "parameters": {
        "concreteType": "AxTableFieldString",
        "Name": "CustomerCategory",
        "Label": "Customer Category",
        "HelpText": "Customer classification category",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    },
    {
      "methodName": "AddField", 
      "parameters": {
        "concreteType": "AxTableFieldInt",
        "Name": "CustomerPriority",
        "Label": "Customer Priority",
        "HelpText": "Priority level for customer",
        "SaveContents": "Yes",
        "Mandatory": "No",
        "AllowEditOnCreate": "Yes",
        "AllowEdit": "Yes",
        "Visible": "Yes",
        "AosAuthorization": "None",
        "MinReadAccess": "Auto",
        "IgnoreEDTRelation": "No",
        "Null": "Yes",
        "IsSystemGenerated": "No",
        "IsManuallyUpdated": "No",
        "IsObsolete": "No",
        "GeneralDataProtectionRegulation": "None",
        "SysSharingType": "Duplicate"
      }
    }
  ]
})

📊 Formato de respuesta: La herramienta devuelve resultados detallados por operación:

{
  "summary": "2 succeeded, 1 failed (3 total)",
  "targetObject": "AxTable:CustTable",
  "operations": [
    {
      "methodName": "AddField",
      "success": true,
      "processingTime": "371ms",
      "message": "Successfully executed AddField on AxTable:CustTable"
    },
    {
      "methodName": "AddField",
      "success": false,
      "processingTime": "0ms",
      "error": "Parameter validation failed: Missing required parameters"
    }
  ]
}

💡 Consejos:

  • Usar discover_modification_capabilities primero para obtener los requisitos exactos de parámetros

  • Todos los campos de tablas D365 requieren parámetros como SaveContents, Mandatory, etc.

  • Agrupar modificaciones relacionadas para un mejor rendimiento

  • Comprobar los resultados individuales de las operaciones para depurar operaciones fallidas

discover_modification_capabilities

Descubre los métodos de modificación disponibles para los tipos de objetos D365.

Parámetros:

  • objectType (string, obligatorio) - Tipo de objeto D365 a analizar

Gestión del sistema

get_current_config

Devuelve información completa de configuración y estado del servidor.

build_object_index

Construye o actualiza el índice de objetos buscables.

Parámetros:

  • objectType (string, opcional) - Tipo de objeto específico a indexar

  • forceRebuild (boolean, opcional) - Forzar reconstrucción completa

Tipos de objetos compatibles

Tipos de objetos D365 comunes compatibles:

  • AxClass - Clases X++

  • AxTable - Tablas de datos

  • AxForm - Formularios de interfaz de usuario

  • AxEnum - Enumeraciones

  • AxEdt - Tipos de datos extendidos

  • AxView - Vistas de base de datos

  • AxQuery - Consultas de datos

  • AxReport - Informes SSRS

  • AxMenuItemDisplay - Elementos de menú

  • AxDataEntityView - Entidades OData

El sistema admite más de 544 tipos de objetos en total.

Scripts de compilación

El script build-and-run.ps1 proporciona gestión unificada del proyecto:

# Setup VS2022 integration
.\tools\build-and-run.ps1 -Action setup

# Build both TypeScript and C# components
.\tools\build-and-run.ps1 -Action build

# Run the MCP server
.\tools\build-and-run.ps1 -Action run -Target mcp

# Run the C# service
.\tools\build-and-run.ps1 -Action run -Target csharp

# Run tests
.\tools\build-and-run.ps1 -Action test

# Clean builds
.\tools\build-and-run.ps1 -Action clean

Flujos de trabajo de ejemplo

Creación de una nueva clase

# Create a custom class
create_xpp_object {
  "objectName": "MyBusinessLogic",
  "objectType": "AxClass",
  "layer": "usr"
}

# Add a method to the class
execute_object_modification {
  "objectType": "AxClass",
  "objectName": "MyBusinessLogic",
  "methodName": "AddMethod",
  "parameters": {
    "methodName": "processData",
    "returnType": "void",
    "source": "public void processData() { }"
  }
}

Búsqueda y análisis de objetos

# Find customer-related objects
search_objects_pattern {
  "pattern": "Cust*",
  "objectType": "AxTable",
  "limit": 20
}

# Analyze a specific table
inspect_xpp_object {
  "objectName": "CustTable",
  "objectType": "AxTable",
  "inspectionMode": "summary"
}

# Extract method source code
inspect_xpp_object {
  "objectName": "CustTable",
  "objectType": "AxTable",
  "inspectionMode": "xppcode",
  "codeTarget": "specific-method",
  "methodName": "validateWrite"
}

Detalles técnicos

Características de rendimiento

  • Indexación de objetos: Procesa más de 70K objetos en ~30 segundos

  • Tiempo de respuesta de consultas: <50ms para la mayoría de las operaciones

  • Operaciones de búsqueda: Respuesta en menos de un segundo para bases de código grandes

  • Uso de memoria: Caché optimizada basada en SQLite

Tipos de archivo compatibles

  • .xpp - Archivos fuente X++

  • .xml - Archivos de metadatos y configuración

  • .json - Archivos de configuración

  • Otros archivos de desarrollo D365

Seguridad

  • La validación de rutas previene el recorrido de directorios

  • Las operaciones están restringidas a la base de código D365 configurada

  • Límites de tamaño de archivo para la gestión de recursos

  • Validación de entrada en todos los parámetros

Solución de problemas

Problemas comunes

"Extensión VS2022 no encontrada"

  • Asegúrese de que Dynamics 365 Development Tools esté instalado en VS2022

  • Ejecute el script de configuración: .\tools\build-and-run.ps1 -Action setup

"Error de conexión con canalización con nombre"

  • Compruebe que el servicio C# esté en ejecución

  • Verifique la configuración del firewall de Windows

  • Asegúrese de que .NET Framework 4.8 esté instalado

Errores de "Objeto no encontrado"

  • Construya el índice de objetos: build_object_index

  • Verifique la configuración de la ruta de la base de código D365

  • Compruebe que el objeto exista en el modelo especificado

"Error de validación de patrón" para formularios

  • RESUELTO: Este problema se ha corregido en la última versión

  • Los formularios con patrones como DetailsMaster ahora incluyen automáticamente los controles de campo requeridos

  • Use la herramienta create_form en lugar de create_xpp_object para una mejor creación de formularios

"Error de creación de formularios sin orígenes de datos"

  • La mayoría de los patrones funcionan bien sin orígenes de datos (p. ej., DetailsMaster, patrones de diálogo)

  • Use create_form con "mode": "list_patterns" para ver los requisitos del patrón

  • Los orígenes de datos son opcionales para la mayoría de los patrones, pero mejoran la funcionalidad cuando se proporcionan

Obtención de ayuda

  • Consulte la carpeta logs/ para obtener información detallada de errores

  • Use get_current_config para verificar la configuración del sistema

  • Reporte problemas en el repositorio de GitHub

Contribuciones

Este proyecto acepta contribuciones. Por favor:

  1. Haga un fork del repositorio

  2. Cree una rama de características

  3. Realice sus cambios con las pruebas adecuadas

  4. Envíe una solicitud de extracción (pull request)

Tenga en cuenta que las API pueden cambiar a medida que el proyecto evoluciona.

Licencia

Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Este software se proporciona "tal cual" sin garantía. Está destinado únicamente a fines de investigación y desarrollo, no para uso en producción.

Notas importantes:

  • Requiere Visual Studio 2022 y herramientas de desarrollo D365

  • La integración con las API de Microsoft no está oficialmente soportada

  • Las funciones pueden cambiar o romperse entre versiones

  • Úselo bajo su propio riesgo únicamente en entornos de desarrollo

Reporte problemas o contribuya con mejoras a través del repositorio de GitHub.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

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/masoniqbal777/Mcp-Xpp'

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