# rss-fetch
MCP server for fetching and reading RSS/Atom feeds.
## Install
### Homebrew
```bash
brew install ynishi/rss-fetch/rss-fetch-mcp
```
### Cargo
```bash
cargo install rss-fetch
```
### Shell (Linux/macOS)
```bash
## Setup
Add to your MCP client config (e.g. `~/.claude/settings.json`):
```json
{
"mcpServers": {
"rss-fetch": {
"command": "rss-fetch-mcp"
}
}
}
```
## Usage
### List articles from a feed
```
rss_fetch(action="list", url="https://example.com/feed.xml")
```
Returns a Markdown table:
| 1 | Article A | 2026-02-14 |
| 2 | Article B | 2026-02-13 |
### Read an article
```
rss_fetch(action="get", id=1)
```
Returns the article's text content.
## Library Usage
The core logic is available as a library:
```rust
use rss_fetch::{build_http_client, EntryStore, fetch_and_parse_feed, format_entries_as_markdown};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = build_http_client()?;
let (title, entries) = fetch_and_parse_feed(&client, "https://example.com/feed.xml").await?;
let store = EntryStore::new();
let entries = store.store_entries(entries).await?;
println!("{}", format_entries_as_markdown(&title, &entries));
Ok(())
}
```
## License
MIT