ABP.IO MCP Server

by cyrilnoah1

Not rated
GitHub

About

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

Details

Author
cyrilnoah1
Categories
Developer Tools, API

Setup

Install ABP.IO MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/cyrilnoah1/abp-io-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

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

ABP.IO is a comprehensiveopen-source web application development frameworkfor 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

This comprehensive MCP server provides48+ toolscovering all aspects of ABP.IO development, from backend services to complete UI development:

- 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)

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

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

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

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

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

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

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

- 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

- Node.js 18 or higher
- Access to an ABP.IO application with API endpoints
- API key or authentication token for your ABP application

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
# 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
# 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

- --stdio: Use stdio transport for MCP clients

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

The ABP MCP Server supports two operating modes:

- 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

- 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

- 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

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

Add the following to your Claude Desktop configuration file:

macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "abp-io": { "command": "npx", "args": ["-y", "abp-io-mcp-server", "--api-key=YOUR_API_KEY", "--base-url=https://your-abp-app.com", "--stdio"] } } }
{ "mcpServers": { "abp-io-info": { "command": "npx", "args": ["-y", "abp-io-mcp-server", "--info-only-mode", "--stdio"] } } }
{ "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"] } } }

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

- 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

- 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

- 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

- 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

- 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

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

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

- 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

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

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

- abp_generate_component- Generate reusable UI components

- 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

- 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

- abp_generate_form- Generate complex forms with validation

- 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

// 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" }
// 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 } ] }
// Create a new user { "userName": "john.doe", "name": "John", "surname": "Doe", "email": "john.doe@example.com", "password": "SecurePassword123!", "roleNames": ["User", "Manager"] }
// Create a new tenant { "name": "acme-corp", "isActive": true, "editionId": "premium-edition-id" }
// 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"] }
// Apply a custom theme with brand colors { "name": "LeptonX", "primaryColor": "#1e88e5", "secondaryColor": "#ffc107", "customCss": ".main-header { background: linear-gradient(45deg, #1e88e5, #1976d2); }" }
// 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 }
// 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 }
// 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" }
// 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!" }

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

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

# 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 run -it abp-io-mcp-server --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com --stdio

- Verify your ABP application is running
- Check the base URL is correct
- Ensure API key is valid

- Verify API key has sufficient permissions
- Check user roles and permissions in ABP application

- Ensure the ABP module is available in your application
- Check module dependencies

- Verify entity name is unique
- Check property definitions are valid
- Ensure namespace exists

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

- 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

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

- ABP.IO Framework- The official ABP.IO framework
-
ABP.IO Documentation- Comprehensive documentation
-
Lattice HQ MCP- Reference MCP server implementation
- 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

- 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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.