Skip to main content
Glama

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

Prerequisites

  • Node.js 18 or higher

  • Access to an ABP.IO application with API endpoints

  • API key or authentication token for your ABP application

Installation

No installation required! Just use npx to run the latest version:

# 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

Method 2: Global Installation

# 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

Method 3: Local Development

# 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

Configuration

Required Parameters

  • --stdio: Use stdio transport for MCP clients

Authentication Parameters

  • --api-key: Your ABP application API key (required for full functionality)

  • --base-url: Base URL of your ABP application (default: http://localhost:44300)

  • --info-only-mode: Enable only informational tools that don't require API authentication

Operating Modes

The ABP MCP Server supports two operating modes:

🔐 Full Mode (Default)

  • Requires --api-key parameter

  • Provides access to all 48+ tools

  • Can perform all operations on your ABP application

  • Recommended for development and production use

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

📚 Info-Only Mode

  • No API key required

  • Provides 13 informational and UI generation tools

  • Includes ABP documentation, best practices, troubleshooting guides

  • Generate UI component templates for Angular, Blazor, and MVC

  • Perfect for exploring ABP concepts and creating code templates without a running application

abp-io-mcp-server --stdio --info-only-mode

Info-Only Mode Tools:

  • abp_get_info - ABP Framework overview and capabilities

  • abp_get_documentation - Links to official documentation

  • abp_get_help - Usage guide and examples

  • abp_list_available_modules - All available ABP modules

  • abp_list_ui_frameworks - Supported UI frameworks

  • abp_list_database_providers - Database options

  • abp_get_cli_commands - CLI reference

  • abp_get_best_practices - Development guidelines

  • abp_get_troubleshooting_guide - Common issues and solutions

  • abp_generate_component - Generate UI component templates (Angular, Blazor, MVC)

  • abp_get_themes - Available themes and customization information

  • abp_generate_form - Generate form templates with validation

  • abp_get_ui_examples - Code examples and snippets for different frameworks

Environment Variables

You can also set configuration using environment variables:

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

Usage

With Claude Desktop

Add the following to your Claude Desktop configuration file:

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

Full Mode (All Tools)

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

Info-Only Mode (No API Key Required)

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

Using Local Installation

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

With Other MCP Clients

This server follows the standard MCP protocol and can be used with any MCP-compatible client.

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

Menu Management

  • 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

Troubleshooting

Common Issues

  1. Connection Failed

    • Verify your ABP application is running

    • Check the base URL is correct

    • Ensure API key is valid

  2. Permission Denied

    • Verify API key has sufficient permissions

    • Check user roles and permissions in ABP application

  3. Module Not Found

    • Ensure the ABP module is available in your application

    • Check module dependencies

  4. Entity Creation Failed

    • Verify entity name is unique

    • Check property definitions are valid

    • Ensure namespace exists

Debug Mode

Run with debug logging:

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

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

-
security - not tested
A
license - permissive license
-
quality - not tested

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/cyrilnoah1/abp-io-mcp'

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