Skip to main content

mcp-feed-reader-crunchtools

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

Installation

uvx mcp-feed-reader-crunchtools

pip

pip install mcp-feed-reader-crunchtools

Container

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
HTTP_PROXY / HTTPS_PROXY / NO_PROXY (none) Standard httpx proxy variables, honoured for every feed fetch. Useful when a publisher rate-limits your egress IP — Reddit returns 429 to datacentre ranges regardless of User-Agent

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

Nothing in the server crawls on its own. list_entries_tool and friends read a cache; if no one calls --fetch, that cache goes stale and every reader sees an empty feed with no error anywhere. A deployment without a crawl trigger is a broken deployment — this bit the daily briefing, which reported "no news" for days while all 61 feeds sat unfetched.

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

deploy/ ships the two units used in production. Copy them to /etc/systemd/system/, adjust the container name in the service if yours differs, then:

sudo systemctl daemon-reload
sudo systemctl enable --now mcp-feeds-refresh.timer

The service runs --fetch inside the running container (podman exec), so the database keeps the SELinux category of the process that owns it. Do not bind-mount the data directory into a second container with :Z to run the crawl — that relabels the volume and locks the live server out.

The timer fires hourly, plus once at 05:45. That second entry is not redundant: consumers window entries on publication time, so an entry published between the last crawl and a 06:00 report is missing from that report and already older than the next day's window start — it is lost for good. Any consumer on a fixed schedule wants a crawl shortly before it.

Feeds are fetched conditionally (ETag / If-Modified-Since). A rate limit, gateway 5xx, or dropped connection is retried with exponential backoff, up to three attempts in all, before the feed is recorded as failed.

License

AGPL-3.0-or-later

Metadata

Release files for mcp-feed-reader-crunchtools 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-feed-reader-crunchtools 0.4.1
File Size Uploaded Provenance Actions
mcp_feed_reader_crunchtools-0.4.1.tar.gz 165.0 kB With provenance Details for mcp_feed_reader_crunchtools-0.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-feed-reader-crunchtools 0.4.1
File Interpreter ABI Platform Actions
mcp_feed_reader_crunchtools-0.4.1-py3-none-any.whl Python 3 none any Details for mcp_feed_reader_crunchtools-0.4.1-py3-none-any.whl

Total release size: 197.5 kB

Release files / mcp_feed_reader_crunchtools-0.4.1.tar.gz

Download URL mcp_feed_reader_crunchtools-0.4.1.tar.gz
Size 165.0 kB
Tags Source
SHA-256 checksum
How to use checksums
933622a6a88855f06b60ffbc8e77638228017aff55a774186437a6cc95185d8a
BLAKE2b-256 checksum
How to use checksums
6dc10957a61c976c9315b66b1135276637b87531463c2b7aeb13e015754acb42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / mcp_feed_reader_crunchtools-0.4.1-py3-none-any.whl

Download URL mcp_feed_reader_crunchtools-0.4.1-py3-none-any.whl
Size 32.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8feefc754889a7464170e04a94e49fe9ffc44a201e6c6aa87271751ac57b54ea
BLAKE2b-256 checksum
How to use checksums
1740647f13931f8e3b63e8a6898b91bb2b361a3ba79ac39f47dc0522330cdaf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Security for mcp-feed-reader-crunchtools 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mcp_feed_reader_crunchtools-0.4.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page