rewind-mcp-server 0.1.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +84 -11
  2. package/dist/__tests__/helpers.test.d.ts +1 -0
  3. package/dist/__tests__/helpers.test.js +131 -0
  4. package/dist/__tests__/helpers.test.js.map +1 -0
  5. package/dist/__tests__/image-block.live.d.ts +1 -0
  6. package/dist/__tests__/image-block.live.js +41 -0
  7. package/dist/__tests__/image-block.live.js.map +1 -0
  8. package/dist/__tests__/server.test.js +713 -16
  9. package/dist/__tests__/server.test.js.map +1 -1
  10. package/dist/__tests__/stdio-e2e.live.d.ts +1 -0
  11. package/dist/__tests__/stdio-e2e.live.js +60 -0
  12. package/dist/__tests__/stdio-e2e.live.js.map +1 -0
  13. package/dist/__tests__/ui-resource.live.d.ts +1 -0
  14. package/dist/__tests__/ui-resource.live.js +71 -0
  15. package/dist/__tests__/ui-resource.live.js.map +1 -0
  16. package/dist/client.d.ts +9 -0
  17. package/dist/client.js +15 -0
  18. package/dist/client.js.map +1 -1
  19. package/dist/index.js +0 -0
  20. package/dist/prompts.js +132 -0
  21. package/dist/prompts.js.map +1 -1
  22. package/dist/resources/ui.d.ts +33 -0
  23. package/dist/resources/ui.js +14 -0
  24. package/dist/resources/ui.js.map +1 -0
  25. package/dist/resources.js +144 -0
  26. package/dist/resources.js.map +1 -1
  27. package/dist/server.js +55 -1
  28. package/dist/server.js.map +1 -1
  29. package/dist/tools/collecting.js +78 -37
  30. package/dist/tools/collecting.js.map +1 -1
  31. package/dist/tools/cross-domain.js +147 -19
  32. package/dist/tools/cross-domain.js.map +1 -1
  33. package/dist/tools/debug.d.ts +6 -0
  34. package/dist/tools/debug.js +26 -0
  35. package/dist/tools/debug.js.map +1 -0
  36. package/dist/tools/helpers.d.ts +81 -5
  37. package/dist/tools/helpers.js +138 -4
  38. package/dist/tools/helpers.js.map +1 -1
  39. package/dist/tools/listening.js +223 -52
  40. package/dist/tools/listening.js.map +1 -1
  41. package/dist/tools/reading.js +122 -22
  42. package/dist/tools/reading.js.map +1 -1
  43. package/dist/tools/running.js +87 -43
  44. package/dist/tools/running.js.map +1 -1
  45. package/dist/tools/watching.js +199 -32
  46. package/dist/tools/watching.js.map +1 -1
  47. package/dist/ui-bundles.d.ts +3 -0
  48. package/dist/ui-bundles.js +8 -0
  49. package/dist/ui-bundles.js.map +1 -0
  50. package/dist/worker.d.ts +2 -1
  51. package/dist/worker.js +55 -30
  52. package/dist/worker.js.map +1 -1
  53. package/package.json +13 -2
