Skip to main content
Glama

MedX MCP Server

by yepdama
middleware.py2.08 kB
""" Middleware for request/response logging and error handling. """ import time from fastapi import Request, status from fastapi.responses import JSONResponse from starlette.middleware.base import BaseHTTPMiddleware from logger.logger_setup import get_logger logger = get_logger("middleware") class RequestLoggingMiddleware(BaseHTTPMiddleware): """Log all requests and responses with timing information.""" async def dispatch(self, request: Request, call_next): start_time = time.time() # Log request logger.info( "Request: %s %s from %s", request.method, request.url.path, request.client.host if request.client else "unknown" ) try: response = await call_next(request) # Calculate duration duration = time.time() - start_time # Log response logger.info( "Response: %s %s - Status: %s - Duration: %.3fs", request.method, request.url.path, response.status_code, duration ) return response except Exception as e: duration = time.time() - start_time logger.exception( "Request failed: %s %s - Duration: %.3fs - Error: %s", request.method, request.url.path, duration, str(e) ) raise async def exception_handler(request: Request, exc: Exception): """Global exception handler for standardized error responses.""" logger.exception("Unhandled exception: %s", str(exc)) return JSONResponse( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, content={ "error": { "message": "Internal server error", "type": type(exc).__name__, "detail": str(exc) if logger.level <= 10 else "See server logs" } } )

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/yepdama/medical-mcp-server'

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