ABP.IO MCP Server

ABP.IO MCP Server

Enables AI models to interact with ABP.IO applications through over 48 tools for managing modules, entities, users, and multi-tenancy. It supports comprehensive application lifecycle management and automated UI generation across multiple frameworks including Angular, Blazor, and MVC.

Category
访问服务器

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

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": "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.

Related Projects

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选