mcp-morning-brief
README.md
# mcp-morning-brief
> Subscribe to RSS/Atom feeds. Get a deduped daily brief. **Feeds in, structured brief out, no UI.** Free, MIT.
Existing news/RSS MCPs either dump raw items or require paid APIs. **`mcp-morning-brief` is the opinionated "morning brief" shape** — exactly what pairs with a daily Claude Desktop chat.
---
## Install
```json
{
"mcpServers": {
"brief": {
"command": "npx",
"args": ["-y", "@dpm-tools/mcp-morning-brief"]
}
}
}
```
Requires Node.js 22.18+. Feed list stored at `~/.mcp-morning-brief/feeds.json`.
---
## Tools (5)
- **`list_feeds`** — Show all subscribed feeds.
- **`add_feed`** — Subscribe (validates by fetching + parsing).
- **`remove_feed`** — Unsubscribe by URL or label.
- **`fetch_feed`** — Fetch any RSS/Atom feed (subscribed or not).
- **`get_brief`** — Deduped digest of last N hours, grouped by feed.
---
## Example prompts
- *"Subscribe me to https://news.ycombinator.com/rss"*
- *"Give me a morning brief from the last 24 hours."*
- *"Fetch the latest 10 items from https://lobste.rs/rss"*
- *"What feeds am I subscribed to?"*
See [`examples/prompts.md`](./examples/prompts.md) for more.
---
## Why this exists
People feel guilty about not reading their RSS reader. This server reframes RSS as a **conversation accessory** — Claude pulls your morning brief at the start of your daily chat.
Zero deps beyond `@modelcontextprotocol/sdk`. Parses RSS 2.0 + Atom with regex (handles 95% of feeds). Stores feed list locally as JSON. No API keys. No cloud sync.
---
## Sister servers from dpm
- **`mcp-devkit`**, **`mcp-public-data`**, **`mcp-diff`**, **`mcp-archive`**, **`mcp-citations`**, **`mcp-ical`**, **`mcp-dict`**, **`mcp-http-inspect`**.
---
## License
MIT © dpm (digital product mill)
TDQS
A3.9/5.0
Scored across 5 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: adding a feed, fetching any feed, generating a brief, listing feeds, and removing a feed. No overlap in functionality.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern in snake_case (add_feed, fetch_feed, get_brief, list_feeds, remove_feed), making them predictable.
Tool Count5/5
With 5 tools, the server covers the core operations for managing RSS/Atom feeds and generating a brief. This is well-scoped and neither too few nor too many.
Completeness5/5
The set covers full lifecycle: subscribe (add_feed), list (list_feeds), fetch individual (fetch_feed), generate digest (get_brief), and unsubscribe (remove_feed). No obvious gaps for its stated purpose.
Maintenance
ActivityInactive
ResponsivenessNo issues