Skip to main content
Glama
MissionSquad

@missionsquad/mcp-rss

Official
by MissionSquad

MCP-RSS Server

A Model Context Protocol (MCP) server for fetching, parsing, and managing RSS feeds.

Features

  • Fetch and parse RSS/Atom feeds

  • In-memory caching with TTL

  • Batch fetching of multiple feeds

  • Monitor feeds for new items

  • Search content across multiple feeds

  • Extract and format feed content

  • OPML export of subscribed feeds

Related MCP server: simply-feed-mcp

Getting Started

  • Install: yarn add @missionsquad/mcp-rss or npm install @missionsquad/mcp-rss

Prerequisites

  • Node.js v20 or later

  • npm or yarn

Setup

  1. Install Dependencies:

    yarn
  2. Configure Environment:

    • Copy .env.example to .env.

    • Edit .env and set the necessary environment variables.

  3. Build the Project:

    yarn build
  4. Start the Server:

    yarn start

Available Tools

  • fetch_rss_feed: Fetches and parses a single RSS feed.

  • fetch_multiple_feeds: Fetches multiple RSS feeds in parallel or sequentially.

  • monitor_feed_updates: Checks for new items in a feed since a specific time.

  • search_feed_items: Searches for content across one or more RSS feeds.

  • extract_feed_content: Extracts and formats content from feed items. Supports json, markdown, html, and text formats.

  • get_feed_headlines: Gets a list of headlines from a feed. Supports json, markdown, html, and text formats.

Available Resources

  • rss://cache/{feedUrl}: Access cached feed data.

  • rss://opml/export: Export all monitored feeds in OPML format.

Configuration

Configure the server using environment variables defined in .env. See .env.example for all available options.


Try it on Mission Squad

You can test the mcp-rss server and other MCP servers on the Mission Squad platform. Mission Squad is an Agentic AI Platform that allows you to build, manage, and deploy cooperative agents that connect to any model, leverage private data, and automate complex tasks. Sign up for a free account to get started

Available Tools

6 tools
extract_feed_contentC

Extract and format feed content for different use cases

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format for the contenttext
includeMetadataNoIf 'true', include item metadata (date, author, etc) in outputfalse
urlYesThe RSS feed URL to extract content from

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'extract and format' but doesn't disclose behavioral traits such as whether it's a read-only operation, potential rate limits, authentication needs, or what happens if the URL is invalid. This leaves critical operational details unspecified for a tool that processes external feeds.

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?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. However, it could be more front-loaded with key details like the resource type (RSS feed) from the schema, but it's appropriately sized for its 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?

Given the tool's complexity (processing external feeds with formatting options), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'extract' entails, the output structure, or error handling, making it inadequate for an agent to use effectively without guessing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents parameters like 'url', 'format', and 'includeMetadata'. The description adds no additional meaning beyond the schema, such as examples or edge cases. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose3/5

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

The description states the tool 'Extract and format feed content' which provides a clear verb ('extract and format') and resource ('feed content'), but it's vague about what 'extract' entails compared to siblings like 'fetch_rss_feed' or 'get_feed_headlines'. It doesn't specify whether it extracts full articles, summaries, or specific fields, making it less distinct from alternatives.

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

Usage Guidelines2/5

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

The description mentions 'for different use cases', which implies context but doesn't specify when to use this tool versus siblings like 'fetch_multiple_feeds' or 'search_feed_items'. There's no explicit guidance on scenarios, prerequisites, or exclusions, leaving the agent with minimal direction on tool selection.

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

fetch_multiple_feedsA

Batch fetch multiple RSS feeds with success/error status for each

