MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

A
Azure MCP Server
作者 @pcsouzafv

MCP server by pcsouzafv

创建于 11/3/2025
更新于 about 1 month ago
Repository documentation and setup instructions

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 install

2. Configurar variáveis de ambiente

Copie o arquivo .env.example para .env:

cp .env.example .env

Edite 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-staging

3. 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_ID
  • password → AZURE_CLIENT_SECRET
  • tenant → 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 dev

Produção:

npm start

Testar servidor:

npm test

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

GET /health

Verifica 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/vms

Listar VMs por Resource Group

GET /api/vms/resource-group/:resourceGroup

Obter detalhes de uma VM

GET /api/vms/:resourceGroup/:vmName

Obter status de uma VM

GET /api/vms/:resourceGroup/:vmName/status

Virtual Machine Scale Sets (VMSS)

Listar todos os VMSS

GET /api/vmss

Listar VMSS por Resource Group

GET /api/vmss/resource-group/:resourceGroup

Obter detalhes de um VMSS

GET /api/vmss/:resourceGroup/:vmssName

Obter status de um VMSS

GET /api/vmss/:resourceGroup/:vmssName/status

Listar instâncias de um VMSS

GET /api/vmss/:resourceGroup/:vmssName/instances

Obter view de uma instância específica

GET /api/vmss/:resourceGroup/:vmssName/instances/:instanceId

Exemplos de Uso

Listar todas as VMs

curl http://localhost:3000/api/vms

Obter status de uma VM específica

curl http://localhost:3000/api/vms/meu-resource-group/minha-vm/status

Listar instâncias de um VMSS

curl http://localhost:3000/api/vmss/meu-resource-group/meu-vmss/instances

Estrutura 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.md

Segurança

  • Nunca commite o arquivo .env com credenciais reais
  • Use 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.

快速设置
此服务器的安装指南

安装包 (如果需要)

npx @modelcontextprotocol/server-azure-mcp-server

Cursor 配置 (mcp.json)

{ "mcpServers": { "pcsouzafv-azure-mcp-server": { "command": "npx", "args": [ "pcsouzafv-azure-mcp-server" ] } } }