ABP.IO MCP Server
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
Jump to
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 keyMethod 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 theGitHub 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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





