rss-reader-mcp
Provides tools for fetching RSS feed entries and extracting full article content as Markdown.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rss-reader-mcpfetch the latest 5 headlines from BBC News RSS feed"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RSS Reader MCP
An MCP (Model Context Protocol) server for RSS feed aggregation and article content extraction. You can use it to subscribe to RSS feeds and get article lists, or extract the full content of an article from a URL and format it as Markdown.
English | δΈζ
π Quick Start
You can use this MCP server in MCP-capable clients such as Claude Desktop and CherryStudio.
Claude Desktop
For Claude Desktop, add the following configuration under the "mcpServers" section in your claude_desktop_config.json file:
{
"mcpServers": {
"rss-reader": {
"command": "npx",
"args": [
"-y",
"rss-reader-mcp"
]
}
}
}Usage Examples
Basic RSS feed fetching
Can you fetch the latest 5 headlines from the BBC News RSS feed? URL: https://feeds.bbci.co.uk/news/rss.xml
Full article content extraction
Please extract the full content of this article and format it as Markdown: https://example.com/news/article-title
Related MCP server: rss-mcp
π§ Tools Reference
fetch_feed_entries
Fetch RSS entries from a specified URL
Parameters:
url(required string): RSS feed URLlimit(optional number): Maximum number of entries to return (default 10, max 100)
Returns: A JSON object containing feed metadata and a list of entries (including title, link, publication date, and summary)
fetch_article_content
Extract article content from a URL and format it as Markdown
Parameters:
url(required string): Article URL
Returns: A JSON object containing the title, Markdown content, source URL, and timestamp
βοΈ Transport & Environment Variables
This server supports two transport modes:
stdio (default): Communicates via standard input/output. Suitable for clients that run a local process, such as Claude Desktop.
httpStream: Communicates over HTTP streaming. Suitable for clients that support HTTP(S) transport or for containerized deployments.
Available environment variables:
TRANSPORT: Select the transport mode, either
stdio(default) orhttpStream.PORT: When
TRANSPORT=httpStream, the listening port (default8081).MCP_SERVER_HOST: When
TRANSPORT=httpStream, the listening address (defaultlocalhost). In Docker, set this to0.0.0.0to expose the port externally.
How to switch transport modes:
Using stdio (no extra setup, default):
Works with Claude Desktop via the
command + argsconfiguration (see example above).
Using httpStream:
Set the environment variable
TRANSPORT=httpStreamand specifyPORT(defaults to 8081 if not set).When running in a container, also set
MCP_SERVER_HOST=0.0.0.0and map the port.The Dockerfile in this repository already includes related environment variable settings.
Docker Deployment
You can also run this MCP server in a Docker container. First, build the image in the project root:
docker build -t rss-reader-mcp .Using CherryStudio as an example, the following configuration shows how to run this server over HTTP:
{
"mcpServers": {
"rss-reader-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-p",
"8081:8081",
"-e",
"PORT=8081",
"rss-reader-mcp"
]
}
}
}Some RSS Feeds for Testing
BBC News:
https://feeds.bbci.co.uk/news/rss.xmlTechCrunch:
https://techcrunch.com/feed/Hacker News:
https://hnrss.org/frontpageMIT Technology Review:
https://www.technologyreview.com/feed/
Available Tools
2 toolsfetch_article_contentARead-onlyIdempotentInspect
Fetch and extract article content from a URL, formatted as Markdown
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that output is Markdown formatted, which is beyond what annotations provide. No behavioral contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loaded with the key action 'Fetch and extract', and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, and comprehensive annotations), the description provides enough context: it specifies the action, resource, and output format. However, it could mention the return structure or error handling for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does not add significant meaning to the 'url' parameter beyond the schema's format: uri constraint. It only mentions 'from a URL', which is minimal additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Fetch and extract' with the resource 'article content' and specifies the output format 'Markdown'. It distinguishes itself from the sibling tool 'fetch_feed_entries', which likely fetches lists of entries rather than individual article content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for extracting article content from a URL but does not explicitly state when not to use it or provide guidance on choosing between this tool and the sibling 'fetch_feed_entries'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_feed_entriesCRead-onlyIdempotentInspect
Fetch RSS feed entries from a given URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds minimal behavioral context (fetching from URL), which is already implied by the input schema. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no fluff. It front-loads the key action and resource. Could be slightly improved with more detail, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should explain the return value (e.g., list of entries with fields). It does not. Annotations cover safety but not functional completeness. The sibling tool is named but no usage differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description hints at the 'url' parameter ('from a given URL') but does not explain the 'limit' parameter or its purpose (e.g., max number of entries). The description adds insufficient meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Fetch) and resource (RSS feed entries) with a source URL. It distinguishes from the sibling tool 'fetch_article_content' by focusing on feed entries rather than individual article content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. the sibling tool. Does not specify prerequisites or contexts where fetching feed entries is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: one fetches a list of feed entries, the other fetches the full content of a single article. There is no overlap.
Both tools use a consistent verb_noun pattern with 'fetch_' prefix, making them predictable and easy to understand.
With only two tools, the server feels very thin for an 'rss-reader' purpose. A typical reader would include tools for managing feeds, subscriptions, or browsing, making this count too low.
The tool set is severely incomplete. There are no tools for feed management (e.g., add, list, remove feeds), no search or filter capabilities, and no persistence. The server cannot function as a full RSS reader.
Maintenance
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
An MCP server that provides tools to discover and retrieve podcast episodes transcripts.
An MCP server that automatically collects feedback on your MCP server.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
An MCP server for the BlogCaster project.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA self-hosted RSS reader MCP server that manages RSS subscriptions and fetches live feed content, deployable on AWS.
- AlicenseBqualityDmaintenanceAn MCP server that provides RSS feed tools for Claude Desktop, enabling fetching and parsing RSS feeds with configurable feeds and blocklists.6MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides RSS feed management and LLM-powered article evaluation, enabling AI agents to filter and assess content value.MIT
- AlicenseAqualityAmaintenanceAn MCP server for managing and querying RSS/news feeds, enabling real-time fetching, searching, and retrieval of feed items.5251MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kwp-lab/rss-reader-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server