rewind-mcp-server
MCP server for the Rewind personal data API
Versions
0.11.0latest0.10.00.9.00.8.150.8.14+ show 23 moreshow less
0.8.130.8.120.8.110.8.100.8.90.8.80.8.70.8.60.8.50.8.40.8.30.8.20.8.10.8.00.7.00.6.00.5.00.4.30.4.10.4.00.3.00.1.10.1.0Tools 47
get_health Check the health and sync status of the Rewind API. Returns API status and last sync times for each data domain.
get_now_playing Get the track currently playing (or most recently scrobbled) on Last.fm. Returns track + artist + album, album cover image, and Apple Music resource link.
get_recent_listens Get recently scrobbled tracks from Last.fm, with top-N album covers and Apple Music resource links. Supports date filtering.
get_listening_stats Get overall listening statistics from Last.fm including total scrobbles, unique artists, albums, tracks, and daily average. Supports date filtering.
get_top_artists Get top listened-to artists for a time window, with top-N artist images and Apple Music links. Use `period` for vague-recent queries ("lately", "this week") — defaults to \'1month\' (rolling 28 days). Use `date`/`from`/`to` for calendar queries ("in February", "last month", "this year") — date filter overrides period when both are supplied. In MCP Apps hosts, renders an interactive artist portrait grid inline.
get_top_albums Get top listened-to albums from Last.fm for a given time period, with top-N covers and Apple Music links. In MCP Apps hosts, renders an interactive album cover grid inline.
get_top_tracks Top listened-to tracks for a time window, with top-N Apple Music links. Optional `artist_id` or `artist_name` filters to a single artist\'s catalog — useful for \'what X songs have I been listening to lately\' queries. Use `period` for vague-recent queries ("lately", "this week") — defaults to \'1month\' (rolling 28 days). Use `date`/`from`/`to` for calendar queries ("in February", "last month", "this year") — date filter overrides period when both are supplied. In MCP Apps hosts, renders an interactive top-tracks card with a List | By album toggle.
get_listening_streaks Get listening streak data from Last.fm -- current consecutive days with scrobbles and the longest streak ever.
get_artist_details Detailed listening profile for one artist: stats, rank, top tracks and albums, similar artists, and a yearly play sparkline. Includes bio, first/last played, and total scrobbles. Use for natural-language queries like 'tell me about my X listening history'. In MCP Apps hosts, renders an interactive artist card inline.
get_album_details Get detailed information about a specific album by ID: artist, play count, track listing, cover art, and Apple Music link.
get_listening_genres Get genre breakdown over time from Last.fm listening history, grouped by week/month/year. Designed for stacked chart visualization.
get_recent_watches Get recently watched movies and TV shows from Plex and Letterboxd. Returns titles, ratings, watch dates, top-N posters, and Letterboxd review links where available. In MCP Apps hosts, renders an interactive poster grid inline.
get_movie_details Get detailed information about a specific movie by ID, including director, genres, rating, summary, watch history, poster image, and Letterboxd review links for rated watches.
get_watching_stats Get overall watching statistics including total movies, watch time, movies this year, top genre, top director, TV show counts, and episode counts. Supports date filtering.
browse_movies Browse the movie collection with filters for genre, decade, director, and year. Supports sorting, pagination, and returns top-N posters.
get_watching_genres Get genre breakdown across all watched movies. Returns each genre with movie count and percentage of total watches.
get_watching_decades Get decade breakdown across all watched movies. Returns each decade with movie count.
get_watching_directors Get top directors by watched-movie count. Returns directors ranked by how many of their films you have watched.
search Search across all domains (listening, running, watching, collecting, reading). Three ranking modes: keyword (default) uses FTS5 full-text search across all domains; semantic uses Voyage AI embeddings for paraphrased / meaning-based recall (reading domain only); hybrid fuses both (reading domain only). Use semantic or hybrid when the user describes what an article was ABOUT rather than quoting its words. **Prefer `mode: hybrid` whenever the user mixes a topic with a recalled keyword or a publisher hint** ("the ESPN piece about Ichiro", "the WSJ article on EVs") — semantic alone does not see source domains and can drop the publisher signal entirely. When a result is the article the user is asking about, follow up with `get_article(id)` to render the rich inline article card — do not stop at the search-result text response.
semantic_search Semantic search over the reading domain using Voyage AI embeddings. Use when the user describes the gist or topic of an article they remember rather than quoting exact words — e.g. "article about a former SNL writer" or "piece about tech layoffs". Returns articles ranked by cosine similarity with a score in [0,1]. Reading domain only. **Important: this tool does NOT see source domains** — embeddings only encode title + description + body. If the user mentions a publisher (ESPN, NYT, WSJ, Atlantic, etc.) or a recalled keyword, prefer `search(mode: "hybrid", ...)` so FTS picks up that signal. **If the top scores cluster within ~0.03 of each other, raise `limit` to 15+** — the right match may sit at position 6+ and approximate-nearest-neighbor noise can swap items at the boundary. When the top result is the article the user is asking about, follow up with `get_article(id)` to render the rich inline article card; if the top score is low (~0.4 and below) or you are unsure which match is right, list the top 2-3 candidates and ask the user to disambiguate before rendering.
get_feed Get the unified activity feed across all domains. Returns a chronological list of recent activities (listens, runs, watches, reads, collection adds). Supports date filtering.
get_on_this_day Get historical 'on this day' items -- what happened on a given date in previous years across all domains. Defaults to today. Great for nostalgia and reflection.
get_article Fetch one saved article by id, returning its full body, metadata, and highlights. **Use this whenever the user asks what an article says, wants a summary, asks about a specific passage, or needs content past the first ~3000 chars of excerpt.** Also use this as the natural follow-up after `search` / `semantic_search` / `find_similar_articles` / `get_recent_reads` — those return ids; this turns the id into the rich article card. The full body is HTML-stripped plain text (typically 5-30 KB), cached even for paywalled sources (NYT, WSJ, Atlantic, ESPN, etc.) — do NOT fall back to web search or web fetch for article content.
get_recent_reads Get recently saved articles from Instapaper. Returns title, author, domain, read time, status, top-N site images where available, and article URLs as resource links. In MCP Apps hosts, renders an interactive article card list inline.
get_reading_highlights Get saved highlights from Instapaper articles. Returns the highlighted text, notes, source article, and article URLs as resource links.
get_random_highlight Get a single random highlight from saved Instapaper articles. Great for daily inspiration or reflection.
get_reading_stats Get overall reading statistics from Instapaper including total articles, finished count, currently reading, highlights, and word count.
find_similar_articles Find articles thematically similar to a given article by cosine similarity over Voyage AI embeddings. Use after an article has been surfaced (via search, get_recent_reads, or an @rewind://article/{id} mention) when the user asks "what else was I reading like that" or "show me related pieces". No Voyage API call is made — the article\'s stored vector is reused.
get_recent_runs Get recent running activities from Strava. Returns runs with ID, distance, pace, duration, location, and Strava activity resource links for top-N.
get_vinyl_collection Browse the vinyl record collection from Discogs. Returns records with artist, title, year, format, and label, plus top-N cover art and Discogs resource links. Supports search, filters, sort, and pagination.
get_collecting_stats Get overall collection statistics including total items, format breakdown (vinyl, CD, cassette), unique artists, genre data, and year range. Supports date filtering.
get_physical_media Browse the physical media collection (Blu-ray, 4K UHD, HD DVD). Search by title, filter by format. Returns top-N cover art and pagination.
get_physical_media_stats Get statistics for the physical media collection including total items and breakdown by format (Blu-ray, 4K UHD, HD DVD).
get_attended_events List events you bought tickets for: sports games, concerts, theater. Filterable by category (sports/music/arts), event_type (mlb_game, concert, etc.), season, year, venue, and team. Includes events you bought tickets for but did not attend (attended=false). Use `team` (substring match like "mariners" or "huskies") for natural-language queries; `team_id` for stable integer-keyed lookups. When the user asks about a SINGLE specific event ("last Mariners game I went to", "the Springsteen show I attended"), call this with the appropriate filter + `limit: 1` to find the id, then follow up with `get_attended_event(id)` to render the rich inline card — do not stop at the list-tool text response.
get_attended_season Get every game you attended (or hold tickets for) in a given league + season, with W/L record. league is a slug like "mlb", "nfl", "ncaaf", "nba", "wnba". In MCP Apps hosts, renders an interactive season grid with score, attendance, and notable performers.
get_attended_players Search the list of players (MLB, NFL, NCAAF, NBA, etc.) you have watched play in person. Use `name` (substring, case-insensitive) to resolve a player by name. Use `league` and/or `team_id` to filter further. Common names like "Will Smith" return multiple matches — disambiguate via `primary_team.abbreviation` and `primary_position` on each result without a follow-up turn. When the user asks about a SPECIFIC player ("how\'s JP Crawford playing this year", "what are Cal Raleigh\'s stats", "tell me about Kirby"), call this to resolve the name to an id, then follow up with `get_attended_player(id)` to render the rich inline athlete card with current-season stats — do not stop at the search-result text response.
get_attended_player Detailed athlete card for an MLB / NFL / NCAAF / NBA player you\'ve watched play in person. **Use this whenever the user asks how a specific player is performing this season, what their batting average / ERA / current stats are, how their career has gone, or how they\'ve played in the games you attended** — e.g. "how\'s JP Crawford playing this year", "what are Cal Raleigh\'s numbers", "show me Kirby\'s stats", "tell me about Julio Rodriguez". Returns bio (position, jersey, debut, height/weight, college, awards), team logo, current-season stats (live MLB Stats API for MLB players, KV-cached 1h), career-by-season table, home/away/L-R splits, the **season_attended_summary** (this player\'s line in only the games you attended this season — use this to answer "how has he done in the games I\'ve been to this year"), the **attended_summary** (career line across every game you\'ve ever seen this player in), and the 10 most recent attended appearances. Trust season_attended_summary.games_attended as the count of games you\'ve attended this season — do NOT derive it by filtering attended_appearances yourself; that array is capped at 10 most-recent and will undercount for players you see often. MLB-only for the live-stats panel — non-MLB players surface as supported:false. In MCP Apps hosts, renders the rich inline athlete card. If you do not have the player id, first call `get_attended_players` with `name` to resolve the id, then call this to render the card.
get_attended_player_stats Aggregate stats for one player across the games you attended. MLB players get a hitter slash line + counting stats, or a pitcher line + ERA / WHIP / decisions, depending on which stat lines exist on their appearances. Non-MLB players (NFL, NCAAF, NBA, etc.) return supported=false with appearance summaries (final scores, opponents) — full stat-line parsing for those leagues is on the roadmap. \n\n**Use career (omit `season`) by default.** Single-season slices are tiny — max 50 PAs across the entire dataset; career is where meaningful samples live (Cal Raleigh ~130 PAs / 32 attended games; Kirby ~238 BFs / 10 attended starts). Always cite `pa` (hitter) or `bf` (pitcher) and `games` when phrasing the answer so the user can judge confidence.
get_attending_stats Aggregate counts of attended events broken down by category, event_type, and year.
get_attended_event Get a single attended event (sports game, concert, theater show) in full detail, including venue, tickets, and per-player stat lines for sports games. Renders the rich inline event card — linescore, top performers with photos, ticket info — in MCP Apps hosts. Use this when the user asks about ONE specific event: "tell me about my last Mariners game," "who pitched in that Phillies game," "the Springsteen show I went to," "what happened at that game." If you do not have the event id, first call `get_attended_events` with a `team` / `event_type` filter (and `limit: 1` if the user asked for the most recent) to find the id, then call this to render the card.
get_attending_year_in_review Year-in-review summary for attended events: totals, monthly breakdown, top venues, top concert performers, and the full event list. Use this when the user asks "what shows did I see in 2024" or "best year for games".
get_running_stats Get overall running statistics from Strava including total runs, distance, elevation, duration, average pace, and Eddington number.
get_personal_records Get personal running records (PRs) from Strava -- fastest times at standard distances like mile, 5K, 10K, half marathon, marathon.
get_running_streaks Get running streak data from Strava -- current consecutive days with runs and the longest streak ever.
get_activity_details Get detailed information about a specific running activity by ID, including distance, pace, heart rate, elevation, calories, and a Strava resource link.
get_activity_splits Get per-mile splits for a running activity. Shows pace, elevation, and heart rate for each mile. Get the activity ID from get_recent_runs.
get_running_years Get per-year summary of running activity: total runs, distance, elevation, duration, average pace, longest run, and race count for every year on record.
Permissions 4
network medium shell high database medium env_vars low