Skip to main content
Glama
README.md
# RSS Feeds MCP Server

An MCP server for digital marketers to fetch, search, and filter RSS blog feeds.
Works with Claude Desktop and any MCP-compatible client.

## Quick setup with Claude Code (copy this prompt)

Open [Claude Code](https://docs.anthropic.com/en/docs/claude-code) in your
terminal and paste the prompt below. It clones this repo, builds it, and wires
it into Claude Desktop for you.

```text
Set up this RSS MCP server for my Claude Desktop.

Repo: https://github.com/lionkiii/rss-feeds-mcp

Do all of the following:
1. Clone the repo into a sensible folder (e.g. ~/mcp-servers/rss-feeds-mcp) if it isn't already cloned, then cd into it.
2. Run `npm install` and `npm run build`. Confirm `dist/index.js` exists.
3. Find the absolute path to my node binary (`which node`; if it is under nvm use that full path, because Claude Desktop does not load my shell PATH).
4. Locate my Claude Desktop config:
   - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
   - Windows: %APPDATA%\Claude\claude_desktop_config.json
   Create the file with `{}` if it does not exist. Back it up first.
5. IMPORTANT: fully quit Claude Desktop before editing the config, because a running Claude Desktop rewrites the file on write and will discard my changes. On macOS quit it with `osascript -e 'tell application "Claude" to quit'`.
6. Merge (do not overwrite) an "mcpServers" entry named "rss-feeds" whose "command" is my absolute node path and whose "args" is the absolute path to dist/index.js. Keep the JSON valid and preserve any existing config keys and other mcpServers.
7. Relaunch Claude Desktop and verify the config still contains the rss-feeds entry after launch, and that a node process running dist/index.js was spawned.
8. Tell me to try: "fetch the latest marketing blogs".
```

## Tools

- `list_categories` - list feed categories
- `list_feeds` - list configured feeds
- `add_feed` - add a feed (name, url, category)
- `remove_feed` - remove a feed by name
- `fetch_blogs` - latest posts across all feeds (range, limit)
- `fetch_by_category` - posts filtered by category
- `fetch_from_source` - posts from one source
- `search_blogs` - keyword search across all feeds

Date ranges: `1d`, `7d`, `1w`, `30d`, `1m`, `this_week`, `this_month`.

## Setup

```bash
npm install
npm run build
```

## Connect to Claude Desktop

Config file (macOS):
`~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "rss-feeds": {
      "command": "node",
      "args": ["/absolute/path/to/RSS/dist/index.js"]
    }
  }
}
```

Notes:
- Use an absolute path to `dist/index.js`.
- If `node` is installed via nvm, use the absolute node path (e.g.
  `~/.nvm/versions/node/<version>/bin/node`) because Claude Desktop does not
  load your shell PATH.
- Run `npm run build` after editing `src/index.ts`, then restart Claude Desktop.

## Managing feeds

Feeds live in `feeds.json`. Edit directly or use the `add_feed` / `remove_feed`
tools. All feed requests use a browser User-Agent and a 20s hard timeout so a
slow or dead feed can never hang the whole request.

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation5/5

Each fetch operation has a clearly distinct filtering mechanism—date range for fetch_blogs, category for fetch_by_category, specific source for fetch_from_source, and keyword for search_blogs. Feed management tools (add, list, remove) target different lifecycle stages without overlap.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (add_feed, list_feeds, search_blogs). The fetch operations slightly deviate with prepositions (fetch_by_category, fetch_from_source) but remain consistent with each other and readable.

Tool Count5/5

Eight tools provides excellent coverage for RSS management without bloat. The set includes feed CRUD operations (minus update), multiple retrieval strategies, and category management—appropriate scope for an RSS server.

Completeness4/5

Covers core RSS workflows well: adding/removing feeds, listing metadata, and retrieving content via multiple filters. Minor gap in missing update_feed operation (for changing categories or URLs), though agents can work around this via remove/add sequence.

Maintenance

ActivityStale
ResponsivenessNo issues