Labsco
cyrilnoah1 logo

ABP.IO MCP Server

β˜… 12

from cyrilnoah1

An MCP server for ABP.IO that enables AI models to interact with your ABP applications and framework.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

ABP.IO MCP Server

A comprehensive Model Context Protocol (MCP) server for ABP.IO that enables AI models to interact with your ABP applications. Provides 48+ tools for managing modules, entities, users, tenants, UI development, and more.

What is ABP.IO?

ABP.IO is a comprehensive open-source web application development framework for ASP.NET Core that provides:

  • Modern Architecture: Based on Domain-Driven Design (DDD) and Clean Architecture principles
  • Modular Design: Pre-built modules for common features (Identity, SaaS, CMS, etc.)
  • Multi-tenancy Support: Built-in SaaS capabilities
  • Multiple UI Options: Supports MVC, Angular, Blazor, React Native
  • Development Tools: ABP Studio, ABP Suite for rapid development
  • Microservice Compatible: Supports both monolithic and microservice architectures

Features

This comprehensive MCP server provides 48+ tools covering all aspects of ABP.IO development, from backend services to complete UI development:

πŸ—οΈ Application Management

  • Create, read, update, delete ABP applications
  • Support for different templates (app, microservice, module, console)
  • Multiple UI frameworks (MVC, Angular, Blazor, etc.)
  • Database provider options (Entity Framework, MongoDB, Dapper)

πŸ“¦ Module Management

  • Install and uninstall ABP modules
  • Browse popular ABP modules
  • Manage module dependencies
  • View module information and documentation

πŸ—ƒοΈ Entity Management

  • Create and manage domain entities
  • Define entity properties and relationships
  • Generate CRUD operations automatically
  • Support for DDD patterns (aggregates, value objects)

πŸ‘₯ User Management

  • Complete user lifecycle management
  • Role-based access control
  • User filtering and search
  • Active/inactive user management

🏒 Tenant Management (Multi-tenancy)

  • Create and manage tenants for SaaS applications
  • Tenant-specific configurations
  • Subscription management
  • Database separation strategies

πŸ” Permission Management

  • Fine-grained permission system
  • Role and user-based permissions
  • Permission groups and hierarchies
  • Grant/revoke permissions dynamically

πŸ“‹ Audit Logging

  • Comprehensive audit trail
  • Performance monitoring
  • Error tracking and analysis
  • Custom audit log reports

βš™οΈ Background Jobs

  • Job queue management
  • Common ABP background job types
  • Job scheduling and monitoring
  • Failed job handling

🎨 UI Development

  • Generate pages (list, detail, create, edit, modal) for multiple frameworks
  • Theme management and customization
  • Reusable component generation (widgets, modals, partials, directives, pipes)
  • Layout management and customization
  • Navigation menu management
  • Dashboard widget creation and management
  • Complex form generation with validation
  • Multi-language localization support

Available Tools

Application Tools

  • abp_get_applications - Get all ABP applications
  • abp_get_application - Get application by ID
  • abp_create_application - Create new ABP application
  • abp_update_application - Update existing application
  • abp_delete_application - Delete application

Module Tools

  • abp_get_modules - Get all ABP modules
  • abp_get_module - Get module by ID
  • abp_install_module - Install ABP module
  • abp_uninstall_module - Uninstall module
  • abp_get_popular_modules - Get popular ABP modules

Entity Tools

  • abp_get_entities - Get all entities
  • abp_get_entity - Get entity by ID
  • abp_create_entity - Create new entity
  • abp_generate_crud - Generate CRUD operations

User Tools

  • abp_get_users - Get all users
  • abp_get_user - Get user by ID
  • abp_create_user - Create new user
  • abp_update_user - Update user
  • abp_delete_user - Delete user

Tenant Tools

  • abp_get_tenants - Get all tenants
  • abp_get_tenant - Get tenant by ID
  • abp_create_tenant - Create new tenant
  • abp_update_tenant - Update tenant
  • abp_delete_tenant - Delete tenant

