Skip to main content
Glama
base.py2.08 kB
"""Base sync models for the Trakt MCP server.""" from datetime import datetime from typing import Literal from pydantic import BaseModel, Field from models.movies.movie import TraktMovie from models.shows.episode import TraktEpisode from models.shows.show import TraktShow class TraktSeason(BaseModel): """Represents a Trakt season for ratings.""" number: int = Field(ge=0) # Season 0 is typically specials ids: dict[str, str | int | None] | None = None class TraktSyncEpisodeRating(BaseModel): """Episode rating item for nested ratings within seasons.""" rating: int = Field(ge=1, le=10, description="Episode rating") number: int = Field(ge=1) # Episode numbers start at 1 class TraktSyncSeasonRating(BaseModel): """Season rating item for nested ratings within shows.""" rating: int | None = Field(default=None, ge=1, le=10, description="Season rating") number: int = Field(ge=0) # Season 0 is typically specials episodes: list[TraktSyncEpisodeRating] | None = None class TraktSyncRatingItem(BaseModel): """Rating item for POST/DELETE requests.""" rating: int | None = Field( default=None, ge=1, le=10, description="Rating from 1 to 10 (required for POST, optional for DELETE)", ) rated_at: datetime | None = Field( default=None, description="Timestamp when rated (UTC)" ) title: str | None = None year: int | None = Field(default=None, gt=1800) # Reasonable year constraint ids: dict[str, str | int | None] | None = None # For episodes within shows seasons: list[TraktSyncSeasonRating] | None = None class TraktSyncRating(BaseModel): """Individual rating item from sync API.""" rated_at: datetime = Field(description="Timestamp when rated (UTC)") rating: int = Field(ge=1, le=10, description="Rating from 1 to 10") type: Literal["movie", "show", "season", "episode"] movie: TraktMovie | None = None show: TraktShow | None = None season: TraktSeason | None = None episode: TraktEpisode | None = None

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/wwiens/trakt_mcpserver'

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