ABP.IO MCP Server

Un servidor MCP para ABP.IO que permite a los modelos de IA interactuar con tus aplicaciones y el framework ABP.

Documentación

Servidor MCP de ABP.IO

Un servidor integral del Protocolo de Contexto de Modelos (MCP) para ABP.IO que permite a los modelos de IA interactuar con sus aplicaciones ABP. Proporciona más de 48 herramientas para gestionar módulos, entidades, usuarios, inquilinos, desarrollo de UI y más.

¿Qué es ABP.IO?

ABP.IO es un framework integral de desarrollo de aplicaciones web de código abierto para ASP.NET Core que proporciona:

  • Arquitectura moderna: Basado en los principios de Diseño Dirigido por Dominio (DDD) y Arquitectura Limpia
  • Diseño modular: Módulos preconstruidos para funciones comunes (Identity, SaaS, CMS, etc.)
  • Soporte multiinquilino: Capacidades SaaS integradas
  • Múltiples opciones de UI: Compatible con MVC, Angular, Blazor, React Native
  • Herramientas de desarrollo: ABP Studio, ABP Suite para desarrollo rápido
  • Compatibilidad con microservicios: Compatible con arquitecturas monolíticas y de microservicios

Características

Este servidor MCP integral proporciona más de 48 herramientas que cubren todos los aspectos del desarrollo con ABP.IO, desde servicios backend hasta desarrollo completo de UI:

🏗️ Gestión de aplicaciones

  • Crear, leer, actualizar, eliminar aplicaciones ABP
  • Soporte para diferentes plantillas (app, microservice, module, console)
  • Múltiples frameworks de UI (MVC, Angular, Blazor, etc.)
  • Opciones de proveedor de bases de datos (Entity Framework, MongoDB, Dapper)

📦 Gestión de módulos

  • Instalar y desinstalar módulos ABP
  • Explorar módulos ABP populares
  • Gestionar dependencias de módulos
  • Ver información y documentación de módulos

🗃️ Gestión de entidades

  • Crear y gestionar entidades de dominio
  • Definir propiedades y relaciones de entidades
  • Generar operaciones CRUD automáticamente
  • Soporte para patrones DDD (agregados, objetos de valor)

👥 Gestión de usuarios

  • Gestión completa del ciclo de vida del usuario
  • Control de acceso basado en roles
  • Filtrado y búsqueda de usuarios
  • Gestión de usuarios activos/inactivos

🏢 Gestión de inquilinos (multiinquilino)

  • Crear y gestionar inquilinos para aplicaciones SaaS
  • Configuraciones específicas por inquilino
  • Gestión de suscripciones
  • Estrategias de separación de bases de datos

🔐 Gestión de permisos

  • Sistema de permisos granular
  • Permisos basados en roles y usuarios
  • Grupos y jerarquías de permisos
  • Otorgar/revocar permisos dinámicamente

📋 Registro de auditoría

  • Pista de auditoría integral
  • Monitoreo de rendimiento
  • Seguimiento y análisis de errores
  • Informes personalizados de registros de auditoría

⚙️ Trabajos en segundo plano

  • Gestión de colas de trabajos
  • Tipos comunes de trabajos en segundo plano de ABP
  • Programación y monitoreo de trabajos
  • Manejo de trabajos fallidos

🎨 Desarrollo de UI

  • Generar páginas (lista, detalle, crear, editar, modal) para múltiples frameworks
  • Gestión y personalización de temas
  • Generación de componentes reutilizables (widgets, modales, parciales, directivas, pipes)
  • Gestión y personalización de diseños
  • Gestión del menú de navegación
  • Creación y gestión de widgets de panel
  • Generación de formularios complejos con validación
  • Soporte de localización multilingüe

Requisitos previos

  • Node.js 18 o superior
  • Acceso a una aplicación ABP.IO con endpoints de API
  • Clave de API o token de autenticación para su aplicación ABP

Instalación

Método 1: Usando NPX (recomendado)

