Skip to main content
Glama
crunchtools

mcp-feed-reader-crunchtools

by crunchtools
README.md
# mcp-feed-reader-crunchtools

Secure MCP server for RSS/Atom feed reading with SQLite backend.

<!-- mcp-name: io.github.crunchtools/feed-reader -->

## Installation

### uvx (recommended)
```bash
uvx mcp-feed-reader-crunchtools
```

### pip
```bash
pip install mcp-feed-reader-crunchtools
```

### Container
```bash
podman run -v feedreader-data:/data quay.io/crunchtools/mcp-feed-reader
```

## Configuration

| Variable | Default | Description |
|----------|---------|-------------|
| `FEED_READER_DB` | `~/.local/share/mcp-feed-reader/feeds.db` | SQLite database path |

## Tools (17)

### Feed Management
- `add_feed_tool` — Add an RSS/Atom feed by URL
- `list_feeds_tool` — List all feeds with unread counts
- `get_feed_tool` — Get feed details
- `delete_feed_tool` — Remove a feed
- `refresh_feeds_tool` — Crawl feed sources for new content (slow, prefer systemd timer)

### Entry Management
- `list_entries_tool` — List entries (filterable, paginated)
- `read_entry_tool` — Read full entry content (auto-marks read)
- `mark_read_tool` — Mark entries as read
- `mark_unread_tool` — Mark entry as unread
- `search_entries_tool` — Full-text search (FTS5)

### Category Management
- `list_categories_tool` — List categories with counts
- `create_category_tool` — Create category
- `rename_category_tool` — Rename category
- `delete_category_tool` — Delete category

### Import/Export
- `import_opml_tool` — Import from OPML file
- `export_opml_tool` — Export as OPML
- `get_stats_tool` — Dashboard stats

## Background Fetching

```bash
# Fetch all feeds via CLI
mcp-feed-reader-crunchtools --fetch
```

## License

AGPL-3.0-or-later

TDQS

B3.4/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct resource and action: feed CRUD, entry listing/reading/searching, read-state toggles, category management, stats, and OPML import/export. The only minor overlap is read_entry_tool auto-marking entries as read, but its primary purpose (content retrieval) is clearly distinct from mark_read_tool's explicit state change. No two tools are confusable.

Naming Consistency5/5

All 17 tools use consistent snake_case with a uniform verb_noun_tool pattern (e.g., add_feed_tool, delete_category_tool, list_entries_tool). The redundant '_tool' suffix is applied uniformly, so there is no mixing of conventions. The pattern is entirely predictable.

Tool Count4/5

17 tools is slightly above the typical 3-15 sweet spot, but each tool serves a clear purpose in a full-featured feed reader: feed management, entry handling, category CRUD, stats, and OPML support. The set feels well-scoped rather than bloated.

Completeness4/5

The surface covers most feed-reader workflows: add/delete/list/get feeds, refresh, entry listing/reading/searching, read-state toggles, category CRUD, stats, and OPML import/export. The notable gap is an update_feed operation (e.g., changing URL, title, or category assignment); workarounds exist (delete and re-add) but lose state. This is a minor gap rather than a critical failure.

Maintenance

ActivityMaintained
ResponsivenessNo issues