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 ABPabp_get_documentation- Links para documentação oficialabp_get_help- Guia de uso e exemplosabp_list_available_modules- Todos os módulos ABP disponíveisabp_list_ui_frameworks- Frameworks de UI suportadosabp_list_database_providers- Opções de banco de dadosabp_get_cli_commands- Referência da CLIabp_get_best_practices- Diretrizes de desenvolvimentoabp_get_troubleshooting_guide- Problemas comuns e soluçõesabp_generate_component- Gerar modelos de componentes de UI (Angular, Blazor, MVC)abp_get_themes- Temas disponíveis e informações de personalizaçãoabp_generate_form- Gerar modelos de formulários com validaçãoabp_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 ABPabp_get_application- Obter aplicativo por IDabp_create_application- Criar novo aplicativo ABPabp_update_application- Atualizar aplicativo existenteabp_delete_application- Excluir aplicativo
Ferramentas de Módulo
abp_get_modules- Obter todos os módulos ABPabp_get_module- Obter módulo por IDabp_install_module- Instalar módulo ABPabp_uninstall_module- Desinstalar móduloabp_get_popular_modules- Obter módulos ABP populares
Ferramentas de Entidade
abp_get_entities- Obter todas as entidadesabp_get_entity- Obter entidade por IDabp_create_entity- Criar nova entidadeabp_generate_crud- Gerar operações CRUD
Ferramentas de Usuário
abp_get_users- Obter todos os usuáriosabp_get_user- Obter usuário por IDabp_create_user- Criar novo usuárioabp_update_user- Atualizar usuárioabp_delete_user- Excluir usuário
Ferramentas de Inquilino
abp_get_tenants- Obter todos os inquilinosabp_get_tenant- Obter inquilino por IDabp_create_tenant- Criar novo inquilinoabp_update_tenant- Atualizar inquilinoabp_delete_tenant- Excluir inquilino
Ferramentas de Permissão
abp_get_permissions- Obter permissõesabp_get_permissions_by_group- Obter permissões por grupoabp_grant_permission- Conceder permissãoabp_revoke_permission- Revogar permissão
Ferramentas de Auditoria
abp_get_audit_logs- Obter registros de auditoriaabp_get_audit_log- Obter registro de auditoria por IDabp_get_audit_summary- Obter estatísticas de auditoria
Ferramentas de Tarefas em Segundo Plano
abp_get_background_jobs- Obter tarefas em segundo planoabp_get_background_job- Obter tarefa por IDabp_enqueue_background_job- Enfileirar nova tarefaabp_delete_background_job- Excluir tarefaabp_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íveisabp_get_theme- Obter detalhes de tema específicoabp_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íveisabp_get_layout- Obter detalhes de layout específicoabp_update_layout- Atualizar configuração de layout
Gerenciamento de Menu
abp_get_menus- Obter todos os menus do aplicativoabp_get_menu- Obter detalhes de menu específicoabp_add_menu_item- Adicionar itens de menu com ícones e permissõesabp_remove_menu_item- Remover itens de menu
Gerenciamento de Widgets
abp_get_widgets- Obter todos os widgets de dashboardabp_get_widget- Obter detalhes de widget específicoabp_create_widget- Criar novos widgets de dashboardabp_update_widget- Atualizar configuração de widgetabp_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çãoabp_get_localization_resource- Obter recurso específico por culturaabp_update_localization_text- Atualizar/adicionar texto localizadoabp_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
- Faça login no seu aplicativo ABP como administrador
- Vá para Administração → Configurações
- Procure por configurações de API ou Integração
- Gere uma nova chave de API
Método 2: Usando IdentityServer4/OpenIddict
Se seu aplicativo ABP usa IdentityServer4 ou OpenIddict:
- Crie um novo aplicativo cliente
- Defina escopos e permissões apropriados
- 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
-
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
-
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
-
Módulo Não Encontrado
- Garanta que o módulo ABP esteja disponível no seu aplicativo
- Verifique as dependências do módulo
-
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
- Faça um fork do repositório
- Crie sua branch de recurso (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
Projetos Relacionados
- Framework ABP.IO - O framework oficial ABP.IO
- Documentação ABP.IO - Documentação abrangente
- Lattice HQ MCP - Implementação de referência do servidor MCP
Suporte
Se você encontrar algum problema:
- Verifique as Issues do GitHub
- Crie uma nova issue com detalhes sobre seu problema
- Inclua sua versão do Node.js, sistema operacional e quaisquer mensagens de erro
- 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