Ryot Starter
БесплатноНе проверенA local MCP server for interacting with a self-hosted Ryot instance, enabling management of workouts, body measurements, media (movies, shows, games), and colle
Описание
A local MCP server for interacting with a self-hosted Ryot instance, enabling management of workouts, body measurements, media (movies, shows, games), and collections through natural language.
README
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 helpers
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 build
Restart 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.
Duration units (important for agents)
Ryot uses different units on different fields. Getting this wrong makes a 5-minute walk show as 300 minutes.
| Field | Unit | Example |
|---|---|---|
exercises[].sets[].statistic.duration |
minutes | 5-min walk → 5 (not 300) |
workout.duration |
seconds | 7-min workout → 420 |
exercises[].sets[].restTime |
seconds | 90-sec rest → 90 |
walkingMinutes / minutes tool args |
minutes | Human input; helpers convert internally |
Run ryot_workout_discovery to see durationUnits in the response. Never multiply set duration by 60.
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.
Установка Ryot Starter
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/shivanshBTW/ryot-mcpFAQ
Ryot Starter MCP бесплатный?
Да, Ryot Starter MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Ryot Starter?
Нет, Ryot Starter работает без API-ключей и переменных окружения.
Ryot Starter — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Ryot Starter в Claude Desktop, Claude Code или Cursor?
Открой Ryot Starter на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
автор: buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
автор: ARAYouTube
Transcripts, channel stats, search
автор: YouTubeEverArt
AI image generation using various models.
автор: modelcontextprotocolCompare Ryot Starter with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории media
