ryot-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
ryot-mcp
An MCP server that gives an AI assistant your Ryot, the self-hosted tracker for what you watch, play and read: find a movie, a show, an anime, a book or a game, see what you thought of it and when you saw it, log a watch from anywhere (a cinema, Netflix, your own server), rate and review it, and keep your Watchlist.
It signs in to Ryot as one user, with a session that user minted, and keeps that session alive by itself. It speaks MCP over streamable HTTP behind a bearer token. Nothing here downloads anything or touches another user.
Written against Ryot v10 (tested with 10.5.6). Ryot v11 is a rewrite with a new API; this server will need a new release for it.
Tools
Read
Tool | |
| Titles of one kind by name, from Ryot's default source for it (TMDB, AniList, Hardcover or Open Library, IGDB…) or one you name; each with your state. |
| One title in full: year, genres, where to stream it, runtime, seasons, the main people, the description; and your side: every time you saw it, what is in progress, your reviews, its collections. |
| Titles like one, from its source's suggestions. |
| What is trending now. |
| What you have seen, rated, started or collected; by kind, filter (rated, unrated, dropped, on hold, unfinished), sort, or title. |
| Your collections and their sizes. |
| The titles in one, the Watchlist by default. |
| New episodes and releases of what you follow. |
Write
Tool | |
| You finished it: dated, or undated, with where. For a show: an episode, a whole season, or every episode at once. |
| You started it. |
| What is in progress: a percent, or completed, dropped or on hold. |
| A rating out of 10 (converted to your Ryot scale) and/or a text; private unless asked; one review can be edited. |
| Watchlist (or any collection) membership. Idempotent. |
| A collection of your own; returns the existing one if the name is taken. |
| Undo a wrong entry. Destructive. |
Annotations are honest: readOnlyHint on reads; idempotentHint false on
log_seen, start and review, each of which adds an entry every call; and
destructiveHint on the two that delete. Ryot applies progress and
collection changes in the background, so a read straight after one may not
show it yet.
Ratings are out of 10 in and out of every tool, whatever scale you chose in
Ryot. Dates are YYYY-MM-DD (taken as noon UTC, so the day is right in any
time zone a person is likely to be in) or full ISO 8601 timestamps.
Related MCP server: MediaSage
The session
Ryot authenticates with a session token, and a session lasts
USERS_TOKEN_VALID_FOR_DAYS (90 by default) from when it was minted, however
often it is used. So the server holds its own:
You mint one in Ryot: Settings › Integrations › Create API token.
You hand it over with
ryot-mcp login(it asks without echo, or reads stdin), or asRYOT_SESSIONin the environment.The server checks it and at once mints a fresh one from it with
generateAuthToken, so it knows its age. WithRYOT_STATE_DIRset, it saves that one (session.json, mode 0600) and prefers it from then on; a running server picks it up on its next call.Every 6 hours it checks, and once the session it holds is
RYOT_RENEW_AFTER_DAYSold (30 by default), mints the next.
So the token you minted is used once. If the server was stopped longer than
a session lasts, mint a new one and log in again. ryot-mcp status says
whether a saved session exists, how old it is and whether Ryot accepts it,
without printing it; GET /healthz answers ok only while Ryot accepts it.
Configuration
Variable | |
| Required, 16+ characters. Every request but |
| Required. Ryot's base URL, e.g. |
| The session you minted. Optional once a saved one exists. |
| A writable directory for the renewed session. Without it, renewal happens in memory only. |
| 1 to 80, default 30. |
| Default |
Run
nix run github:santiagotoscanini/ryot-mcpor install the package (pip install ., Python 3.12+) and run ryot-mcp.
Develop
nix flake check # the test suite (in the package's build) and ruffLicence
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
The media memory layer for AI agents and their humans. Your AI client can search your collection, add and log what you've finished, update ratings and lists, and find patterns across everything you've read, watched, played, and listened to.
Media memory for AI agents: books, movies, music, shows, anime, podcasts, games, manga.
Ask Claude, ChatGPT, or Grok about your ReelRifter watchlist, history, and viewing stats.
Track the TV and films you watch, and find more like them, by talking to your own AI.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to interact with Overseerr for automated media discovery, requests, and management in your Plex ecosystem, including searching for movies/TV shows, requesting media, checking request status, and managing approvals.6160 npm25MIT
- FlicenseNot gradedqualityDmaintenanceTracks movies, books, and TV shows with ratings and preferences, providing intelligent cross-media recommendations. Automatically fetches metadata from OMDB, Google Books, and TMDB to help manage watchlists and analyze viewing patterns.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage media automation services like Sonarr, Radarr, Prowlarr, Bazarr, Overseerr, and Plex through natural language commands.7MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to interact with BookLore self-hosted libraries, allowing natural language queries to search books, manage reading status, ratings, series, authors, and highlights.71-