¡No se requiere instalación! Simplemente use npx para ejecutar la última versión:

# Full mode (requires API key)
npx abp-io-mcp-server --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com --stdio

# Info-only mode (no API key required)
npx abp-io-mcp-server --info-only-mode --stdio

Método 2: Instalación global

# Install globally
npm install -g abp-io-mcp-server

# Run in full mode
abp-io-mcp-server --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com --stdio

# Run in info-only mode  
abp-io-mcp-server --info-only-mode --stdio

Método 3: Desarrollo local

# Clone the repository
git clone https://github.com/cyrilnoah1/abp-io-mcp.git
cd abp-io-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run the server
npm run dev -- --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com --stdio

Configuración

Parámetros requeridos

  • --stdio: Use transporte stdio para clientes MCP

Parámetros de autenticación

  • --api-key: Clave de API de su aplicación ABP (requerida para funcionalidad completa)
  • --base-url: URL base de su aplicación ABP (predeterminado: http://localhost:44300)
  • --info-only-mode: Habilitar solo herramientas informativas que no requieren autenticación de API

Modos de operación

El servidor MCP de ABP admite dos modos de operación:

🔐 Modo completo (predeterminado)

  • Requiere el parámetro --api-key
  • Proporciona acceso a las más de 48 herramientas
  • Puede realizar todas las operaciones en su aplicación ABP
  • Recomendado para desarrollo y uso en producción
abp-io-mcp-server --stdio --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com

📚 Modo solo información

  • No se requiere clave de API
  • Proporciona 13 herramientas informativas y de generación de UI
  • Incluye documentación de ABP, mejores prácticas, guías de solución de problemas
  • Genera plantillas de componentes de UI para Angular, Blazor y MVC
  • Perfecto para explorar conceptos de ABP y crear plantillas de código sin una aplicación en ejecución
abp-io-mcp-server --stdio --info-only-mode

Herramientas del modo solo información:

  • abp_get_info - Descripción general y capacidades del framework ABP
  • abp_get_documentation - Enlaces a la documentación oficial
  • abp_get_help - Guía de uso y ejemplos
  • abp_list_available_modules - Todos los módulos ABP disponibles
  • abp_list_ui_frameworks - Frameworks de UI compatibles
  • abp_list_database_providers - Opciones de bases de datos
  • abp_get_cli_commands - Referencia de CLI
  • abp_get_best_practices - Directrices de desarrollo
  • abp_get_troubleshooting_guide - Problemas comunes y soluciones
  • abp_generate_component - Generar plantillas de componentes de UI (Angular, Blazor, MVC)
  • abp_get_themes - Temas disponibles e información de personalización
  • abp_generate_form - Generar plantillas de formularios con validación
  • abp_get_ui_examples - Ejemplos de código y fragmentos para diferentes frameworks

Variables de entorno

También puede configurar la configuración usando variables de entorno:

export ABP_API_KEY=your_api_key_here
export ABP_BASE_URL=https://your-abp-app.com

Uso

Con Claude Desktop

Agregue lo siguiente a su archivo de configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

Modo completo (todas las herramientas)

{
  "mcpServers": {
    "abp-io": {
      "command": "npx",
      "args": ["-y", "abp-io-mcp-server", "--api-key=YOUR_API_KEY", "--base-url=https://your-abp-app.com", "--stdio"]
    }
  }
}

Modo solo información (sin clave de API)

{
  "mcpServers": {
    "abp-io-info": {
      "command": "npx",
      "args": ["-y", "abp-io-mcp-server", "--info-only-mode", "--stdio"]
    }
  }
}

Usando instalación local

{
  "mcpServers": {
    "abp-io": {
      "command": "node",
      "args": ["/path/to/abp-io-mcp/dist/index.js", "--api-key=YOUR_API_KEY", "--base-url=https://your-abp-app.com", "--stdio"]
    }
  }
}

Con otros clientes MCP

Este servidor sigue el protocolo MCP estándar y puede usarse con cualquier cliente compatible con MCP.

Herramientas disponibles

Herramientas de aplicación

  • abp_get_applications - Obtener todas las aplicaciones ABP
  • abp_get_application - Obtener aplicación por ID
  • abp_create_application - Crear nueva aplicación ABP
  • abp_update_application - Actualizar aplicación existente
  • abp_delete_application - Eliminar aplicación

Herramientas de módulos

  • abp_get_modules - Obtener todos los módulos ABP
  • abp_get_module - Obtener módulo por ID
  • abp_install_module - Instalar módulo ABP
  • abp_uninstall_module - Desinstalar módulo
  • abp_get_popular_modules - Obtener módulos ABP populares

Herramientas de entidades

  • abp_get_entities - Obtener todas las entidades
  • abp_get_entity - Obtener entidad por ID
  • abp_create_entity - Crear nueva entidad
  • abp_generate_crud - Generar operaciones CRUD

Herramientas de usuarios

  • abp_get_users - Obtener todos los usuarios
  • abp_get_user - Obtener usuario por ID
  • abp_create_user - Crear nuevo usuario
  • abp_update_user - Actualizar usuario
  • abp_delete_user - Eliminar usuario

Herramientas de inquilinos

  • abp_get_tenants - Obtener todos los inquilinos
  • abp_get_tenant - Obtener inquilino por ID
  • abp_create_tenant - Crear nuevo inquilino
  • abp_update_tenant - Actualizar inquilino
  • abp_delete_tenant - Eliminar inquilino

Herramientas de permisos

  • abp_get_permissions - Obtener permisos
  • abp_get_permissions_by_group - Obtener permisos por grupo
  • abp_grant_permission - Otorgar permiso
  • abp_revoke_permission - Revocar permiso

Herramientas de auditoría

  • abp_get_audit_logs - Obtener registros de auditoría
  • abp_get_audit_log - Obtener registro de auditoría por ID
  • abp_get_audit_summary - Obtener estadísticas de auditoría

Herramientas de trabajos en segundo plano

  • abp_get_background_jobs - Obtener trabajos en segundo plano
  • abp_get_background_job - Obtener trabajo por ID
  • abp_enqueue_background_job - Poner en cola nuevo trabajo
  • abp_delete_background_job - Eliminar trabajo
  • abp_get_common_job_types - Obtener tipos de trabajos comunes

Herramientas de desarrollo de UI

Generación de páginas

  • abp_generate_page - Generar páginas (lista, detalle, crear, editar, modal)

Gestión de temas

  • abp_get_themes - Obtener todos los temas disponibles
  • abp_get_theme - Obtener detalles de un tema específico
  • abp_apply_theme - Aplicar y personalizar temas

Generación de componentes

  • abp_generate_component - Generar componentes de UI reutilizables

Gestión de diseños

  • abp_get_layouts - Obtener todos los diseños disponibles
  • abp_get_layout - Obtener detalles de un diseño específico
  • abp_update_layout - Actualizar configuración de diseño

Gestión de menús

  • abp_get_menus - Obtener todos los menús de la aplicación
  • abp_get_menu - Obtener detalles de un menú específico
  • abp_add_menu_item - Agregar elementos de menú con iconos y permisos
  • abp_remove_menu_item - Eliminar elementos de menú

Gestión de widgets

  • abp_get_widgets - Obtener todos los widgets del panel
  • abp_get_widget - Obtener detalles de un widget específico
  • abp_create_widget - Crear nuevos widgets de panel
  • abp_update_widget - Actualizar configuración de widgets
  • abp_delete_widget - Eliminar widgets

Generación de formularios

  • abp_generate_form - Generar formularios complejos con validación

Localización

  • abp_get_localization_resources - Obtener todos los recursos de localización
  • abp_get_localization_resource - Obtener recurso específico por cultura
  • abp_update_localization_text - Actualizar/agregar texto localizado
  • abp_get_supported_cultures - Obtener todos los idiomas compatibles

Ejemplos

Crear una nueva aplicación ABP

// Create a new microservice application with Angular UI
{
  "name": "my-microservice",
  "displayName": "My Microservice App",
  "template": "microservice",
  "framework": "angular",
  "database": "ef"
}

Instalar módulos populares

// Install Identity Pro module
{
  "packageName": "Volo.Abp.Identity.Pro"
}

// Install SaaS module
{
  "packageName": "Volo.Saas"
}

Crear una entidad de dominio

// Create a Product entity
{
  "name": "Product",
  "namespace": "MyApp.Products",
  "isAuditedEntity": true,
  "isMultiTenant": true,
  "properties": [
    {
      "name": "Name",
      "type": "string",
      "isRequired": true,
      "maxLength": 100
    },
    {
      "name": "Price",
      "type": "decimal",
      "isRequired": true
    },
    {
      "name": "Description",
      "type": "string",
      "isRequired": false,
      "maxLength": 500
    }
  ]
}

Gestionar usuarios

// Create a new user
{
  "userName": "john.doe",
  "name": "John",
  "surname": "Doe",
  "email": "john.doe@example.com",
  "password": "SecurePassword123!",
  "roleNames": ["User", "Manager"]
}

Operaciones multiinquilino

// Create a new tenant
{
  "name": "acme-corp",
  "isActive": true,
  "editionId": "premium-edition-id"
}

Ejemplos de desarrollo de UI

Generar páginas

// Generate a product list page with Angular
{
  "name": "ProductList",
  "type": "list",
  "entityId": "product-entity-id",
  "framework": "angular",
  "includeSearch": true,
  "includePaging": true,
  "includeExport": true,
  "permissions": ["Products.Read"]
}

// Generate a modal for creating products
{
  "name": "CreateProductModal",
  "type": "modal",
  "entityId": "product-entity-id",
  "framework": "blazor",
  "permissions": ["Products.Create"]
}

Personalización de temas

// Apply a custom theme with brand colors
{
  "name": "LeptonX",
  "primaryColor": "#1e88e5",
  "secondaryColor": "#ffc107",
  "customCss": ".main-header { background: linear-gradient(45deg, #1e88e5, #1976d2); }"
}

Crear widgets

// Create a sales chart widget
{
  "name": "sales-chart",
  "displayName": "Monthly Sales Chart",
  "description": "Displays monthly sales data in a line chart",
  "type": "chart",
  "configuration": {
    "chartType": "line",
    "dataSource": "/api/sales/monthly",
    "xAxis": "month",
    "yAxis": "amount"
  },
  "permissions": ["Dashboard.SalesData"],
  "refreshInterval": 300
}

Agregar elementos de menú

// Add a products menu item with sub-items
{
  "menuName": "main",
  "name": "Products",
  "displayName": "Products",
  "icon": "fa-shopping-cart",
  "order": 10,
  "requiredPermissionName": "Products.Read"
}

// Add sub-menu item
{
  "menuName": "main",
  "name": "ProductList",
  "displayName": "Product List",
  "url": "/products",
  "parentName": "Products",
  "order": 1
}

Generar formularios

// Generate a complex product form
{
  "name": "ProductForm",
  "entityId": "product-entity-id",
  "fields": [
    {
      "name": "name",
      "type": "text",
      "label": "Product Name",
      "required": true,
      "validation": {
        "minLength": 3,
        "maxLength": 100
      }
    },
    {
      "name": "category",
      "type": "select",
      "label": "Category",
      "required": true,
      "options": [
        { "value": "electronics", "label": "Electronics" },
        { "value": "clothing", "label": "Clothing" },
        { "value": "books", "label": "Books" }
      ]
    },
    {
      "name": "price",
      "type": "number",
      "label": "Price",
      "required": true,
      "validation": {
        "min": 0.01,
        "max": 999999.99
      }
    },
    {
      "name": "description",
      "type": "textarea",
      "label": "Description",
      "required": false,
      "validation": {
        "maxLength": 500
      }
    }
  ],
  "layout": "vertical",
  "submitAction": "createProduct",
  "cancelAction": "cancel"
}

Gestión de localización

// Update localization text for multiple languages
{
  "resourceName": "MyApp",
  "culture": "en",
  "key": "WelcomeMessage",
  "value": "Welcome to our application!"
}

{
  "resourceName": "MyApp",
  "culture": "es",
  "key": "WelcomeMessage",
  "value": "¡Bienvenido a nuestra aplicación!"
}

Obtener su clave de API de ABP

Método 1: A través de la configuración de la aplicación ABP

  1. Inicie sesión en su aplicación ABP como administrador
  2. Vaya a Administración → Configuración
  3. Busque la configuración de API o Integración
  4. Genere una nueva clave de API

Método 2: Usando IdentityServer4/OpenIddict

Si su aplicación ABP usa IdentityServer4 u OpenIddict:

  1. Cree una nueva aplicación cliente
  2. Establezca los alcances y permisos apropiados
  3. Use el flujo de credenciales de cliente para obtener un token de acceso

Método 3: Implementación personalizada

Es posible que deba implementar autenticación de API personalizada según la configuración de su aplicación ABP.

Desarrollo

# Install dependencies
npm install

# Build in watch mode
npm run watch

# Run development server
npm run dev -- --api-key=YOUR_KEY --base-url=http://localhost:44300 --stdio

# Build for production
npm run build

# Run tests
npm test

# Lint code
npm run lint

Soporte de Docker

Crear imagen de Docker

docker build -t abp-io-mcp-server .

Ejecutar con Docker

docker run -it abp-io-mcp-server --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com --stdio

Solución de problemas

Problemas comunes

  1. Conexión fallida

    • Verifique que su aplicación ABP esté en ejecución
    • Compruebe que la URL base sea correcta
    • Asegúrese de que la clave de API sea válida
  2. Permiso denegado

    • Verifique que la clave de API tenga permisos suficientes
    • Compruebe los roles y permisos de usuario en la aplicación ABP
  3. Módulo no encontrado

    • Asegúrese de que el módulo ABP esté disponible en su aplicación
    • Compruebe las dependencias del módulo
  4. Error al crear entidad

    • Verifique que el nombre de la entidad sea único
    • Compruebe que las definiciones de propiedades sean válidas
    • Asegúrese de que el espacio de nombres exista

Modo de depuración

Ejecute con registro de depuración:

DEBUG=abp-io-mcp-server* npm run dev -- --api-key=YOUR_KEY --stdio

Contribuciones

  1. Haga un fork del repositorio
  2. Cree su rama de características (git checkout -b feature/amazing-feature)
  3. Haga commit de sus cambios (git commit -m 'Add some amazing feature')
  4. Haga push a la rama (git push origin feature/amazing-feature)
  5. Abra una Solicitud de extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Proyectos relacionados

Soporte

Si encuentra algún problema:

  1. Consulte los Problemas de GitHub
  2. Cree un nuevo problema con detalles sobre su problema
  3. Incluya su versión de Node.js, sistema operativo y cualquier mensaje de error
  4. Proporcione pasos para reproducir el problema

Registro de cambios

v1.1.0

  • NUEVO: Herramientas integrales de desarrollo de UI (16 herramientas nuevas)
    • Generación de páginas para múltiples frameworks (MVC, Angular, Blazor, Blazor Server)
    • Gestión y personalización de temas
    • Generación de componentes reutilizables (widgets, modales, parciales, directivas, pipes)
    • Gestión y personalización de diseños
    • Gestión del menú de navegación con permisos
    • Creación y gestión de widgets de panel
    • Generación de formularios complejos con validación
    • Soporte de localización multilingüe
  • Cliente de API mejorado con métodos de desarrollo de UI
  • Documentación actualizada con ejemplos de desarrollo de UI
  • Total de herramientas ampliado a más de 48

v1.0.0

  • Lanzamiento inicial
  • Integración completa de la API de ABP.IO
  • Soporte para todas las funciones principales de ABP (más de 32 herramientas)
  • Soporte de Docker
  • Documentación integral