Skip to main content
Glama

MCP Git Server

by MementoRC
notifications.py1.97 kB
import logging from typing import Any, Literal from pydantic import BaseModel, ValidationError logger = logging.getLogger(__name__) class CancelledParams(BaseModel): """Parameters for a cancelled notification.""" requestId: str | int reason: str | None = None class CancelledNotification(BaseModel): """ A notification indicating that a previously sent request has been cancelled. https://microsoft.github.io/language-server-protocol/specifications/mcp/0.2.0-pre.1/#cancelledNotification """ jsonrpc: Literal["2.0"] = "2.0" method: Literal["notifications/cancelled"] = "notifications/cancelled" params: CancelledParams # Union type for all client notifications ClientNotification = ( CancelledNotification # Add other notification types here as they are implemented using | ) def parse_client_notification(data: dict[str, Any]) -> ClientNotification: """ Parse a client notification from raw data based on its type field. Args: data: Raw notification data containing 'method' field Returns: Parsed notification instance Raises: ValidationError: If the notification cannot be parsed """ notification_method = data.get("method", "") if notification_method == "notifications/cancelled": return CancelledNotification.model_validate(data) else: # Log unknown notification type but don't crash logger.warning(f"Unknown notification method: {notification_method}") # For unknown types, attempt to parse as cancelled notification as fallback # This provides graceful degradation try: return CancelledNotification.model_validate(data) except ValidationError: # If all else fails, create a minimal cancelled notification logger.error(f"Failed to parse notification: {data}") return CancelledNotification(params=CancelledParams(requestId="unknown"))

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/MementoRC/mcp-git'

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