Skip to main content
Glama
jeffereychown-Max

mcp-morning-brief

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

{
  "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.


Related MCP server: MCP RSS

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

See 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)

Available Tools

5 tools
add_feedA

Subscribe to a new RSS or Atom feed URL. Validates by attempting to fetch and parse it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
labelNoOptional friendly name (defaults to feed title)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool validates the URL by fetching and parsing, which adds behavioral context. However, it does not detail behavior on validation failure, idempotency, or authorization requirements. With no annotations, this is partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and provide a key behavioral note. No extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing essential details: return value on success/failure, error handling, behavior if feed already exists, and authentication. No output schema or annotations further limit completeness for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only 'label' has a description). The description adds that the URL is a feed URL but does not fully compensate for the undocumented 'url' parameter, failing to specify accepted formats or protocols.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: subscribe to a new RSS or Atom feed URL. It distinguishes from sibling tools like list_feeds and remove_feed by indicating it adds a new feed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when adding a new feed) but lacks explicit guidance on when not to use, prerequisites, or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_feedB

Fetch a single RSS/Atom feed (does not need to be subscribed). Returns parsed items.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
limitNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Mentions return of parsed items but omits behavior details like error handling, rate limits, authentication, or what happens with invalid feeds. Some transparency from 'does not need to be subscribed'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with key information. Every sentence serves a purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no parameter descriptions, and no annotations, the description is too brief. Lacks details on error conditions, response format, and usage constraints beyond subscription status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and description adds no information about the parameters (url, limit). Agent must infer meaning from parameter names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Fetch' and resource 'single RSS/Atom feed', and distinguishes from siblings by clarifying that the feed does not need to be subscribed. Also mentions return of parsed items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implicit guidance ('does not need to be subscribed') but lacks explicit when-to-use vs siblings like add_feed or list_feeds. No when-not or alternative suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_briefA

Generate a deduped digest of recent items across all subscribed feeds, grouped by feed.

ParametersJSON Schema
NameRequiredDescriptionDefault
since_hoursNo
max_items_per_feedNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses two key behaviors ('deduped', 'grouped by feed') but with no annotations, it omits other important aspects like read-only nature, time range interpretation, and potential limits on output size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the lack of output schema, the description covers the essential context. However, it could mention output format or behavior when no items exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema documentation coverage is 0%, and the description does not elaborate on the two parameters (since_hours, max_items_per_feed) beyond their names, failing to add value beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies a unique action ('Generate'), a distinct resource ('deduped digest of recent items'), and scope ('across all subscribed feeds, grouped by feed'). This distinguishes it from sibling tools like fetch_feed and list_feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description implies a global usage scenario, it lacks explicit guidance on when to prefer this tool over siblings like fetch_feed, and does not mention any restrictions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_feedsA

List all subscribed RSS/Atom feeds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description only says 'List all subscribed RSS/Atom feeds,' disclosing minimal behavior (listing). It does not mention output format, pagination, or ordering, but for a list tool, listing is the core behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff. Appropriate length for a simple tool, though could potentially add a bit more detail without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with no output schema, the description is adequate. It fully captures the tool's function, though missing details like return type are acceptable for such a simple operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params), so schema coverage is 100% trivially. Baseline for 0 params is 4; description adds no parameter info because none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists all subscribed RSS/Atom feeds, using a specific verb ('List') and resource. It effectively distinguishes from siblings: add_feed, fetch_feed, get_brief, remove_feed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing all feeds. While no explicit when-not-to-use is given, the purpose is straightforward and context is clear given sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_feedA

Unsubscribe from a feed by URL or label.

ParametersJSON Schema
NameRequiredDescriptionDefault
url_or_labelYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only states the action without disclosing behavioral traits like destructiveness, reversibility, or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded and contains no fluff. It efficiently conveys the purpose and parameter meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description covers the essential information for this low-complexity tool, though it omits error handling or success details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description clearly explains that the parameter accepts either a URL or a label, adding value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Unsubscribe' and the resource 'feed', and specifies the method 'by URL or label'. The verb 'remove' distinguishes it from siblings like 'add_feed', 'fetch_feed', 'get_brief', and 'list_feeds'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to unsubscribe from a feed, but provides no explicit guidance on when to use it vs alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedadd_feed
    • First observedfetch_feed
    • First observedget_brief
    • First observedlist_feeds
    • First observedremove_feed

TDQS

A3.9/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent RSS feed management with AI-powered semantic search, advanced filtering, and a comprehensive reading workflow. Supports OPML parsing, article organization with status tracking, and token-efficient browsing of large feed collections.
    16
    5
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to fetch, parse, and manage RSS/Atom feeds through the Model Context Protocol. It supports feed registration and retrieval, allowing users to access article summaries and full content from multiple sources via natural language.
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeffereychown-Max/mcp-morning-brief'

If you have feedback or need assistance with the MCP directory API, please join our Discord server