ABP.IO MCP Server

Um servidor MCP para ABP.IO que permite que modelos de IA interajam com suas aplicações e framework ABP.

Documentação

Servidor MCP ABP.IO

Um servidor abrangente de Model Context Protocol (MCP) para ABP.IO que permite que modelos de IA interajam com seus aplicativos ABP. Fornece mais de 48 ferramentas para gerenciar módulos, entidades, usuários, inquilinos, desenvolvimento de UI e muito mais.

O que é ABP.IO?

ABP.IO é um framework abrangente de desenvolvimento de aplicações web de código aberto para ASP.NET Core que fornece:

  • Arquitetura Moderna: Baseada em Domain-Driven Design (DDD) e princípios de Clean Architecture
  • Design Modular: Módulos pré-construídos para funcionalidades comuns (Identity, SaaS, CMS, etc.)
  • Suporte a Multi-inquilinos: Capacidades SaaS integradas
  • Múltiplas Opções de UI: Suporta MVC, Angular, Blazor, React Native
  • Ferramentas de Desenvolvimento: ABP Studio, ABP Suite para desenvolvimento rápido
  • Compatível com Microsserviços: Suporta arquiteturas monolíticas e de microsserviços

Recursos

Este servidor MCP abrangente fornece mais de 48 ferramentas cobrindo todos os aspectos do desenvolvimento ABP.IO, desde serviços de backend até desenvolvimento completo de UI:

🏗️ Gerenciamento de Aplicativos

  • Criar, ler, atualizar, excluir aplicativos ABP
  • Suporte para diferentes modelos (app, microsserviço, módulo, console)
  • Múltiplos frameworks de UI (MVC, Angular, Blazor, etc.)
  • Opções de provedor de banco de dados (Entity Framework, MongoDB, Dapper)

📦 Gerenciamento de Módulos

  • Instalar e desinstalar módulos ABP
  • Navegar por módulos ABP populares
  • Gerenciar dependências de módulos
  • Visualizar informações e documentação dos módulos

🗃️ Gerenciamento de Entidades

  • Criar e gerenciar entidades de domínio
  • Definir propriedades e relacionamentos de entidades
  • Gerar operações CRUD automaticamente
  • Suporte para padrões DDD (agregados, objetos de valor)

👥 Gerenciamento de Usuários

  • Gerenciamento completo do ciclo de vida do usuário
  • Controle de acesso baseado em funções
  • Filtragem e pesquisa de usuários
  • Gerenciamento de usuários ativos/inativos

🏢 Gerenciamento de Inquilinos (Multi-inquilinos)

  • Criar e gerenciar inquilinos para aplicações SaaS
  • Configurações específicas por inquilino
  • Gerenciamento de assinaturas
  • Estratégias de separação de banco de dados

🔐 Gerenciamento de Permissões

  • Sistema de permissões granulares
  • Permissões baseadas em funções e usuários
  • Grupos e hierarquias de permissões
  • Conceder/revogar permissões dinamicamente

📋 Registro de Auditoria

  • Trilha de auditoria abrangente
  • Monitoramento de desempenho
  • Rastreamento e análise de erros
  • Relatórios personalizados de registro de auditoria

⚙️ Tarefas em Segundo Plano

  • Gerenciamento de fila de tarefas
  • Tipos comuns de tarefas em segundo plano do ABP
  • Agendamento e monitoramento de tarefas
  • Tratamento de tarefas com falha

🎨 Desenvolvimento de UI

  • Gerar páginas (lista, detalhe, criar, editar, modal) para múltiplos frameworks
  • Gerenciamento e personalização de temas
  • Geração de componentes reutilizáveis (widgets, modais, parciais, diretivas, pipes)
  • Gerenciamento e personalização de layouts
  • Gerenciamento de menu de navegação
  • Criação e gerenciamento de widgets de dashboard
  • Geração de formulários complexos com validação
  • Suporte a localização multilíngue

Pré-requisitos

  • Node.js 18 ou superior
  • Acesso a um aplicativo ABP.IO com endpoints de API
  • Chave de API ou token de autenticação para seu aplicativo ABP

Instalação

Método 1: Usando NPX (Recomendado)

Não é necessária instalação! Basta usar npx para executar a versão mais recente:

# 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

Método 2: Instalação Global

# 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

Método 3: Desenvolvimento Local

# 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

Configuração

Parâmetros Obrigatórios

  • --stdio: Usar transporte stdio para clientes MCP

