mark_all_as_read
Mark all articles in a FreshRSS stream as read to clear unread notifications. Specify a stream ID and optional timestamp to filter older articles.
Instructions
Mark all articles in a stream as read
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| streamId | Yes | Stream ID (feed/123, user/-/label/FolderName, or user/-/state/com.google/reading-list) | |
| olderThan | No | Only mark articles older than this Unix timestamp |
Implementation Reference
- src/handlers/article-handlers.ts:90-93 (handler)The tool handler for 'mark_all_as_read' which calls the service layer.
wrapTool('mark_all_as_read', async (args: z.infer<typeof markAllReadSchema>) => { await client.articles.markAllAsRead(args.streamId, args.olderThan); return textResult('Marked all articles in stream as read.'); }) - src/api/article-service.ts:88-94 (handler)The actual service implementation that performs the API call for 'mark_all_as_read'.
async markAllAsRead(streamId: string, olderThan?: number): Promise<void> { const body: Record<string, string> = { s: streamId }; if (olderThan !== undefined && olderThan !== 0) { body.ts = String(olderThan * 1000000); } await this.http.post('/reader/api/0/mark-all-as-read', body); } - src/handlers/article-handlers.ts:84-94 (registration)The registration of the 'mark_all_as_read' tool with the MCP server.
server.registerTool( 'mark_all_as_read', { description: 'Mark all articles in a stream as read', inputSchema: markAllReadSchema, }, wrapTool('mark_all_as_read', async (args: z.infer<typeof markAllReadSchema>) => { await client.articles.markAllAsRead(args.streamId, args.olderThan); return textResult('Marked all articles in stream as read.'); }) );