Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Azure MCP Serverlist all VMs in the production resource group"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
cd azure-mcp-server
npm install2. Configurar variáveis de ambiente
Copie o arquivo .env.example para .env:
cp .env.example .envEdite o arquivo .env com suas credenciais Azure:
# Azure Configuration
AZURE_SUBSCRIPTION_ID=sua-subscription-id
AZURE_TENANT_ID=seu-tenant-id
AZURE_CLIENT_ID=seu-client-id
AZURE_CLIENT_SECRET=seu-client-secret
# Server Configuration
PORT=3000
NODE_ENV=development
# Resource Groups to Monitor (comma-separated)
RESOURCE_GROUPS=rg-production,rg-staging3. Criar Service Principal na Azure
az login
az ad sp create-for-rbac --name "azure-mcp-server" --role "Reader" --scopes /subscriptions/{subscription-id}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):
npm run devProdução:
npm startTestar servidor:
npm testO 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
GET /healthVerifica se o servidor está funcionando.
Informações do Serviço
GET /Retorna informações sobre o serviço e lista de endpoints disponíveis.
Virtual Machines (VMs)
Listar todas as VMs
GET /api/vmsListar VMs por Resource Group
GET /api/vms/resource-group/:resourceGroupObter detalhes de uma VM
GET /api/vms/:resourceGroup/:vmNameObter status de uma VM
GET /api/vms/:resourceGroup/:vmName/statusVirtual Machine Scale Sets (VMSS)
Listar todos os VMSS
GET /api/vmssListar VMSS por Resource Group
GET /api/vmss/resource-group/:resourceGroupObter detalhes de um VMSS
GET /api/vmss/:resourceGroup/:vmssNameObter status de um VMSS
GET /api/vmss/:resourceGroup/:vmssName/statusListar instâncias de um VMSS
GET /api/vmss/:resourceGroup/:vmssName/instancesObter view de uma instância específica
GET /api/vmss/:resourceGroup/:vmssName/instances/:instanceIdExemplos de Uso
Listar todas as VMs
curl http://localhost:3000/api/vmsObter status de uma VM específica
curl http://localhost:3000/api/vms/meu-resource-group/minha-vm/statusListar instâncias de um VMSS
curl http://localhost:3000/api/vmss/meu-resource-group/meu-vmss/instancesEstrutura do Projeto
azure-mcp-server/
├── src/
│ ├── config/
│ │ └── azure.js # Configuração de autenticação Azure
│ ├── services/
│ │ ├── vmService.js # Serviço para gerenciar VMs
│ │ └── vmssService.js # Serviço para gerenciar VMSS
│ ├── routes/
│ │ ├── vmRoutes.js # Rotas para VMs
│ │ └── vmssRoutes.js # Rotas para VMSS
│ └── server.js # Servidor Express principal
├── .env.example # Exemplo de variáveis de ambiente
├── .gitignore
├── package.json
└── README.mdSeguranç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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.