MCP Dynamics CRM Server
Servidor MCP (Model Context Protocol) para automação do Microsoft Dynamics CRM e Power Platform.
Funcionalidades
1. Plugins (C#)
- Geração de código C# para plugins com templates profissionais
- Registro e gerenciamento de steps de plugins
- Listagem de assemblies, tipos e steps
- Ativar/desativar steps
- Consulta de trace logs para diagnóstico
- Geração de projetos completos (.csproj + classes)
2. Web Resources
- Criação de web resources (JS, HTML, CSS, imagens, etc.)
- Templates com helpers para formulários Dynamics
- Atualização de conteúdo
- Publicação de web resources
- Leitura de conteúdo (decodificação Base64)
3. Schema (Tabelas, Campos, Formulários, Views)
- Criação de tabelas (entidades) customizadas
- Criação de colunas com todos os tipos suportados
- Gerenciamento de formulários (leitura e atualização de FormXML)
- Criação e listagem de views (system e personal)
- Criação de relacionamentos (1:N e N:N)
- Geração de FetchXML
- Publicação de customizações
4. Gestão de Soluções
- Criação de soluções e publicadores
- Adicionar/remover componentes
- Exportação (managed/unmanaged)
- Importação com acompanhamento de status
- Clone/patch de soluções
- Verificação de dependências
5. Telemetria e Performance
- Dashboard de saúde do sistema
- Análise de performance de plugins
- Identificação de plugins lentos
- Monitoramento de workflows e processos
- Análise por entidade
- Histórico de auditoria
- Monitoramento de system jobs
- Operações em massa
Configuração
Pré-requisitos
- Node.js >= 18
- Azure AD App Registration com permissões para Dynamics 365:
user_impersonation no Dynamics CRM (delegated) ou
- Application permissions configuradas
Variáveis de Ambiente
cp .env.example .env
Configure no .env:
| Variável |
Descrição |
Obrigatório |
DYNAMICS_TENANT_ID |
Azure AD Tenant ID |
Sim |
DYNAMICS_CLIENT_ID |
App Registration Client ID |
Sim |
DYNAMICS_CLIENT_SECRET |
Client Secret |
Sim* |
DYNAMICS_ENVIRONMENT_URL |
URL do ambiente (ex: https://org.crm.dynamics.com) |
Sim |
DYNAMICS_USERNAME |
Username (auth delegada) |
Não |
DYNAMICS_PASSWORD |
Password (auth delegada) |
Não |
*Obrigatório para autenticação app-only (recomendado).
Instalação
npm install
npm run build
Uso com Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"dynamics-crm": {
"command": "node",
"args": ["/caminho/para/mcp-dynamics-crm/dist/index.js"],
"env": {
"DYNAMICS_TENANT_ID": "seu-tenant-id",
"DYNAMICS_CLIENT_ID": "seu-client-id",
"DYNAMICS_CLIENT_SECRET": "seu-client-secret",
"DYNAMICS_ENVIRONMENT_URL": "https://seuorg.crm.dynamics.com"
}
}
}
}
Uso com Claude Code
{
"mcpServers": {
"dynamics-crm": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/caminho/para/mcp-dynamics-crm",
"env": {
"DYNAMICS_TENANT_ID": "seu-tenant-id",
"DYNAMICS_CLIENT_ID": "seu-client-id",
"DYNAMICS_CLIENT_SECRET": "seu-client-secret",
"DYNAMICS_ENVIRONMENT_URL": "https://seuorg.crm.dynamics.com"
}
}
}
}
Tools Disponíveis
Plugins
| Tool |
Descrição |
dynamics_generate_plugin_code |
Gera código C# de plugin |
dynamics_list_plugin_assemblies |
Lista assemblies registrados |
dynamics_list_plugin_types |
Lista tipos (classes) de um assembly |
dynamics_list_plugin_steps |
Lista steps registrados |
dynamics_register_plugin_step |
Registra novo step |
dynamics_toggle_plugin_step |
Ativa/desativa step |
dynamics_delete_plugin_step |
Remove step |
dynamics_get_plugin_trace_logs |
Consulta logs de trace |
dynamics_generate_plugin_project |
Gera projeto completo |
Web Resources
| Tool |
Descrição |
dynamics_create_web_resource |
Cria web resource |
dynamics_update_web_resource |
Atualiza conteúdo |
dynamics_list_web_resources |
Lista com filtros |
dynamics_publish_web_resources |
Publica web resources |
dynamics_get_web_resource_content |
Lê conteúdo decodificado |
dynamics_generate_web_resource_code |
Gera código template |
dynamics_delete_web_resource |
Remove web resource |
Schema
| Tool |
Descrição |
dynamics_create_table |
Cria tabela (entidade) |
dynamics_create_column |
Cria coluna (atributo) |
dynamics_list_tables |
Lista tabelas |
dynamics_list_columns |
Lista colunas |
dynamics_get_forms |
Recupera formulários |
dynamics_update_form |
Atualiza formulário |
dynamics_get_views |
Recupera views |
dynamics_create_view |
Cria view |
dynamics_update_column |
Atualiza coluna |
dynamics_delete_column |
Remove coluna |
dynamics_create_relationship |
Cria relacionamento |
dynamics_publish_customizations |
Publica customizações |
dynamics_generate_fetchxml |
Gera FetchXML |
Soluções
| Tool |
Descrição |
dynamics_create_solution |
Cria solução |
dynamics_list_solutions |
Lista soluções |
dynamics_add_solution_component |
Adiciona componente |
dynamics_remove_solution_component |
Remove componente |
dynamics_list_solution_components |
Lista componentes |
dynamics_export_solution |
Exporta solução |
dynamics_import_solution |
Importa solução |
dynamics_get_import_job_status |
Status de importação |
dynamics_clone_solution |
Clona/patch solução |
dynamics_list_publishers |
Lista publicadores |
dynamics_create_publisher |
Cria publicador |
dynamics_delete_solution |
Remove solução |
dynamics_check_solution_dependencies |
Verifica dependências |
Telemetria
| Tool |
Descrição |
dynamics_get_plugin_performance |
Performance de plugins |
dynamics_get_workflow_performance |
Performance de workflows |
dynamics_get_active_processes |
Processos ativos |
dynamics_get_system_jobs |
Jobs do sistema |
dynamics_get_entity_analytics |
Análise por entidade |
dynamics_get_audit_history |
Histórico de auditoria |
dynamics_get_slow_plugins |
Plugins lentos |
dynamics_get_bulk_operations |
Operações em massa |
dynamics_system_health |
Dashboard de saúde |
Exemplos de Uso
Criar um plugin
"Crie um plugin PreOperation para validar o campo email na entidade contact"
Criar uma tabela com campos
"Crie uma tabela new_projeto com campos nome, data_inicio (DateTime), status (Picklist com Aberto/Em Andamento/Concluído) e valor (Money)"
Verificar saúde do sistema
"Mostre o dashboard de saúde do sistema e identifique plugins lentos"
Gerenciar soluções
"Liste as soluções unmanaged e exporte a solução MinhaSolucao"
Licença
MIT