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 ABPabp_get_documentation- Enlaces a la documentación oficialabp_get_help- Guía de uso y ejemplosabp_list_available_modules- Todos los módulos ABP disponiblesabp_list_ui_frameworks- Frameworks de UI compatiblesabp_list_database_providers- Opciones de bases de datosabp_get_cli_commands- Referencia de CLIabp_get_best_practices- Directrices de desarrolloabp_get_troubleshooting_guide- Problemas comunes y solucionesabp_generate_component- Generar plantillas de componentes de UI (Angular, Blazor, MVC)abp_get_themes- Temas disponibles e información de personalizaciónabp_generate_form- Generar plantillas de formularios con validaciónabp_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 ABPabp_get_application- Obtener aplicación por IDabp_create_application- Crear nueva aplicación ABPabp_update_application- Actualizar aplicación existenteabp_delete_application- Eliminar aplicación
Herramientas de módulos
abp_get_modules- Obtener todos los módulos ABPabp_get_module- Obtener módulo por IDabp_install_module- Instalar módulo ABPabp_uninstall_module- Desinstalar móduloabp_get_popular_modules- Obtener módulos ABP populares
Herramientas de entidades
abp_get_entities- Obtener todas las entidadesabp_get_entity- Obtener entidad por IDabp_create_entity- Crear nueva entidadabp_generate_crud- Generar operaciones CRUD
Herramientas de usuarios
abp_get_users- Obtener todos los usuariosabp_get_user- Obtener usuario por IDabp_create_user- Crear nuevo usuarioabp_update_user- Actualizar usuarioabp_delete_user- Eliminar usuario
Herramientas de inquilinos
abp_get_tenants- Obtener todos los inquilinosabp_get_tenant- Obtener inquilino por IDabp_create_tenant- Crear nuevo inquilinoabp_update_tenant- Actualizar inquilinoabp_delete_tenant- Eliminar inquilino
Herramientas de permisos
abp_get_permissions- Obtener permisosabp_get_permissions_by_group- Obtener permisos por grupoabp_grant_permission- Otorgar permisoabp_revoke_permission- Revocar permiso
Herramientas de auditoría
abp_get_audit_logs- Obtener registros de auditoríaabp_get_audit_log- Obtener registro de auditoría por IDabp_get_audit_summary- Obtener estadísticas de auditoría
Herramientas de trabajos en segundo plano
abp_get_background_jobs- Obtener trabajos en segundo planoabp_get_background_job- Obtener trabajo por IDabp_enqueue_background_job- Poner en cola nuevo trabajoabp_delete_background_job- Eliminar trabajoabp_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 disponiblesabp_get_theme- Obtener detalles de un tema específicoabp_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 disponiblesabp_get_layout- Obtener detalles de un diseño específicoabp_update_layout- Actualizar configuración de diseño
Gestión de menús
abp_get_menus- Obtener todos los menús de la aplicaciónabp_get_menu- Obtener detalles de un menú específicoabp_add_menu_item- Agregar elementos de menú con iconos y permisosabp_remove_menu_item- Eliminar elementos de menú
Gestión de widgets
abp_get_widgets- Obtener todos los widgets del panelabp_get_widget- Obtener detalles de un widget específicoabp_create_widget- Crear nuevos widgets de panelabp_update_widget- Actualizar configuración de widgetsabp_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ónabp_get_localization_resource- Obtener recurso específico por culturaabp_update_localization_text- Actualizar/agregar texto localizadoabp_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
- Inicie sesión en su aplicación ABP como administrador
- Vaya a Administración → Configuración
- Busque la configuración de API o Integración
- Genere una nueva clave de API
Método 2: Usando IdentityServer4/OpenIddict
Si su aplicación ABP usa IdentityServer4 u OpenIddict:
- Cree una nueva aplicación cliente
- Establezca los alcances y permisos apropiados
- 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
-
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
-
Permiso denegado
- Verifique que la clave de API tenga permisos suficientes
- Compruebe los roles y permisos de usuario en la aplicación ABP
-
Módulo no encontrado
- Asegúrese de que el módulo ABP esté disponible en su aplicación
- Compruebe las dependencias del módulo
-
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
- Haga un fork del repositorio
- Cree su rama de características (
git checkout -b feature/amazing-feature) - Haga commit de sus cambios (
git commit -m 'Add some amazing feature') - Haga push a la rama (
git push origin feature/amazing-feature) - 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
- Framework ABP.IO - El framework oficial de ABP.IO
- Documentación de ABP.IO - Documentación integral
- Lattice HQ MCP - Implementación de referencia del servidor MCP
Soporte
Si encuentra algún problema:
- Consulte los Problemas de GitHub
- Cree un nuevo problema con detalles sobre su problema
- Incluya su versión de Node.js, sistema operativo y cualquier mensaje de error
- 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