Ryot MCP Starter
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ryot MCP Starterlog a walk for 30 minutes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ryot MCP Starter
A local/private MCP server for a self-hosted Ryot instance, focused on workouts/routines, body measurements, movies, shows, and games.
Project layout
src/
index.ts # MCP bootstrap only
ryot.ts # GraphQL client + live schema helpers
schemas.ts # Shared zod schemas/enums
common.ts # Shared helpers
discovery-tools.ts # Schema/debug/discovery tools
workout-tools.ts # Fitness, measurements, routine tools
media-tools.ts # Movies, shows, games, collections, progress tools
media-convenience-tools.ts # Search-and-act, next-episode, collections, raw review helpersRelated MCP server: nas-mcp-server
Configure Cursor/Claude
{
"mcpServers": {
"ryot": {
"command": "node",
"args": ["/absolute/path/to/ryot-mcp-starter/dist/index.js"],
"env": {
"RYOT_BASE_URL": "https://ryot.shivansh.top",
"RYOT_AUTH_HEADER": "Bearer YOUR_RYOT_API_TOKEN",
"RYOT_COOKIE": "",
"RYOT_USER_ID": "",
"RYOT_MOVIE_WATCHLIST_COLLECTION": "Movie Watchlist",
"RYOT_SHOW_WATCHLIST_COLLECTION": "Show Watchlist",
"RYOT_GAME_BACKLOG_COLLECTION": "Game Backlog",
"RYOT_WALKING_EXERCISE_ID": "",
"RYOT_SIT_TO_STAND_EXERCISE_ID": "",
"RYOT_WALL_PUSHUP_EXERCISE_ID": ""
}
}
}
}RYOT_AUTH_HEADER should contain the exact working Authorization value. For Ryot integration tokens this is usually Bearer <token>.
RYOT_USER_ID is only needed for collection tools such as adding a movie to watchlist or a game to backlog.
Build
npm install
npm run buildRestart Cursor/Claude after every rebuild.
Tools
Core/debug
ryot_health_checkryot_graphqlryot_schema_searchryot_find_candidate_operationsryot_workout_discoveryryot_media_discoveryryot_game_discovery
Fitness/routines
ryot_search_exercisesryot_list_recent_workoutsryot_list_workout_templatesryot_get_workout_detailsryot_get_workout_template_detailsryot_log_workoutryot_create_workout_templateryot_log_body_measurementryot_log_walkryot_log_bodyweight_setryot_log_minimum_workoutryot_create_minimum_routine_templateryot_start_today_routineryot_log_weightryot_log_waistryot_list_measurementsryot_log_minimum_dayryot_log_recovery_dayryot_get_weekly_workout_summary
General media
ryot_search_mediaryot_get_metadata_detailsryot_get_user_metadata_detailsryot_mark_media_progressryot_create_collectionryot_add_to_collectionryot_list_collectionsryot_collection_contentsryot_user_metadata_listryot_create_default_collectionsryot_create_or_update_reviewryot_delete_review
Movies
ryot_search_movieryot_get_movie_statusryot_mark_movie_in_progressryot_mark_movie_watchedryot_add_movie_to_watchlistryot_search_and_mark_movie_watchedryot_search_and_add_movie_to_watchlist
Shows
ryot_search_showryot_get_show_statusryot_mark_show_in_progressryot_mark_show_episode_startedryot_mark_show_episode_watchedryot_add_show_to_watchlistryot_search_and_add_show_to_watchlistryot_search_and_mark_show_episode_watchedryot_get_next_show_episoderyot_mark_next_show_episode_watched
Games
ryot_search_gameryot_get_game_statusryot_mark_game_startedryot_mark_game_completedryot_mark_game_droppedryot_mark_game_on_holdryot_update_game_progress_percentryot_add_game_to_backlogryot_search_and_start_gameryot_search_and_update_game_progressryot_search_and_mark_game_completedryot_search_and_add_game_to_backlog
Notes
Ryot list/search endpoints often return a cached response object rather than full objects directly. This MCP uses live schema introspection to build valid GraphQL selections for object return types, so it should return whatever scalar/cached fields your Ryot version exposes without hard-coding wrapper field names.
For workout logging/templates, Ryot requires internal exerciseId values. Use ryot_search_exercises first, then pass those IDs to ryot_log_workout or set default exercise IDs in env vars.
The high-level routine shortcuts can read default exercise IDs from env vars:
RYOT_WALKING_EXERCISE_IDRYOT_SIT_TO_STAND_EXERCISE_IDRYOT_WALL_PUSHUP_EXERCISE_ID
The collection shortcut tools can read default collection names from env vars:
RYOT_MOVIE_WATCHLIST_COLLECTIONRYOT_SHOW_WATCHLIST_COLLECTIONRYOT_GAME_BACKLOG_COLLECTION
The ryot_search_and_* tools are best-effort wrappers: if Ryot returns only a cached search ID and no metadata ID, they return the search response so you can pick the result and call the ID-based tool.
Review tools are intentionally raw until the exact CreateOrUpdateReviewInput for your Ryot version is confirmed with schema discovery.
Keep this MCP private/local. The generic ryot_graphql tool can run arbitrary queries/mutations against your Ryot account.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/shivanshBTW/ryot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server