@@ -1 +1 @@
1
- {"version":3,"file":"reading.js","sourceRoot":"","sources":["../../src/tools/reading.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reading.js","sourceRoot":"","sources":["../../src/tools/reading.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { z } from 'zod';
2
- import { withErrorHandling, formatDate, timeAgo, fmt, READ_ONLY_ANNOTATIONS, } from './helpers.js';
2
+ import { withRichResponse, text, resourceLink, formatDate, timeAgo, fmt, READ_ONLY_ANNOTATIONS, dateFilterParams, } from './helpers.js';
3
3
  export function registerRunningTools(server, client) {
4
- // get_running_stats
5
- server.tool('get_running_stats', 'Get overall running statistics from Strava including total runs, distance, elevation, duration, average pace, and Eddington number.', {}, READ_ONLY_ANNOTATIONS, async () => withErrorHandling(async () => {
4
+ // get_running_stats ──────────────────────────────────────────────
5
+ server.tool('get_running_stats', 'Get overall running statistics from Strava including total runs, distance, elevation, duration, average pace, and Eddington number.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
6
6
  const { data } = await client.get('/running/stats');
7
- return [
7
+ const summary = [
8
8
  'Running Stats:',
9
9
  `- Total runs: ${fmt(data.total_runs)}`,
10
10
  `- Total distance: ${fmt(Math.round(data.total_distance_mi))} mi`,
@@ -19,54 +19,67 @@ export function registerRunningTools(server, client) {
19
19
  ]
20
20
  .filter((l) => l !== null)
21
21
  .join('\n');
22
+ return { content: [text(summary)], structuredContent: data };
22
23
  }));
23
- // get_recent_runs
24
- server.tool('get_recent_runs', 'Get recent running activities from Strava. Returns a list of runs with ID, distance, pace, duration, and location. Use the ID with get_activity_details or get_activity_splits for more info.', {
24
+ // get_recent_runs ────────────────────────────────────────────────
25
+ server.tool('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.', {
25
26
  limit: z
26
27
  .number()
27
28
  .min(1)
28
29
  .max(50)
29
30
  .default(10)
30
- .describe('Number of recent runs to return'),
31
- date: z
32
- .string()
33
- .optional()
34
- .describe('Optional: filter to a specific date (YYYY-MM-DD)'),
35
- from: z
36
- .string()
37
- .optional()
38
- .describe('Optional: start of date range (ISO 8601)'),
39
- to: z
40
- .string()
41
- .optional()
42
- .describe('Optional: end of date range (ISO 8601)'),
43
- }, READ_ONLY_ANNOTATIONS, async ({ limit, date, from, to }) => withErrorHandling(async () => {
44
- const { data } = await client.get('/running/recent', { limit, date, from, to });
45
- if (!data.length)
46
- return 'No recent runs found.';
31
+ .describe('Number of recent runs to return (max 50)'),
32
+ page: z
33
+ .number()
34
+ .min(1)
35
+ .default(1)
36
+ .describe('Page number for pagination. Combine with limit to page through longer windows.'),
37
+ ...dateFilterParams,
38
+ }, READ_ONLY_ANNOTATIONS, async ({ limit, page, date, from, to }) => withRichResponse(async () => {
39
+ const { data } = await client.get('/running/recent', { limit, page, date, from, to });
40
+ if (!data.length) {
41
+ return {
42
+ content: [text('No recent runs found.')],
43
+ structuredContent: { items: [] },
44
+ };
45
+ }
47
46
  const lines = ['Recent runs:'];
48
47
  for (const [i, r] of data.entries()) {
49
48
  const location = r.city && r.state ? ` in ${r.city}, ${r.state}` : '';
50
49
  const race = r.is_race ? ' [RACE]' : '';
51
50
  lines.push(`${i + 1}. [ID: ${r.id}] ${r.name}${race} -- ${r.distance_mi.toFixed(1)} mi, ${r.pace}/mi, ${r.duration}${location} (${timeAgo(r.date)})`);
52
51
  }
53
- return lines.join('\n');
52
+ const topN = data.slice(0, 5);
53
+ const links = topN
54
+ .map((r) => resourceLink(r.strava_url, `Strava -- ${r.name}`, {
55
+ mimeType: 'text/html',
56
+ }))
57
+ .filter((b) => b !== null);
58
+ const content = [text(lines.join('\n')), ...links];
59
+ return { content, structuredContent: { items: data } };
54
60
  }));
55
- // get_personal_records
56
- server.tool('get_personal_records', 'Get personal running records (PRs) from Strava -- fastest times at standard distances like mile, 5K, 10K, half marathon, marathon.', {}, READ_ONLY_ANNOTATIONS, async () => withErrorHandling(async () => {
61
+ // get_personal_records ───────────────────────────────────────────
62
+ server.tool('get_personal_records', 'Get personal running records (PRs) from Strava -- fastest times at standard distances like mile, 5K, 10K, half marathon, marathon.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
57
63
  const { data } = await client.get('/running/prs');
58
- if (!data.length)
59
- return 'No personal records found.';
64
+ if (!data.length) {
65
+ return {
66
+ content: [text('No personal records found.')],
67
+ structuredContent: { items: [] },
68
+ };
69
+ }
60
70
  const lines = ['Personal Records:'];
61
71
  for (const pr of data) {
62
72
  lines.push(`- ${pr.distance_label}: ${pr.time} (${pr.pace}/mi) -- ${pr.activity_name} [ID: ${pr.activity_id}], ${formatDate(pr.date)}`);
63
73
  }
64
- return lines.join('\n');
74
+ return {
75
+ content: [text(lines.join('\n'))],
76
+ structuredContent: { items: data },
77
+ };
65
78
  }));
66
- // get_running_streaks
67
- server.tool('get_running_streaks', 'Get running streak data from Strava -- current consecutive days with runs and the longest streak ever.', {}, READ_ONLY_ANNOTATIONS, async () => withErrorHandling(async () => {
79
+ // get_running_streaks ────────────────────────────────────────────
80
+ server.tool('get_running_streaks', 'Get running streak data from Strava -- current consecutive days with runs and the longest streak ever.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
68
81
  const { data } = await client.get('/running/streaks');
69
- return [
82
+ const summary = [
70
83
  'Running Streaks:',
71
84
  '',
72
85
  `Current streak: ${data.current.days} days`,
@@ -81,13 +94,14 @@ export function registerRunningTools(server, client) {
81
94
  ]
82
95
  .filter(Boolean)
83
96
  .join('\n');
97
+ return { content: [text(summary)], structuredContent: data };
84
98
  }));
85
- // get_activity_details
86
- server.tool('get_activity_details', 'Get detailed information about a specific running activity by ID, including distance, pace, heart rate, elevation, and calories. Get the ID from get_recent_runs.', {
99
+ // get_activity_details ───────────────────────────────────────────
100
+ server.tool('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.', {
87
101
  id: z
88
102
  .number()
89
103
  .describe('Activity ID (from get_recent_runs or get_personal_records)'),
90
- }, READ_ONLY_ANNOTATIONS, async ({ id }) => withErrorHandling(async () => {
104
+ }, READ_ONLY_ANNOTATIONS, async ({ id }) => withRichResponse(async () => {
91
105
  const data = await client.get(`/running/activities/${id}`);
92
106
  const lines = [
93
107
  `${data.name}${data.is_race ? ' [RACE]' : ''}`,
@@ -108,19 +122,28 @@ export function registerRunningTools(server, client) {
108
122
  lines.push(`Cadence: ${Math.round(data.cadence)} spm`);
109
123
  if (data.calories)
110
124
  lines.push(`Calories: ${fmt(data.calories)}`);
111
- if (data.strava_url)
112
- lines.push(`Strava: ${data.strava_url}`);
113
- return lines.join('\n');
125
+ const stravaLink = resourceLink(data.strava_url, 'Strava activity', {
126
+ mimeType: 'text/html',
127
+ });
128
+ const content = [
129
+ text(lines.join('\n')),
130
+ ...(stravaLink ? [stravaLink] : []),
131
+ ];
132
+ return { content, structuredContent: data };
114
133
  }));
115
- // get_activity_splits
134
+ // get_activity_splits ────────────────────────────────────────────
116
135
  server.tool('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.', {
117
136
  id: z
118
137
  .number()
119
138
  .describe('Activity ID (from get_recent_runs or get_personal_records)'),
120
- }, READ_ONLY_ANNOTATIONS, async ({ id }) => withErrorHandling(async () => {
139
+ }, READ_ONLY_ANNOTATIONS, async ({ id }) => withRichResponse(async () => {
121
140
  const { data } = await client.get(`/running/activities/${id}/splits`);
122
- if (!data.length)
123
- return 'No splits found for this activity.';
141
+ if (!data.length) {
142
+ return {
143
+ content: [text('No splits found for this activity.')],
144
+ structuredContent: { activity_id: id, items: [] },
145
+ };
146
+ }
124
147
  const lines = [`Mile splits for activity ${id}:`];
125
148
  for (const s of data) {
126
149
  const hr = s.heartrate ? ` | ${Math.round(s.heartrate)} bpm` : '';
@@ -129,7 +152,28 @@ export function registerRunningTools(server, client) {
129
152
  : '';
130
153
  lines.push(` Mile ${s.split}: ${s.pace}${elev}${hr}`);
131
154
  }
132
- return lines.join('\n');
155
+ return {
156
+ content: [text(lines.join('\n'))],
157
+ structuredContent: { activity_id: id, items: data },
158
+ };
159
+ }));
160
+ // get_running_years ──────────────────────────────────────────────
161
+ server.tool('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.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
162
+ const { data } = await client.get('/running/stats/years');
163
+ if (!data.length) {
164
+ return {
165
+ content: [text('No yearly running data available.')],
166
+ structuredContent: { items: [] },
167
+ };
168
+ }
169
+ const lines = ['Running by year:'];
170
+ for (const y of data) {
171
+ lines.push(` ${y.year}: ${fmt(y.total_runs)} runs, ${fmt(Math.round(y.total_distance_mi))} mi, longest ${y.longest_run_mi ?? '-'} mi, races: ${y.race_count}`);
172
+ }
173
+ return {
174
+ content: [text(lines.join('\n'))],
175
+ structuredContent: { items: data },
176
+ };
133
177
  }));
134
178
  }
135
179
  //# sourceMappingURL=running.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"running.js","sourceRoot":"","sources":["../../src/tools/running.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"running.js","sourceRoot":"","sources":["../../src/tools/running.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,95 @@
1
1
  import { z } from 'zod';
2
- import { withErrorHandling, formatDate, timeAgo, fmt, READ_ONLY_ANNOTATIONS, dateFilterParams, } from './helpers.js';
2
+ import { withRichResponse, text, resourceLink, imageBlock, formatDate, timeAgo, fmt, formatStars, READ_ONLY_ANNOTATIONS, dateFilterParams, includeImagesParam, LIST_IMAGE_PX, } from './helpers.js';
3
+ const POSTER_TOP_N = 5;
3
4
  export function registerWatchingTools(server, client) {
4
- // get_recent_watches
5
- server.tool('get_recent_watches', 'Get recently watched movies and TV shows from Plex and Letterboxd. Returns titles, ratings, and watch dates.', {
6
- limit: z
7
- .number()
8
- .min(1)
9
- .max(50)
10
- .default(10)
11
- .describe('Number of recent watches to return'),
12
- ...dateFilterParams,
13
- }, READ_ONLY_ANNOTATIONS, async ({ limit, date, from, to }) => withErrorHandling(async () => {
14
- const { data } = await client.get('/watching/recent', { limit, date, from, to });
15
- if (!data.length)
16
- return 'No recent watches found.';
5
+ // get_recent_watches ─────────────────────────────────────────────
6
+ // Registered via the modern server.registerTool so we can attach
7
+ // `_meta.ui.resourceUri`. Hosts that support MCP Apps (Claude Desktop,
8
+ // Claude web, VS Code Copilot) render the poster grid inline; others fall
9
+ // back to the text + image + resource_link response.
10
+ server.registerTool('get_recent_watches', {
11
+ title: 'Recent watches',
12
+ description: '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.',
13
+ inputSchema: {
14
+ limit: z
15
+ .number()
16
+ .min(1)
17
+ .max(50)
18
+ .default(10)
19
+ .describe('Number of recent watches to return (max 50)'),
20
+ page: z
21
+ .number()
22
+ .min(1)
23
+ .default(1)
24
+ .describe('Page number for pagination (1-indexed). Combine with limit to page through longer windows like "last month".'),
25
+ ...dateFilterParams,
26
+ ...includeImagesParam,
27
+ },
28
+ annotations: READ_ONLY_ANNOTATIONS,
29
+ _meta: {
30
+ ui: { resourceUri: 'ui://rewind/recent-watches.html' },
31
+ 'ui/resourceUri': 'ui://rewind/recent-watches.html',
32
+ },
33
+ }, async ({ limit, page, date, from, to, include_images }) => withRichResponse(async () => {
34
+ const { data: raw } = await client.get('/watching/recent', { limit, page, date, from, to });
35
+ // Dedup by movie id, keep the most recent watch event per movie.
36
+ // `/v1/watching/recent` returns every watch event, which produces
37
+ // duplicates when a film has both a Plex record and a Letterboxd
38
+ // log (or a sync created multiple entries).
39
+ const seen = new Map();
40
+ for (const w of raw) {
41
+ const existing = seen.get(w.movie.id);
42
+ if (!existing) {
43
+ seen.set(w.movie.id, w);
44
+ continue;
45
+ }
46
+ const existingTs = Date.parse(existing.watched_at);
47
+ const candidateTs = Date.parse(w.watched_at);
48
+ // Prefer the record with a user_rating; otherwise the most recent.
49
+ const prefer = (w.user_rating !== null && existing.user_rating === null) ||
50
+ candidateTs > existingTs;
51
+ if (prefer)
52
+ seen.set(w.movie.id, w);
53
+ }
54
+ const data = Array.from(seen.values()).sort((a, b) => Date.parse(b.watched_at) - Date.parse(a.watched_at));
55
+ if (!data.length) {
56
+ return {
57
+ content: [text('No recent watches found.')],
58
+ structuredContent: { items: [] },
59
+ };
60
+ }
17
61
  const lines = ['Recent watches:'];
18
62
  for (const [i, w] of data.entries()) {
19
63
  const year = w.movie.year ? ` (${w.movie.year})` : '';
20
64
  const director = w.movie.director ? ` dir. ${w.movie.director}` : '';
21
- const rating = w.user_rating !== null ? ` -- ${w.user_rating}/10` : '';
65
+ const rating = w.user_rating !== null ? ` -- ${formatStars(w.user_rating)}` : '';
22
66
  const rewatch = w.rewatch ? ' [rewatch]' : '';
23
- lines.push(`${i + 1}. ${w.movie.title}${year}${director}${rating}${rewatch} (${timeAgo(w.watched_at)})`);
67
+ lines.push(`${i + 1}. [ID: ${w.movie.id}] ${w.movie.title}${year}${director}${rating}${rewatch} (${timeAgo(w.watched_at)})`);
24
68
  }
25
- return lines.join('\n');
69
+ const topN = data.slice(0, POSTER_TOP_N);
70
+ const images = include_images
71
+ ? await Promise.all(topN.map((w) => imageBlock(client, w.movie.image, LIST_IMAGE_PX)))
72
+ : [];
73
+ const links = topN
74
+ .map((w) => resourceLink(w.review_url, `Letterboxd -- ${w.movie.title}`, {
75
+ mimeType: 'text/html',
76
+ }))
77
+ .filter((b) => b !== null);
78
+ const content = [
79
+ text(lines.join('\n')),
80
+ ...images.filter((b) => b !== null),
81
+ ...links,
82
+ ];
83
+ return {
84
+ content,
85
+ structuredContent: { items: data },
86
+ };
26
87
  }));
27
- // get_movie_details
28
- server.tool('get_movie_details', 'Get detailed information about a specific movie by ID, including director, genres, rating, summary, and watch history.', { id: z.number().describe('Movie ID') }, READ_ONLY_ANNOTATIONS, async ({ id }) => withErrorHandling(async () => {
88
+ // get_movie_details ──────────────────────────────────────────────
89
+ server.tool('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.', {
90
+ id: z.number().describe('Movie ID'),
91
+ ...includeImagesParam,
92
+ }, READ_ONLY_ANNOTATIONS, async ({ id, include_images }) => withRichResponse(async () => {
29
93
  const data = await client.get(`/watching/movies/${id}`);
30
94
  const lines = [
31
95
  `${data.title}${data.year ? ` (${data.year})` : ''}`,
@@ -37,13 +101,15 @@ export function registerWatchingTools(server, client) {
37
101
  data.genres.length ? `Genres: ${data.genres.join(', ')}` : null,
38
102
  data.duration_min ? `Runtime: ${data.duration_min} min` : null,
39
103
  data.rating ? `Rated: ${data.rating}` : null,
40
- data.tmdb_rating ? `TMDB: ${data.tmdb_rating}/10` : null,
104
+ data.tmdb_rating ? `TMDB: ${data.tmdb_rating.toFixed(1)}/10` : null,
41
105
  data.summary ? `\n${data.summary}` : null,
42
106
  ].filter((l) => l !== null);
43
107
  if (data.watch_history.length) {
44
108
  lines.push('', 'Watch History:');
45
109
  for (const w of data.watch_history) {
46
- const rating = w.user_rating !== null ? ` -- rated ${w.user_rating}/10` : '';
110
+ const rating = w.user_rating !== null
111
+ ? ` -- rated ${formatStars(w.user_rating)}`
112
+ : '';
47
113
  const rewatch = w.rewatch ? ' [rewatch]' : '';
48
114
  const source = w.source ? ` via ${w.source}` : '';
49
115
  lines.push(` - ${formatDate(w.watched_at)}${rating}${rewatch}${source}`);
@@ -52,12 +118,30 @@ export function registerWatchingTools(server, client) {
52
118
  }
53
119
  }
54
120
  }
55
- return lines.join('\n');
121
+ const poster = include_images
122
+ ? await imageBlock(client, data.image)
123
+ : null;
124
+ // Collect unique review URLs across the watch history
125
+ const seen = new Set();
126
+ const reviewLinks = data.watch_history
127
+ .map((w) => {
128
+ if (!w.review_url || seen.has(w.review_url))
129
+ return null;
130
+ seen.add(w.review_url);
131
+ return resourceLink(w.review_url, `Letterboxd review (${formatDate(w.watched_at)})`, { mimeType: 'text/html' });
132
+ })
133
+ .filter((b) => b !== null);
134
+ const content = [
135
+ text(lines.join('\n')),
136
+ ...(poster ? [poster] : []),
137
+ ...reviewLinks,
138
+ ];
139
+ return { content, structuredContent: data };
56
140
  }));
57
- // get_watching_stats
58
- server.tool('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.', { ...dateFilterParams }, READ_ONLY_ANNOTATIONS, async ({ date, from, to }) => withErrorHandling(async () => {
141
+ // get_watching_stats ─────────────────────────────────────────────
142
+ server.tool('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.', { ...dateFilterParams }, READ_ONLY_ANNOTATIONS, async ({ date, from, to }) => withRichResponse(async () => {
59
143
  const { data } = await client.get('/watching/stats', { date, from, to });
60
- return [
144
+ const summary = [
61
145
  'Watching Stats:',
62
146
  '',
63
147
  'Movies:',
@@ -76,9 +160,13 @@ export function registerWatchingTools(server, client) {
76
160
  ]
77
161
  .filter((l) => l !== null)
78
162
  .join('\n');
163
+ return {
164
+ content: [text(summary)],
165
+ structuredContent: data,
166
+ };
79
167
  }));
80
- // browse_movies
81
- server.tool('browse_movies', 'Browse the movie collection with filters for genre, decade, director, and year. Supports sorting and pagination.', {
168
+ // browse_movies ──────────────────────────────────────────────────
169
+ server.tool('browse_movies', 'Browse the movie collection with filters for genre, decade, director, and year. Supports sorting, pagination, and returns top-N posters.', {
82
170
  genre: z
83
171
  .string()
84
172
  .optional()
@@ -107,7 +195,8 @@ export function registerWatchingTools(server, client) {
107
195
  .default(10)
108
196
  .describe('Number of movies to return'),
109
197
  page: z.number().min(1).default(1).describe('Page number'),
110
- }, READ_ONLY_ANNOTATIONS, async ({ genre, decade, director, year, sort, order, limit, page }) => withErrorHandling(async () => {
198
+ ...includeImagesParam,
199
+ }, READ_ONLY_ANNOTATIONS, async ({ genre, decade, director, year, sort, order, limit, page, include_images, }) => withRichResponse(async () => {
111
200
  const data = await client.get('/watching/movies', {
112
201
  genre,
113
202
  decade,
@@ -118,8 +207,12 @@ export function registerWatchingTools(server, client) {
118
207
  limit,
119
208
  page,
120
209
  });
121
- if (!data.data.length)
122
- return 'No movies found matching those filters.';
210
+ if (!data.data.length) {
211
+ return {
212
+ content: [text('No movies found matching those filters.')],
213
+ structuredContent: { items: [], pagination: data.pagination },
214
+ };
215
+ }
123
216
  const filters = [genre, decade, director, year].filter(Boolean);
124
217
  const header = filters.length
125
218
  ? `Movies (filtered: ${filters.join(', ')})`
@@ -129,10 +222,84 @@ export function registerWatchingTools(server, client) {
129
222
  const num = (data.pagination.page - 1) * data.pagination.limit + i + 1;
130
223
  const yr = m.year ? ` (${m.year})` : '';
131
224
  const dir = m.director ? ` dir. ${m.director}` : '';
132
- const rating = m.tmdb_rating ? ` -- ${m.tmdb_rating}/10` : '';
225
+ const rating = m.tmdb_rating
226
+ ? ` -- TMDB ${m.tmdb_rating.toFixed(1)}/10`
227
+ : '';
133
228
  lines.push(`${num}. [ID: ${m.id}] ${m.title}${yr}${dir}${rating}`);
134
229
  }
135
- return lines.join('\n');
230
+ const topN = data.data.slice(0, POSTER_TOP_N);
231
+ const images = include_images
232
+ ? await Promise.all(topN.map((m) => imageBlock(client, m.image, LIST_IMAGE_PX)))
233
+ : [];
234
+ const content = [
235
+ text(lines.join('\n')),
236
+ ...images.filter((b) => b !== null),
237
+ ];
238
+ return {
239
+ content,
240
+ structuredContent: { items: data.data, pagination: data.pagination },
241
+ };
242
+ }));
243
+ // get_watching_genres ────────────────────────────────────────────
244
+ server.tool('get_watching_genres', 'Get genre breakdown across all watched movies. Returns each genre with movie count and percentage of total watches.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
245
+ const { data } = await client.get('/watching/stats/genres');
246
+ if (!data.length) {
247
+ return {
248
+ content: [text('No genre data available.')],
249
+ structuredContent: { items: [] },
250
+ };
251
+ }
252
+ const lines = ['Genre breakdown:'];
253
+ for (const g of data) {
254
+ lines.push(`- ${g.name}: ${fmt(g.count)} (${g.percentage.toFixed(1)}%)`);
255
+ }
256
+ return {
257
+ content: [text(lines.join('\n'))],
258
+ structuredContent: { items: data },
259
+ };
260
+ }));
261
+ // get_watching_decades ───────────────────────────────────────────
262
+ server.tool('get_watching_decades', 'Get decade breakdown across all watched movies. Returns each decade with movie count.', {}, READ_ONLY_ANNOTATIONS, async () => withRichResponse(async () => {
263
+ const { data } = await client.get('/watching/stats/decades');
264
+ if (!data.length) {
265
+ return {
266
+ content: [text('No decade data available.')],
267
+ structuredContent: { items: [] },
268
+ };
269
+ }
270
+ const lines = ['Decade breakdown:'];
271
+ for (const d of data) {
272
+ lines.push(`- ${d.decade}s: ${fmt(d.count)}`);
273
+ }
274
+ return {
275
+ content: [text(lines.join('\n'))],
276
+ structuredContent: { items: data },
277
+ };
278
+ }));
279
+ // get_watching_directors ─────────────────────────────────────────
280
+ server.tool('get_watching_directors', 'Get top directors by watched-movie count. Returns directors ranked by how many of their films you have watched.', {
281
+ limit: z
282
+ .number()
283
+ .min(1)
284
+ .max(100)
285
+ .default(20)
286
+ .describe('Number of directors to return'),
287
+ }, READ_ONLY_ANNOTATIONS, async ({ limit }) => withRichResponse(async () => {
288
+ const { data } = await client.get('/watching/stats/directors', { limit });
289
+ if (!data.length) {
290
+ return {
291
+ content: [text('No director data available.')],
292
+ structuredContent: { items: [] },
293
+ };
294
+ }
295
+ const lines = ['Top directors:'];
296
+ for (const [i, d] of data.entries()) {
297
+ lines.push(`${i + 1}. ${d.name} -- ${fmt(d.count)}`);
298
+ }
299
+ return {
300
+ content: [text(lines.join('\n'))],
301
+ structuredContent: { items: data },
302
+ };
136
303
  }));
137
304
  }
138
305
  //# sourceMappingURL=watching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watching.js","sourceRoot":"","sources":["../../src/tools/watching.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watching.js","sourceRoot":"","sources":["../../src/tools/watching.ts"],"names":[],"mappings":"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"}