mcp-feed-reader-crunchtools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NO_PROXY | No | Standard httpx proxy variable, honoured for every feed fetch. Useful when a publisher rate-limits your egress IP. | |
| HTTP_PROXY | No | Standard httpx proxy variable, honoured for every feed fetch. Useful when a publisher rate-limits your egress IP. | |
| HTTPS_PROXY | No | Standard httpx proxy variable, honoured for every feed fetch. Useful when a publisher rate-limits your egress IP. | |
| FEED_READER_DB | No | SQLite database path | ~/.local/share/mcp-feed-reader/feeds.db |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_feed_toolB | Add an RSS/Atom feed by URL, optionally assign to a category. |
| list_feeds_toolB | List all feeds with unread counts. |
| get_feed_toolA | Get details for a single feed including entry counts. |
| delete_feed_toolB | Remove a feed and all its entries. |
| refresh_feeds_toolA | Crawl feed sources over the network for new content. Slow — takes 30-60s for all feeds. Prefer the systemd timer for background updates. Use list_entries to read cached content. |
| list_entries_toolA | List entries with optional filters. Date-window filters apply to COALESCE(published, created_at), so entries with no publish date still fall in the window by ingest time. Use them to fetch only a trailing period instead of paging through everything. |
| read_entry_toolA | Get full content of an entry (auto-marks as read). |
| mark_read_toolC | Mark entries as read. |
| mark_unread_toolC | Mark an entry as unread. |
| search_entries_toolB | Full-text search across entry titles and content. |
| list_categories_toolA | List all categories with feed counts. |
| create_category_toolC | Create a new category. |
| rename_category_toolC | Rename a category. |
| delete_category_toolB | Delete a category. Feeds in this category become uncategorized. |
| import_opml_toolB | Import feeds from an OPML file, creating categories from outline groups. |
| export_opml_toolA | Export all feeds as OPML XML string. |
| get_stats_toolA | Get dashboard stats: total feeds, unread count, entries per category. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools target distinct resources and actions (feeds, entries, categories each have clear verbs). Minor overlap exists between read_entry_tool (which auto-marks as read) and mark_read_tool, and between list_entries_tool and search_entries_tool, but the descriptions clarify the boundaries well enough.
Every tool follows a consistent snake_case verb_noun_tool pattern (list_feeds_tool, add_feed_tool, delete_category_tool, etc.). The convention is uniform across all 17 tools with no style mixing.
17 tools is slightly above the ideal range but each earns its place across three resource domains (feeds, entries, categories) plus OPML import/export and refresh. No redundant or filler tools are present.
Core lifecycle is well covered: feeds (list/get/add/delete/refresh/OPML), entries (list/search/read/mark read/unread), and categories (list/create/rename/delete). Gaps include updating an existing feed (rename or move category) and bulk mark-all-read, but these are minor workarounds.