abp-io-mcp-server
v1.3.0
Published
A comprehensive Model Context Protocol (MCP) server for ABP.IO framework with 48+ tools for application development, UI generation, and management operations.
Maintainers
Readme
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
Method 1: Using NPX (Recommended)
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 --stdioMethod 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 --stdioMethod 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 --stdioConfiguration
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-keyparameter - 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-modeInfo-Only Mode Tools:
abp_get_info- ABP Framework overview and capabilitiesabp_get_documentation- Links to official documentationabp_get_help- Usage guide and examplesabp_list_available_modules- All available ABP modulesabp_list_ui_frameworks- Supported UI frameworksabp_list_database_providers- Database optionsabp_get_cli_commands- CLI referenceabp_get_best_practices- Development guidelinesabp_get_troubleshooting_guide- Common issues and solutionsabp_generate_component- Generate UI component templates (Angular, Blazor, MVC)abp_get_themes- Available themes and customization informationabp_generate_form- Generate form templates with validationabp_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.comUsage
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 applicationsabp_get_application- Get application by IDabp_create_application- Create new ABP applicationabp_update_application- Update existing applicationabp_delete_application- Delete application
Module Tools
abp_get_modules- Get all ABP modulesabp_get_module- Get module by IDabp_install_module- Install ABP moduleabp_uninstall_module- Uninstall moduleabp_get_popular_modules- Get popular ABP modules
Entity Tools
abp_get_entities- Get all entitiesabp_get_entity- Get entity by IDabp_create_entity- Create new entityabp_generate_crud- Generate CRUD operations
User Tools
abp_get_users- Get all usersabp_get_user- Get user by IDabp_create_user- Create new userabp_update_user- Update userabp_delete_user- Delete user
Tenant Tools
abp_get_tenants- Get all tenantsabp_get_tenant- Get tenant by IDabp_create_tenant- Create new tenantabp_update_tenant- Update tenantabp_delete_tenant- Delete tenant
Permission Tools
abp_get_permissions- Get permissionsabp_get_permissions_by_group- Get permissions by groupabp_grant_permission- Grant permissionabp_revoke_permission- Revoke permission
Audit Tools
abp_get_audit_logs- Get audit logsabp_get_audit_log- Get audit log by IDabp_get_audit_summary- Get audit statistics
Background Job Tools
abp_get_background_jobs- Get background jobsabp_get_background_job- Get job by IDabp_enqueue_background_job- Enqueue new jobabp_delete_background_job- Delete jobabp_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 themesabp_get_theme- Get specific theme detailsabp_apply_theme- Apply and customize themes
Component Generation
abp_generate_component- Generate reusable UI components
Layout Management
abp_get_layouts- Get all available layoutsabp_get_layout- Get specific layout detailsabp_update_layout- Update layout configuration
Menu Management
abp_get_menus- Get all application menusabp_get_menu- Get specific menu detailsabp_add_menu_item- Add menu items with icons and permissionsabp_remove_menu_item- Remove menu items
Widget Management
abp_get_widgets- Get all dashboard widgetsabp_get_widget- Get specific widget detailsabp_create_widget- Create new dashboard widgetsabp_update_widget- Update widget configurationabp_delete_widget- Delete widgets
Form Generation
abp_generate_form- Generate complex forms with validation
Localization
abp_get_localization_resources- Get all localization resourcesabp_get_localization_resource- Get specific resource by cultureabp_update_localization_text- Update/add localized textabp_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"
}Installing Popular Modules
// 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": "[email protected]",
"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
- Log in to your ABP application as admin
- Go to Administration → Settings
- Look for API or Integration settings
- Generate a new API key
Method 2: Using IdentityServer4/OpenIddict
If your ABP application uses IdentityServer4 or OpenIddict:
- Create a new client application
- Set appropriate scopes and permissions
- 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 lintDocker 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 --stdioTroubleshooting
Common Issues
Connection Failed
- Verify your ABP application is running
- Check the base URL is correct
- Ensure API key is valid
Permission Denied
- Verify API key has sufficient permissions
- Check user roles and permissions in ABP application
Module Not Found
- Ensure the ABP module is available in your application
- Check module dependencies
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 --stdioContributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Related Projects
- ABP.IO Framework - The official ABP.IO framework
- ABP.IO Documentation - Comprehensive documentation
- Lattice HQ MCP - Reference MCP server implementation
Support
If you encounter any issues:
- Check the GitHub Issues
- Create a new issue with details about your problem
- Include your Node.js version, operating system, and any error messages
- 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
