Skip to main content
Glama

Azure MCP Server

by pcsouzafv
server.js2.94 kB
const express = require('express'); const cors = require('cors'); const helmet = require('helmet'); require('dotenv').config(); const vmRoutes = require('./routes/vmRoutes'); const vmssRoutes = require('./routes/vmssRoutes'); const azureConfig = require('./config/azure'); const app = express(); const PORT = process.env.PORT || 3000; // Middlewares de segurança e parsing app.use(helmet()); app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); // Logger middleware app.use((req, res, next) => { console.log(`[${new Date().toISOString()}] ${req.method} ${req.path}`); next(); }); // Health check endpoint app.get('/health', (req, res) => { res.json({ status: 'healthy', azureConfigured: azureConfig.isReady(), timestamp: new Date().toISOString(), service: 'Azure MCP Server' }); }); // Root endpoint app.get('/', (req, res) => { res.json({ service: 'Azure MCP Server', version: '1.0.0', description: 'Servidor para monitorar serviços da Azure (VMSS, VMs, etc)', endpoints: { vms: { listAll: 'GET /api/vms', listByResourceGroup: 'GET /api/vms/resource-group/:resourceGroup', getVM: 'GET /api/vms/:resourceGroup/:vmName', getVMStatus: 'GET /api/vms/:resourceGroup/:vmName/status' }, vmss: { listAll: 'GET /api/vmss', listByResourceGroup: 'GET /api/vmss/resource-group/:resourceGroup', getVMSS: 'GET /api/vmss/:resourceGroup/:vmssName', getVMSSStatus: 'GET /api/vmss/:resourceGroup/:vmssName/status', listInstances: 'GET /api/vmss/:resourceGroup/:vmssName/instances', getInstance: 'GET /api/vmss/:resourceGroup/:vmssName/instances/:instanceId' } } }); }); // Routes app.use('/api/vms', vmRoutes); app.use('/api/vmss', vmssRoutes); // Error handling middleware app.use((err, req, res, next) => { console.error('Error:', err); res.status(500).json({ success: false, error: err.message || 'Erro interno do servidor' }); }); // 404 handler app.use((req, res) => { res.status(404).json({ success: false, error: 'Endpoint não encontrado' }); }); // Start server app.listen(PORT, () => { console.log('='.repeat(50)); console.log(`✓ Azure MCP Server iniciado com sucesso!`); console.log(` Porta: ${PORT}`); console.log(` Ambiente: ${process.env.NODE_ENV || 'development'}`); console.log(` Azure Config: ${azureConfig.isReady() ? '✓ Configurado' : '✗ Não configurado'}`); console.log(` Health check: http://localhost:${PORT}/health`); console.log(` API Docs: http://localhost:${PORT}/`); console.log('='.repeat(50)); }); // Graceful shutdown process.on('SIGTERM', () => { console.log('SIGTERM recebido. Encerrando servidor...'); process.exit(0); }); process.on('SIGINT', () => { console.log('\nSIGINT recebido. Encerrando servidor...'); process.exit(0); }); module.exports = app;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pcsouzafv/azure-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server