Permission Tools

  • abp_get_permissions - Get permissions
  • abp_get_permissions_by_group - Get permissions by group
  • abp_grant_permission - Grant permission
  • abp_revoke_permission - Revoke permission

Audit Tools

  • abp_get_audit_logs - Get audit logs
  • abp_get_audit_log - Get audit log by ID
  • abp_get_audit_summary - Get audit statistics

Background Job Tools

  • abp_get_background_jobs - Get background jobs
  • abp_get_background_job - Get job by ID
  • abp_enqueue_background_job - Enqueue new job
  • abp_delete_background_job - Delete job
  • abp_get_common_job_types - Get common job types

UI Development Tools

Page Generation

  • abp_generate_page - Generate pages (list, detail, create, edit, modal)

Theme Management

  • abp_get_themes - Get all available themes
  • abp_get_theme - Get specific theme details
  • abp_apply_theme - Apply and customize themes

Component Generation

  • abp_generate_component - Generate reusable UI components

Layout Management

  • abp_get_layouts - Get all available layouts
  • abp_get_layout - Get specific layout details
  • abp_update_layout - Update layout configuration
  • abp_get_menus - Get all application menus
  • abp_get_menu - Get specific menu details
  • abp_add_menu_item - Add menu items with icons and permissions
  • abp_remove_menu_item - Remove menu items

Widget Management

  • abp_get_widgets - Get all dashboard widgets
  • abp_get_widget - Get specific widget details
  • abp_create_widget - Create new dashboard widgets
  • abp_update_widget - Update widget configuration
  • abp_delete_widget - Delete widgets

Form Generation

  • abp_generate_form - Generate complex forms with validation

Localization

  • abp_get_localization_resources - Get all localization resources
  • abp_get_localization_resource - Get specific resource by culture
  • abp_update_localization_text - Update/add localized text
  • abp_get_supported_cultures - Get all supported languages

Examples

Creating a New ABP Application

// Create a new microservice application with Angular UI
{
  "name": "my-microservice",
  "displayName": "My Microservice App",
  "template": "microservice",
  "framework": "angular",
  "database": "ef"
}
// Install Identity Pro module
{
  "packageName": "Volo.Abp.Identity.Pro"
}

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

Creating a Domain Entity

// 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
    }
  ]
}

Managing Users

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

Multi-tenant Operations

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

UI Development Examples

Generating Pages

// 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"]
}

Theme Customization

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

Creating 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
}

Adding Menu Items

// 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
}

Generating Forms

// 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"
}

Localization Management

// 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!"
}

Getting Your ABP API Key

Method 1: Through ABP Application Settings

  1. Log in to your ABP application as admin
  2. Go to Administration β†’ Settings
  3. Look for API or Integration settings
  4. Generate a new API key

Method 2: Using IdentityServer4/OpenIddict

If your ABP application uses IdentityServer4 or OpenIddict:

  1. Create a new client application
  2. Set appropriate scopes and permissions
  3. Use client credentials flow to get access token

Method 3: Custom Implementation

You may need to implement custom API authentication based on your ABP application's configuration.

Development

# 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

Docker Support

Building Docker Image

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

Running with Docker

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

Support

If you encounter any issues:

  1. Check the GitHub Issues
  2. Create a new issue with details about your problem
  3. Include your Node.js version, operating system, and any error messages
  4. Provide steps to reproduce the issue

Changelog

v1.1.0

  • NEW: Comprehensive UI Development Tools (16 new tools)
    • Page generation for multiple frameworks (MVC, Angular, Blazor, Blazor Server)
    • Theme management and customization
    • Reusable component generation (widgets, modals, partials, directives, pipes)
    • Layout management and customization
    • Navigation menu management with permissions
    • Dashboard widget creation and management
    • Complex form generation with validation
    • Multi-language localization support
  • Enhanced API client with UI development methods
  • Updated documentation with UI development examples
  • Total tools expanded to 48+

v1.0.0

  • Initial release
  • Complete ABP.IO API integration
  • Support for all major ABP features (32+ tools)
  • Docker support
  • Comprehensive documentation