Skip to main content
Glama
lionkiii

RSS Feeds MCP Server

by lionkiii
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-mcp-marketing

Do all of the following:
1. Clone the repo into a sensible folder (e.g. ~/mcp-servers/rss-mcp-marketing) 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

A3.5/5.0

Scored across 8 tools

Disambiguation4/5

Tools are largely distinct, but fetch_blogs, fetch_by_category, and fetch_from_source have overlapping functionality; descriptions help differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_, add_, remove_, fetch_, search_), making them predictable.

Tool Count5/5

8 tools is well-scoped for an RSS feed management server; enough to cover core operations without being overwhelming.

Completeness3/5

Missing update feed and category management tools (add/remove categories); fetch operations support basic retrieval but lack feed refresh.

Maintenance

ActivityStale
ResponsivenessNo issues