Skip to main content
Glama
base.pyโ€ข2.74 kB
""" Base models for TrueNAS MCP Server """ from typing import Any, Dict, Optional, Generic, TypeVar from datetime import datetime from pydantic import BaseModel as PydanticBaseModel, Field T = TypeVar("T") class BaseModel(PydanticBaseModel): """Base model with common configuration""" model_config = { "populate_by_name": True, # Updated from allow_population_by_field_name "use_enum_values": True, "validate_assignment": True, "json_encoders": { datetime: lambda v: v.isoformat() }, "json_schema_extra": { # Updated from schema_extra "example": {} } } class ResponseModel(BaseModel, Generic[T]): """ Standard response model for all API responses Provides consistent response structure with success indicator, optional data, error information, and metadata. """ success: bool = Field( ..., description="Indicates if the operation was successful" ) data: Optional[T] = Field( None, description="Response data (present on success)" ) error: Optional[str] = Field( None, description="Error message (present on failure)" ) error_details: Optional[Dict[str, Any]] = Field( None, description="Additional error details" ) metadata: Optional[Dict[str, Any]] = Field( default_factory=dict, description="Additional metadata about the response" ) timestamp: datetime = Field( default_factory=datetime.utcnow, description="Response timestamp" ) @classmethod def success_response(cls, data: T, metadata: Optional[Dict[str, Any]] = None) -> "ResponseModel[T]": """ Create a successful response Args: data: Response data metadata: Optional metadata Returns: ResponseModel instance """ return cls( success=True, data=data, metadata=metadata or {} ) @classmethod def error_response( cls, error: str, error_details: Optional[Dict[str, Any]] = None, metadata: Optional[Dict[str, Any]] = None ) -> "ResponseModel[T]": """ Create an error response Args: error: Error message error_details: Optional error details metadata: Optional metadata Returns: ResponseModel instance """ return cls( success=False, error=error, error_details=error_details, metadata=metadata or {} )

Latest Blog Posts

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/vespo92/TrueNasCoreMCP'

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