Skip to main content
Glama

Weather MCP Service

by Philip-Walsh
monitoring.ts1.92 kB
import { Router, Request, Response } from 'express'; import { getLogs, clearLogs } from '../middleware/index.js'; const router = Router(); router.get('/logs', (req: Request, res: Response) => { const limit = parseInt(req.query.limit as string) || 100; const logs = getLogs(limit); res.json({ logs, count: logs.length, limit }); }); router.delete('/logs', (req: Request, res: Response) => { clearLogs(); res.json({ message: 'Logs cleared successfully' }); }); router.get('/metrics', (req: Request, res: Response) => { const metrics = { timestamp: new Date().toISOString(), uptime: process.uptime(), memory: process.memoryUsage(), cpu: process.cpuUsage(), platform: process.platform, nodeVersion: process.version, environment: process.env.NODE_ENV || 'development' }; res.json(metrics); }); router.get('/stats', (req: Request, res: Response) => { const logs = getLogs(1000); // Get last 1000 requests const stats = { timestamp: new Date().toISOString(), totalRequests: logs.length, requestsByMethod: logs.reduce((acc, log) => { acc[log.method] = (acc[log.method] || 0) + 1; return acc; }, {} as Record<string, number>), requestsByStatus: logs.reduce((acc, log) => { const status = Math.floor(log.statusCode / 100) * 100; acc[`${status}xx`] = (acc[`${status}xx`] || 0) + 1; return acc; }, {} as Record<string, number>), averageResponseTime: logs.length > 0 ? Math.round(logs.reduce((sum, log) => sum + log.responseTime, 0) / logs.length) : 0, errorRate: logs.length > 0 ? Math.round((logs.filter(log => log.statusCode >= 400).length / logs.length) * 100) / 100 : 0 }; res.json(stats); }); export default router;

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/Philip-Walsh/weathernode'

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