ParametersJSON Schema
NameRequiredDescriptionDefault
parallelNoIf 'true', fetch feeds in parallel; otherwise, fetch sequentiallytrue
urlsYesArray of RSS feed URLs to fetch

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses key behavioral traits: batch fetching capability and per-feed status reporting. However, it doesn't mention error handling details, rate limits, authentication requirements, or what constitutes 'success' versus 'error' status. The description adds value but leaves important behavioral aspects unspecified.

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, efficient sentence that front-loads the core functionality. Every word earns its place: 'batch' establishes scope, 'fetch multiple RSS feeds' states the action, and 'with success/error status for each' adds crucial behavioral context. No wasted words or redundant information.

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

Completeness3/5

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

For a batch operation tool with no annotations and no output schema, the description provides adequate functional context but lacks important details. It doesn't explain the return format (what does 'success/error status' look like?), error handling behavior, or performance implications of the parallel parameter. Given the complexity of batch operations, more completeness would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific semantics beyond what's in the schema. It mentions 'batch fetch' which aligns with the urls array parameter, but provides no additional syntax, format, or usage details for parameters.

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 purpose with specific verbs ('batch fetch') and resource ('multiple RSS feeds'), and distinguishes it from siblings by emphasizing batch processing and per-feed status reporting. It explicitly mentions 'success/error status for each' which differentiates it from single-feed tools like fetch_rss_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 context (batch processing multiple feeds with status tracking) but doesn't explicitly state when to use this versus alternatives like fetch_rss_feed (single feed) or get_feed_headlines (headlines only). It provides clear functional context but lacks explicit comparison guidance.

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

fetch_rss_feedB

Fetches and parses an RSS feed, returning structured data with feed info and items

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the RSS feed to fetch
useDescriptionAsContentNoIf 'true', use description field as content instead of content field

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose error handling (e.g., invalid URLs), rate limits, authentication needs, or what 'structured data' entails (format, fields). The mention of parsing hints at transformation but doesn't clarify output behavior.

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, efficient sentence with zero waste—it directly states the action, resource, and outcome. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness3/5

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

Given no annotations and no output schema, the description is incomplete for a tool that fetches and parses external data. It lacks details on error handling, output structure, and behavioral constraints. However, it does cover the core purpose adequately, making it minimally viable but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no parameter-specific semantics beyond what's in the schema, such as URL format examples or use-case details for 'useDescriptionAsContent'. Baseline 3 is appropriate as the schema does the heavy lifting.

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 specific action ('fetches and parses') and resource ('RSS feed'), and distinguishes from siblings by specifying it returns structured data with feed info and items. This differentiates it from tools like 'get_feed_headlines' (likely just headlines) or 'extract_feed_content' (likely content-focused).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'fetch_multiple_feeds' or 'search_feed_items'. It doesn't mention prerequisites, exclusions, or comparative contexts, leaving the agent to guess based on tool names alone.

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

get_feed_headlinesC

Gets a list of headlines from a feed, including title, summary, and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format for the headlinesjson
urlYesThe RSS feed URL to get headlines from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool 'Gets' data, implying a read-only operation, but does not disclose behavioral traits such as error handling, rate limits, authentication needs, or what happens with invalid URLs. For a tool with no annotation coverage, this leaves significant gaps.

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, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and data included.

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 the complexity (2 parameters, no annotations, no output schema), the description is incomplete. It lacks details on return values (e.g., structure of the list), error cases, or behavioral context, which are crucial for a tool with no structured output or annotation support.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('url' and 'format') with details like enum values and defaults. The description adds no additional meaning beyond what the schema provides, such as explaining feed URL formats or format implications, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('Gets') and resource ('list of headlines from a feed'), specifying what data is included ('title, summary, and URL'). It distinguishes from siblings like 'extract_feed_content' or 'fetch_multiple_feeds' by focusing on headlines only, but could be more explicit about the differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'fetch_rss_feed' or 'search_feed_items'. The description implies usage for retrieving headlines from a single feed URL, but lacks explicit when/when-not instructions or prerequisites.

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

monitor_feed_updatesC

