rss-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RSS_MCP_DB | No | SQLite database file path | data/rss.sqlite3 |
| RSS_MCP_HOST | No | Host address to bind to | 127.0.0.1 |
| RSS_MCP_PORT | No | Backend server port (strict fleet standard) | 11974 |
| RSS_MCP_LANCE_PATH | No | LanceDB vector database directory | data/lancedb |
| RSS_MCP_WEBAPP_PORT | No | Webapp frontend port | 11975 |
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
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| feeds_opsB | feeds_ops - Full feed subscription lifecycle. RATIONALE: groups subscribe/unsubscribe/list/refresh/fetch/get/mark/star/remove/opml/health into one discoverable tool. Stateful reader, unlike glance-mcp single-shot fetch. Return FormatDictionary with Examples
|
| readability_opsA | readability_ops - Clean article text without ad sites. RATIONALE: trafilatura primary plus readability-lxml fallback, cached in SQLite. No paywall bypass: if the page needs login, extraction reports failure honestly. Return FormatDictionary with Examples
|
| reader_opsA | reader_ops - Daily reading surface: inbox, stars, search, stats, RAG sweeps. RATIONALE: single entry point for what a human checks every morning. Return Format{success, message, items/stats/job/job_id/status/chunks} Examples
|
| rss_helpB | rss_help - Capability summary and op list. Return FormatDictionary with Examples
|
| rss_shutdownA | rss_shutdown - Graceful shutdown hook for the daemon. Return FormatDictionary with Examples
|
| show_reader_prefab_cardB | show_reader_prefab_card - Prefab stats card for list/status/stats coverage. Return FormatToolResult with PrefabApp structured content plus plain-text fallback. Examples
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| rss_help |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| rss_status_resource | rss://status - Dynamic reader metrics and system status resource. ## Return Format JSON string containing feed counts, items, unread, starred, and extracts. |
| rss-expert/SKILL.md | Expert skill for reading RSS feeds, extracting clean article text, and semantic search |
| rss-expert/_manifest | File listing for rss-expert |
| Prefab Renderer (show_reader_prefab_card) |
TDQS
Scored across 6 tools
feeds_ops and reader_ops both handle item retrieval and marking (e.g., fetch_items vs. inbox, mark/star in feeds_ops vs. stars in reader_ops), creating overlap that could cause misselection. show_reader_prefab_card also overlaps with reader_ops stats. Descriptions clarify intended separation, but boundaries are not crisp.
Most tools use a consistent noun_ops pattern (feeds_ops, readability_ops, reader_ops), but rss_help and rss_shutdown use a different prefix, and show_reader_prefab_card uses a verb_noun format. The mix is readable but not predictable.
Six tools is well-scoped for an RSS reader daemon. Each tool has a clear role: feed lifecycle, extraction, reading surface, help, shutdown, and a presentation card. None feels redundant or excessive.
The surface covers the full RSS reader lifecycle: subscription management (subscribe/unsubscribe/list/refresh/remove/OPML/health), article extraction and caching, reading inbox/stars/search/stats, background RAG sweeps, help, and graceful shutdown. No obvious operational gaps remain.