Skip to main content
Glama
jeffereychown-Max

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