Azure MCP Server
Servidor MCP (Model Context Protocol) desenvolvido com Node.js e Express para monitorar serviços da Azure, incluindo Virtual Machines (VMs) e Virtual Machine Scale Sets (VMSS).
Funcionalidades
Monitoramento de Virtual Machines (VMs)
Monitoramento de Virtual Machine Scale Sets (VMSS)
Obtenção de status e detalhes de recursos Azure
API RESTful com endpoints organizados
Autenticação segura com Azure via Service Principal
Pré-requisitos
Node.js 14+ instalado
Conta Azure ativa
Service Principal configurado com permissões adequadas
Subscription ID da Azure
Configuração
1. Instalação
2. Configurar variáveis de ambiente
Copie o arquivo .env.example para .env:
Edite o arquivo .env com suas credenciais Azure:
3. Criar Service Principal na Azure
Anote os valores retornados:
appId→ AZURE_CLIENT_IDpassword→ AZURE_CLIENT_SECRETtenant→ AZURE_TENANT_ID
Uso
Iniciar o servidor
IMPORTANTE: O servidor pode iniciar mesmo sem as credenciais Azure configuradas, mas as chamadas à API falharão. Configure o arquivo .env antes de usar os endpoints da API.
Desenvolvimento (com hot-reload):
Produção:
Testar servidor:
O servidor estará disponível em http://localhost:3000
Ao iniciar, você verá:
✓ Azure Config: Configurado → Credenciais OK, API funcionará
✗ Azure Config: Não configurado → Configure o .env antes de usar a API
Endpoints da API
Health Check
Verifica se o servidor está funcionando.
Informações do Serviço
Retorna informações sobre o serviço e lista de endpoints disponíveis.
Virtual Machines (VMs)
Listar todas as VMs
Listar VMs por Resource Group
Obter detalhes de uma VM
Obter status de uma VM
Virtual Machine Scale Sets (VMSS)
Listar todos os VMSS
Listar VMSS por Resource Group
Obter detalhes de um VMSS
Obter status de um VMSS
Listar instâncias de um VMSS
Obter view de uma instância específica
Exemplos de Uso
Listar todas as VMs
Obter status de uma VM específica
Listar instâncias de um VMSS
Estrutura do Projeto
Segurança
Nunca commite o arquivo
.envcom credenciais reaisUse Service Principal com princípio de menor privilégio
Em produção, considere usar Azure Key Vault para armazenar secrets
O servidor usa Helmet.js para headers de segurança HTTP
Troubleshooting
Erro de autenticação
Verifique se as credenciais no .env estão corretas e se o Service Principal tem permissões adequadas.
Timeout ao listar recursos
Aumente o timeout no cliente ou verifique a conectividade com Azure.
Resource Group não encontrado
Certifique-se de que o Resource Group existe e que o Service Principal tem acesso a ele.
Melhorias Futuras
Adicionar cache para melhorar performance
Implementar webhooks para notificações
Adicionar monitoramento de App Services
Implementar autenticação no próprio servidor
Adicionar métricas e logs estruturados
Criar dashboard web para visualização
Adicionar testes unitários e de integração
Licença
ISC
Contribuindo
Pull requests são bem-vindos. Para mudanças maiores, abra uma issue primeiro para discutir o que você gostaria de mudar.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables monitoring and management of Azure resources including Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS) through a RESTful API with secure Service Principal authentication.