rewind-mcp-server 0.4.1 → 0.5.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.
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { withRichResponse, text, resourceLink, imageBlock, formatDate, timeAgo, fmt, READ_ONLY_ANNOTATIONS, dateFilterParams, includeImagesParam, LIST_IMAGE_PX, } from './helpers.js';
2
+ import { withRichResponse, text, resourceLink, imageBlock, formatDate, timeAgo, fmt, hostOf, READ_ONLY_ANNOTATIONS, dateFilterParams, includeImagesParam, LIST_IMAGE_PX, } from './helpers.js';
3
3
  const TOP_N = 5;
4
4
  function truncateAtWord(s, maxChars) {
5
5
  if (s.length <= maxChars)
@@ -9,22 +9,83 @@ function truncateAtWord(s, maxChars) {
9
9
  return (lastSpace > 0 ? slice.slice(0, lastSpace) : slice) + '…';
10
10
  }
11
11
  export function registerReadingTools(server, client) {
12
- // get_recent_reads ───────────────────────────────────────────────
13
- server.tool('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.', {
14
- limit: z
15
- .number()
16
- .min(1)
17
- .max(50)
18
- .default(10)
19
- .describe('Number of recent articles to return (max 50)'),
20
- page: z
12
+ // get_article ────────────────────────────────────────────────────
13
+ server.tool('get_article', 'Fetch a single saved article by internal Rewind id. Returns the FULL article body (plain text, HTML-stripped, complete — typically 5-30 KB) plus metadata, highlights, and all URL variants. **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.** Rewind has the full article text cached, including for paywalled sources (NYT, WSJ, Atlantic, etc.) — do NOT fall back to web search or web fetch for article content.', {
14
+ id: z
21
15
  .number()
22
- .min(1)
23
- .default(1)
24
- .describe('Page number for pagination. Combine with limit to page through longer windows.'),
25
- ...dateFilterParams,
26
- ...includeImagesParam,
27
- }, READ_ONLY_ANNOTATIONS, async ({ limit, page, date, from, to, include_images }) => withRichResponse(async () => {
16
+ .int()
17
+ .positive()
18
+ .describe('Internal Rewind article id (from a get_recent_reads, search, semantic_search, or find_similar_articles result)'),
19
+ }, READ_ONLY_ANNOTATIONS, async ({ id }) => withRichResponse(async () => {
20
+ const a = await client.get(`/reading/articles/${id}`);
21
+ const header = [`# ${a.title}`];
22
+ if (a.author)
23
+ header.push(`by ${a.author}`);
24
+ if (a.domain)
25
+ header.push(a.domain);
26
+ if (a.word_count)
27
+ header.push(`${fmt(a.word_count)} words`);
28
+ const body = a.content ??
29
+ a.excerpt ??
30
+ '(Full article text not available — enrichment may have failed for this item.)';
31
+ const highlightLines = [];
32
+ if (a.highlights.length > 0) {
33
+ highlightLines.push('', `## Your highlights (${a.highlights.length})`);
34
+ for (const h of a.highlights) {
35
+ highlightLines.push('', `> ${h.text}`);
36
+ if (h.note)
37
+ highlightLines.push(` Note: ${h.note}`);
38
+ }
39
+ }
40
+ const lines = [header.join(' · '), '', body, ...highlightLines];
41
+ const links = [];
42
+ if (a.url) {
43
+ const host = hostOf(a.url);
44
+ links.push(resourceLink(a.url, host ? `${a.title} — read on ${host}` : a.title, { mimeType: 'text/html' }));
45
+ }
46
+ if (a.instapaper_url) {
47
+ links.push(resourceLink(a.instapaper_url, `${a.title} — read in Instapaper`, {
48
+ mimeType: 'text/html',
49
+ }));
50
+ }
51
+ if (a.instapaper_app_url) {
52
+ links.push(resourceLink(a.instapaper_app_url, `${a.title} — open in Instapaper app`));
53
+ }
54
+ const content = [
55
+ text(lines.join('\n')),
56
+ ...links.filter((b) => b !== null),
57
+ ];
58
+ return { content, structuredContent: a };
59
+ }));
60
+ // get_recent_reads ───────────────────────────────────────────────
61
+ // Registered via the modern server.registerTool so we can attach
62
+ // `_meta.ui.resourceUri`. Hosts that support MCP Apps (Claude Desktop,
63
+ // Claude web, VS Code Copilot) render the article card list inline;
64
+ // others fall back to the text + image + resource_link response.
65
+ server.registerTool('get_recent_reads', {
66
+ title: 'Recent reads',
67
+ description: '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.',
68
+ inputSchema: {
69
+ limit: z
70
+ .number()
71
+ .min(1)
72
+ .max(50)
73
+ .default(10)
74
+ .describe('Number of recent articles to return (max 50)'),
75
+ page: z
76
+ .number()
77
+ .min(1)
78
+ .default(1)
79
+ .describe('Page number for pagination. Combine with limit to page through longer windows.'),
80
+ ...dateFilterParams,
81
+ ...includeImagesParam,
82
+ },
83
+ annotations: READ_ONLY_ANNOTATIONS,
84
+ _meta: {
85
+ ui: { resourceUri: 'ui://rewind/recent-reads.html' },
86
+ 'ui/resourceUri': 'ui://rewind/recent-reads.html',
87
+ },
88
+ }, async ({ limit, page, date, from, to, include_images }) => withRichResponse(async () => {
28
89
  const { data } = await client.get('/reading/recent', { limit, page, date, from, to });
29
90
  if (!data.length) {
30
91
  return {
@@ -44,7 +105,12 @@ export function registerReadingTools(server, client) {
44
105
  : a.status === 'archived'
45
106
  ? ' [finished]'
46
107
  : '';
47
- lines.push(`${i + 1}. ${a.title}${author}${domain}${readTime}${status} (${timeAgo(a.saved_at)})`);
108
+ // Embed click-through URL as a markdown link on the title so the
109
+ // model's natural echo of tool text preserves clickability (resource_link
110
+ // blocks are hidden from inline responses in Claude Desktop).
111
+ const titleUrl = a.url ?? a.instapaper_url ?? null;
112
+ const titleMd = titleUrl ? `[${a.title}](${titleUrl})` : a.title;
113
+ lines.push(`${i + 1}. ${titleMd}${author}${domain}${readTime}${status} (${timeAgo(a.saved_at)})`);
48
114
  if (a.description) {
49
115
  lines.push(` ${truncateAtWord(a.description, 160)}`);
50
116
  }
@@ -53,11 +119,22 @@ export function registerReadingTools(server, client) {
53
119
  const images = include_images
54
120
  ? await Promise.all(topN.map((a) => imageBlock(client, a.image, LIST_IMAGE_PX)))
55
121
  : [];
56
- const links = topN
57
- .map((a) => resourceLink(a.url, `Article -- ${a.title}`, {
58
- mimeType: 'text/html',
59
- }))
60
- .filter((b) => b !== null);
122
+ const links = topN.flatMap((a) => {
123
+ const out = [];
124
+ if (a.url) {
125
+ const host = hostOf(a.url);
126
+ out.push(resourceLink(a.url, host ? `${a.title} — read on ${host}` : a.title, { mimeType: 'text/html' }));
127
+ }
128
+ if (a.instapaper_url) {
129
+ out.push(resourceLink(a.instapaper_url, `${a.title} — read in Instapaper`, {
130
+ mimeType: 'text/html',
131
+ }));
132
+ }
133
+ if (a.instapaper_app_url) {
134
+ out.push(resourceLink(a.instapaper_app_url, `${a.title} — open in Instapaper app`));
135
+ }
136
+ return out.filter((b) => b !== null);
137
+ });
61
138
  const content = [
62
139
  text(lines.join('\n')),
63
140
  ...images.filter((b) => b !== null),
@@ -93,19 +170,33 @@ export function registerReadingTools(server, client) {
93
170
  lines.push(` Note: ${h.note}`);
94
171
  lines.push(` -- ${source} (${formatDate(h.created_at)})`);
95
172
  }
96
- // Deduplicate article URLs before emitting as resource_links
173
+ // Dedupe article URLs before emitting as resource_links.
174
+ // Emit both the source URL and the Instapaper reader URL for
175
+ // each distinct parent article.
97
176
  const seen = new Set();
98
- const links = data.data
99
- .map((h) => {
100
- const url = h.article.url ?? null;
101
- if (!url || seen.has(url))
102
- return null;
103
- seen.add(url);
104
- return resourceLink(url, `Article -- ${h.article.title}`, {
105
- mimeType: 'text/html',
106
- });
107
- })
108
- .filter((b) => b !== null);
177
+ const links = data.data.flatMap((h) => {
178
+ const sourceUrl = h.article.url ?? null;
179
+ const instapaperUrl = h.article.instapaper_url ?? null;
180
+ const instapaperAppUrl = h.article.instapaper_app_url ?? null;
181
+ const key = sourceUrl ?? instapaperUrl;
182
+ if (!key || seen.has(key))
183
+ return [];
184
+ seen.add(key);
185
+ const out = [];
186
+ if (sourceUrl) {
187
+ const host = hostOf(sourceUrl);
188
+ out.push(resourceLink(sourceUrl, host ? `${h.article.title} — read on ${host}` : h.article.title, { mimeType: 'text/html' }));
189
+ }
190
+ if (instapaperUrl) {
191
+ out.push(resourceLink(instapaperUrl, `${h.article.title} — read in Instapaper`, {
192
+ mimeType: 'text/html',
193
+ }));
194
+ }
195
+ if (instapaperAppUrl) {
196
+ out.push(resourceLink(instapaperAppUrl, `${h.article.title} — open in Instapaper app`));
197
+ }
198
+ return out.filter((b) => b !== null);
199
+ });
109
200
  const content = [text(lines.join('\n')), ...links];
110
201
  return {
111
202
  content,
@@ -122,10 +213,16 @@ export function registerReadingTools(server, client) {
122
213
  if (data.note)
123
214
  lines.push(`Note: ${data.note}`);
124
215
  lines.push(`-- ${source}`);
125
- const link = resourceLink(data.article.url ?? null, `Article -- ${data.article.title}`, { mimeType: 'text/html' });
216
+ const sourceUrl = data.article.url ?? null;
217
+ const host = hostOf(sourceUrl);
218
+ const sourceLink = resourceLink(sourceUrl, host ? `${data.article.title} — read on ${host}` : data.article.title, { mimeType: 'text/html' });
219
+ const instapaperLink = resourceLink(data.article.instapaper_url ?? null, `${data.article.title} — read in Instapaper`, { mimeType: 'text/html' });
220
+ const instapaperAppLink = resourceLink(data.article.instapaper_app_url ?? null, `${data.article.title} — open in Instapaper app`);
126
221
  const content = [
127
222
  text(lines.join('\n')),
128
- ...(link ? [link] : []),
223
+ ...(sourceLink ? [sourceLink] : []),
224
+ ...(instapaperLink ? [instapaperLink] : []),
225
+ ...(instapaperAppLink ? [instapaperAppLink] : []),
129
226
  ];
130
227
  return { content, structuredContent: data };
131
228
  }));
@@ -168,18 +265,30 @@ export function registerReadingTools(server, client) {
168
265
  }
169
266
  const lines = [`Articles similar to #${article_id}:`];
170
267
  for (const [i, r] of data.data.entries()) {
268
+ const titleUrl = r.url ?? r.instapaper_url ?? null;
269
+ const titleMd = titleUrl ? `[${r.title}](${titleUrl})` : r.title;
171
270
  const author = r.author ? ` by ${r.author}` : '';
172
271
  const dom = r.domain ? ` (${r.domain})` : '';
173
- lines.push(`${i + 1}. ${r.title}${author}${dom} (score=${r.score.toFixed(2)})`);
272
+ lines.push(`${i + 1}. ${titleMd}${author}${dom} (score=${r.score.toFixed(2)})`);
174
273
  }
175
274
  const links = data.data.flatMap((r) => {
176
275
  const out = [];
177
276
  if (r.url) {
178
- out.push(resourceLink(r.url, r.title, {
277
+ const host = hostOf(r.url);
278
+ out.push(resourceLink(r.url, host ? `${r.title} — read on ${host}` : r.title, {
179
279
  mimeType: 'text/html',
180
280
  description: r.description ?? undefined,
181
281
  }));
182
282
  }
283
+ if (r.instapaper_url) {
284
+ out.push(resourceLink(r.instapaper_url, `${r.title} — read in Instapaper`, {
285
+ mimeType: 'text/html',
286
+ description: r.description ?? undefined,
287
+ }));
288
+ }
289
+ if (r.instapaper_app_url) {
290
+ out.push(resourceLink(r.instapaper_app_url, `${r.title} — open in Instapaper app`, { description: r.description ?? undefined }));
291
+ }
183
292
  out.push(resourceLink(`rewind://article/${r.id}`, `${r.title} (details)`, {
184
293
  mimeType: 'application/json',
185
294
  description: r.description ?? undefined,
@@ -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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"}