Check for new items in a feed since a specific time or last check

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceYesTime reference for checking updates
urlYesThe RSS feed URL to monitor

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool checks for updates but lacks details on permissions, rate limits, error handling, or what constitutes 'new items' (e.g., format, pagination). This is inadequate for a tool with potential network or data implications.

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, efficient sentence that front-loads the core functionality without unnecessary words. Every part earns its place by specifying the action, resource, and key constraint.

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 the tool's complexity (involving network calls and temporal logic), no annotations, and no output schema, the description is incomplete. It doesn't address return values, error cases, or behavioral nuances, leaving significant gaps for agent understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the parameters. The description adds no additional semantic context beyond implying temporal filtering, which is already covered in the schema. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose with specific verbs ('Check for new items') and resource ('in a feed'), and specifies temporal scope ('since a specific time or last check'). It doesn't explicitly differentiate from sibling tools like 'fetch_rss_feed' or 'get_feed_headlines', which prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'fetch_rss_feed' or 'search_feed_items'. It mentions the temporal aspect but doesn't clarify use cases, exclusions, or prerequisites, leaving the agent without contextual direction.

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

search_feed_itemsC

Search for content across one or more RSS feeds

ParametersJSON Schema
NameRequiredDescriptionDefault
feedsYesRSS feed URLs to search across
queryYesSearch query string
searchInNoWhich fields to search inall

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool searches for content, but doesn't describe how results are returned (e.g., format, pagination, sorting), error handling, rate limits, or authentication needs. For a search tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 the complexity of a search operation with no annotations and no output schema, the description is incomplete. It doesn't explain what the search returns (e.g., items, metadata), how results are structured, or any behavioral aspects like performance or limitations, leaving key contextual gaps.

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

Parameters3/5

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

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description doesn't add any meaning beyond what's in the schema (e.g., it doesn't explain query syntax or feed URL validation). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Search for content') and the resource ('across one or more RSS feeds'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_feed_headlines' or 'fetch_multiple_feeds' which might also involve feed content retrieval, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_feed_headlines' or 'fetch_multiple_feeds'. It doesn't mention any prerequisites, exclusions, or specific contexts that would help an agent choose between similar tools, leaving the usage ambiguous.

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. 6 tool updatesv1.0.0
    • First observedextract_feed_content
    • First observedfetch_multiple_feeds
    • First observedfetch_rss_feed
    • First observedget_feed_headlines
    • First observedmonitor_feed_updates
    • First observedsearch_feed_items

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between 'fetch_rss_feed' and 'extract_feed_content' or 'get_feed_headlines', which could cause confusion. However, descriptions help clarify that 'fetch_rss_feed' provides full structured data, while others focus on specific aspects like headlines or formatted content.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as 'fetch_rss_feed', 'monitor_feed_updates', and 'search_feed_items'. This predictability makes it easy for agents to understand and use the tool set without naming confusion.

Tool Count5/5

With 6 tools, the server is well-scoped for RSS feed management, covering core operations like fetching, monitoring, searching, and extracting content. Each tool serves a clear purpose without being overly sparse or bloated, fitting typical use cases effectively.

Completeness4/5

The tool set covers most essential RSS operations, including fetching, monitoring, searching, and extracting content. A minor gap is the lack of subscription management or feed modification tools, but agents can still handle common workflows like reading and tracking feeds without significant issues.

Maintenance

ActivitySlowing
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
    A
    quality
    A
    maintenance
    An MCP server for managing and querying RSS/news feeds, enabling real-time fetching, searching, and retrieval of feed items.
    5
    25
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Secure MCP server for RSS/Atom feed reading with SQLite backend. Enables feed management, entry search, and OPML import/export.
    17
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Local MCP server for reading and searching RSS and Atom feeds, enabling AI assistants to fetch feed contents, search entries by keyword, and view feed metadata without any cloud intermediary.
    3
    MIT

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/MissionSquad/mcp-rss'

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