Parâmetros de Autenticação

  • --api-key: Chave de API do seu aplicativo ABP (obrigatória para funcionalidade completa)
  • --base-url: URL base do seu aplicativo ABP (padrão: http://localhost:44300)
  • --info-only-mode: Habilitar apenas ferramentas informativas que não exigem autenticação de API

Modos de Operação

O Servidor MCP ABP suporta dois modos de operação:

🔐 Modo Completo (Padrão)

  • Requer o parâmetro --api-key
  • Fornece acesso a todas as 48+ ferramentas
  • Pode realizar todas as operações no seu aplicativo ABP
  • Recomendado para uso em desenvolvimento e produção
abp-io-mcp-server --stdio --api-key=YOUR_API_KEY --base-url=https://your-abp-app.com

📚 Modo Somente Informação

  • Nenhuma chave de API necessária
  • Fornece 13 ferramentas informativas e de geração de UI
  • Inclui documentação ABP, melhores práticas, guias de solução de problemas
  • Gere modelos de componentes de UI para Angular, Blazor e MVC
  • Perfeito para explorar conceitos ABP e criar modelos de código sem um aplicativo em execução
abp-io-mcp-server --stdio --info-only-mode

Ferramentas do Modo Somente Informação:

  • abp_get_info - Visão geral e capacidades do framework ABP
  • abp_get_documentation - Links para documentação oficial
  • abp_get_help - Guia de uso e exemplos
  • abp_list_available_modules - Todos os módulos ABP disponíveis
  • abp_list_ui_frameworks - Frameworks de UI suportados
  • abp_list_database_providers - Opções de banco de dados
  • abp_get_cli_commands - Referência da CLI
  • abp_get_best_practices - Diretrizes de desenvolvimento
  • abp_get_troubleshooting_guide - Problemas comuns e soluções
  • abp_generate_component - Gerar modelos de componentes de UI (Angular, Blazor, MVC)
  • abp_get_themes - Temas disponíveis e informações de personalização
  • abp_generate_form - Gerar modelos de formulários com validação
  • abp_get_ui_examples - Exemplos de código e trechos para diferentes frameworks

Variáveis de Ambiente

Você também pode definir a configuração usando variáveis de ambiente:

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

Uso

Com Claude Desktop

Adicione o seguinte ao seu arquivo de configuração do Claude Desktop:

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

Modo Completo (Todas as Ferramentas)

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

Modo Somente Informação (Sem Chave de API)

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

Usando Instalação Local

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

Com Outros Clientes MCP

Este servidor segue o protocolo MCP padrão e pode ser usado com qualquer cliente compatível com MCP.

Ferramentas Disponíveis

Ferramentas de Aplicativo

  • abp_get_applications - Obter todos os aplicativos ABP
  • abp_get_application - Obter aplicativo por ID
  • abp_create_application - Criar novo aplicativo ABP
  • abp_update_application - Atualizar aplicativo existente
  • abp_delete_application - Excluir aplicativo

Ferramentas de Módulo

  • abp_get_modules - Obter todos os módulos ABP
  • abp_get_module - Obter módulo por ID
  • abp_install_module - Instalar módulo ABP
  • abp_uninstall_module - Desinstalar módulo
  • abp_get_popular_modules - Obter módulos ABP populares

Ferramentas de Entidade

  • abp_get_entities - Obter todas as entidades
  • abp_get_entity - Obter entidade por ID
  • abp_create_entity - Criar nova entidade
  • abp_generate_crud - Gerar operações CRUD

Ferramentas de Usuário

  • abp_get_users - Obter todos os usuários
  • abp_get_user - Obter usuário por ID
  • abp_create_user - Criar novo usuário
  • abp_update_user - Atualizar usuário
  • abp_delete_user - Excluir usuário

Ferramentas de Inquilino

  • abp_get_tenants - Obter todos os inquilinos
  • abp_get_tenant - Obter inquilino por ID
  • abp_create_tenant - Criar novo inquilino
  • abp_update_tenant - Atualizar inquilino
  • abp_delete_tenant - Excluir inquilino

Ferramentas de Permissão

  • abp_get_permissions - Obter permissões
  • abp_get_permissions_by_group - Obter permissões por grupo
  • abp_grant_permission - Conceder permissão
  • abp_revoke_permission - Revogar permissão

Ferramentas de Auditoria

  • abp_get_audit_logs - Obter registros de auditoria
  • abp_get_audit_log - Obter registro de auditoria por ID
  • abp_get_audit_summary - Obter estatísticas de auditoria

Ferramentas de Tarefas em Segundo Plano

  • abp_get_background_jobs - Obter tarefas em segundo plano
  • abp_get_background_job - Obter tarefa por ID
  • abp_enqueue_background_job - Enfileirar nova tarefa
  • abp_delete_background_job - Excluir tarefa
  • abp_get_common_job_types - Obter tipos comuns de tarefas

Ferramentas de Desenvolvimento de UI

Geração de Páginas

  • abp_generate_page - Gerar páginas (lista, detalhe, criar, editar, modal)

Gerenciamento de Temas

  • abp_get_themes - Obter todos os temas disponíveis
  • abp_get_theme - Obter detalhes de tema específico
  • abp_apply_theme - Aplicar e personalizar temas

Geração de Componentes

  • abp_generate_component - Gerar componentes de UI reutilizáveis

Gerenciamento de Layout

  • abp_get_layouts - Obter todos os layouts disponíveis
  • abp_get_layout - Obter detalhes de layout específico
  • abp_update_layout - Atualizar configuração de layout

Gerenciamento de Menu

  • abp_get_menus - Obter todos os menus do aplicativo
  • abp_get_menu - Obter detalhes de menu específico
  • abp_add_menu_item - Adicionar itens de menu com ícones e permissões
  • abp_remove_menu_item - Remover itens de menu

Gerenciamento de Widgets

  • abp_get_widgets - Obter todos os widgets de dashboard
  • abp_get_widget - Obter detalhes de widget específico
  • abp_create_widget - Criar novos widgets de dashboard
  • abp_update_widget - Atualizar configuração de widget
  • abp_delete_widget - Excluir widgets

Geração de Formulários

  • abp_generate_form - Gerar formulários complexos com validação

Localização

  • abp_get_localization_resources - Obter todos os recursos de localização
  • abp_get_localization_resource - Obter recurso específico por cultura
  • abp_update_localization_text - Atualizar/adicionar texto localizado
  • abp_get_supported_cultures - Obter todos os idiomas suportados

Exemplos

Criando um Novo Aplicativo ABP

// Create a new microservice application with Angular UI
{
  "name": "my-microservice",
  "displayName": "My Microservice App",
  "template": "microservice",
  "framework": "angular",
  "database": "ef"
}

Instalando Módulos Populares

// Install Identity Pro module
{
  "packageName": "Volo.Abp.Identity.Pro"
}

// Install SaaS module
{
  "packageName": "Volo.Saas"
}

Criando uma Entidade de Domínio

// 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
    }
  ]
}

