tpmjs/packages/tools/official/rss-read
Ajax Davis 5926373be6 chore: update ai package to 6.0.49 across all packages
- Updated all packages from ai@6.0.23 to ai@6.0.49
- Added pnpm override to ensure consistent version
- Created changeset for publishing affected packages
2026-01-25 11:33:03 +10:00
..
src feat: add use cases marketing product with AI-generated content 2026-01-20 16:17:35 +10:00
CHANGELOG.md chore: version packages 2025-12-31 23:54:47 +10:00
package.json chore: update ai package to 6.0.49 across all packages 2026-01-25 11:33:03 +10:00
README.md feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsconfig.json feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsup.config.ts feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00

@tpmjs/tools-rss-read

Parse RSS/Atom feeds and extract feed metadata and items.

Installation

npm install @tpmjs/tools-rss-read

Usage

import { rssReadTool } from '@tpmjs/tools-rss-read';
import { generateText } from 'ai';

const result = await generateText({
  model: yourModel,
  tools: { rssReadTool },
  prompt: 'Get the latest articles from https://example.com/feed.xml',
});

Tool Parameters

  • url (string, required): The RSS or Atom feed URL to parse
  • limit (number, optional): Maximum number of items to return (default: 20, max: 100)

Returns

{
  feed: {
    title: string;
    link: string;
    description?: string;
    language?: string;
    lastBuildDate?: string;
    imageUrl?: string;
  };
  items: Array<{
    title: string;
    link: string;
    description?: string;
    pubDate?: string;
    author?: string;
    categories?: string[];
    guid?: string;
  }>;
  itemCount: number;
  metadata: {
    fetchedAt: string;
    feedType: string;
    totalItems: number;
    limitApplied: boolean;
  };
}

Features

  • Supports both RSS 2.0 and Atom feeds
  • Extracts feed metadata (title, description, image)
  • Extracts item details (title, link, description, date, author, categories)
  • Configurable item limit
  • Comprehensive error handling
  • Sanitizes HTML content to plain text
  • 30-second timeout protection

Requirements

  • Node.js 18+ (uses native fetch API)

License

MIT