Gerenciando Usuários

// Create a new user
{
  "userName": "john.doe",
  "name": "John",
  "surname": "Doe",
  "email": "john.doe@example.com",
  "password": "SecurePassword123!",
  "roleNames": ["User", "Manager"]
}

Operações Multi-inquilinos

// Create a new tenant
{
  "name": "acme-corp",
  "isActive": true,
  "editionId": "premium-edition-id"
}

Exemplos de Desenvolvimento de UI

Gerando Páginas

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

Personalização de Temas

// Apply a custom theme with brand colors
{
  "name": "LeptonX",
  "primaryColor": "#1e88e5",
  "secondaryColor": "#ffc107",
  "customCss": ".main-header { background: linear-gradient(45deg, #1e88e5, #1976d2); }"
}

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

Adicionando Itens de Menu

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

Gerando Formulários

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

Gerenciamento de Localização

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

Obtendo Sua Chave de API ABP

Método 1: Através das Configurações do Aplicativo ABP

  1. Faça login no seu aplicativo ABP como administrador
  2. Vá para Administração → Configurações
  3. Procure por configurações de API ou Integração
  4. Gere uma nova chave de API

Método 2: Usando IdentityServer4/OpenIddict

Se seu aplicativo ABP usa IdentityServer4 ou OpenIddict:

  1. Crie um novo aplicativo cliente
  2. Defina escopos e permissões apropriados
  3. Use o fluxo de credenciais do cliente para obter token de acesso

Método 3: Implementação Personalizada

Você pode precisar implementar autenticação de API personalizada com base na configuração do seu aplicativo ABP.

Desenvolvimento

# 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

Suporte a Docker

Construindo Imagem Docker

docker build -t abp-io-mcp-server .

Executando com Docker

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

Solução de Problemas

Problemas Comuns

  1. Falha na Conexão

    • Verifique se seu aplicativo ABP está em execução
    • Verifique se a URL base está correta
    • Garanta que a chave de API seja válida
  2. Permissão Negada

    • Verifique se a chave de API tem permissões suficientes
    • Verifique funções e permissões de usuário no aplicativo ABP
  3. Módulo Não Encontrado

    • Garanta que o módulo ABP esteja disponível no seu aplicativo
    • Verifique as dependências do módulo
  4. Falha na Criação de Entidade

    • Verifique se o nome da entidade é único
    • Verifique se as definições de propriedade são válidas
    • Garanta que o namespace exista

Modo de Depuração

Execute com registro de depuração:

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

Contribuindo

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.

Projetos Relacionados

Suporte

Se você encontrar algum problema:

  1. Verifique as Issues do GitHub
  2. Crie uma nova issue com detalhes sobre seu problema
  3. Inclua sua versão do Node.js, sistema operacional e quaisquer mensagens de erro
  4. Forneça etapas para reproduzir o problema

Changelog

v1.1.0

  • NOVO: Ferramentas abrangentes de Desenvolvimento de UI (16 novas ferramentas)
    • Geração de páginas para múltiplos frameworks (MVC, Angular, Blazor, Blazor Server)
    • Gerenciamento e personalização de temas
    • Geração de componentes reutilizáveis (widgets, modais, parciais, diretivas, pipes)
    • Gerenciamento e personalização de layouts
    • Gerenciamento de menu de navegação com permissões
    • Criação e gerenciamento de widgets de dashboard
    • Geração de formulários complexos com validação
    • Suporte a localização multilíngue
  • Cliente de API aprimorado com métodos de desenvolvimento de UI
  • Documentação atualizada com exemplos de desenvolvimento de UI
  • Total de ferramentas expandido para 48+

v1.0.0

  • Lançamento inicial
  • Integração completa com a API ABP.IO
  • Suporte para todos os principais recursos ABP (32+ ferramentas)
  • Suporte a Docker
  • Documentação abrangente