Miniflux
What it does
Provides access to a Miniflux RSS reader instance through 13 read tools
and 10 write tools. Agents can browse feeds, search entries by status
or date, read specific articles, check categories, and (if not in read-only
mode) create/update/delete feeds and categories, import OPML, mark entries
as read, and toggle bookmarks.
Inputs needed
- For listing entries: status, date range, starred, pagination (all optional)
- For feed-specific queries: feed ID
- For single items: entry ID, feed ID, or user ID
- For discovery: a URL to scan for feeds
- For creating categories: a title
- For updating categories: category ID and new title
- For deleting categories: category ID
- For subscribing to feeds: a feed URL and category ID
- For updating feeds: feed ID, plus optional title, category_id, feed_url, site_url, user_agent
- For deleting feeds: feed ID
- For OPML import: an OPML XML string
- For writes: entry IDs + status, or entry ID for bookmark toggle
Prerequisites
openclaw-miniflux-mcp binary
Download the latest binary for your platform from
GitHub Releases:
| Platform |
Binary |
| Linux x86_64 |
openclaw-miniflux-mcp-x86_64-unknown-linux-gnu |
| Linux ARM64 |
openclaw-miniflux-mcp-aarch64-unknown-linux-gnu |
| macOS x86_64 |
openclaw-miniflux-mcp-x86_64-apple-darwin |
| macOS ARM64 |
openclaw-miniflux-mcp-aarch64-apple-darwin |
Or install via Cargo:
cargo install openclaw-miniflux-mcp
MCP server configuration
Add the MCP server to your client configuration:
With API token (recommended):
{
"mcpServers": {
"miniflux": {
"command": "/path/to/openclaw-miniflux-mcp",
"args": [],
"env": {
"MINIFLUX_URL": "http://localhost:8080",
"MINIFLUX_API_TOKEN": "<your-api-token>"
}
}
}
}
With username/password:
{
"mcpServers": {
"miniflux": {
"command": "/path/to/openclaw-miniflux-mcp",
"args": [],
"env": {
"MINIFLUX_URL": "http://localhost:8080",
"MINIFLUX_USERNAME": "<username>",
"MINIFLUX_PASSWORD": "<password>"
}
}
}
}
Read-only mode (disables write tools):
{
"mcpServers": {
"miniflux": {
"command": "/path/to/openclaw-miniflux-mcp",
"args": ["--read-only"],
"env": {
"MINIFLUX_URL": "http://localhost:8080",
"MINIFLUX_API_TOKEN": "<your-api-token>"
}
}
}
}
The user will need to:
- Replace the binary path with wherever they downloaded/installed it
- Replace
MINIFLUX_URL with their Miniflux instance URL
- Get an API token from Miniflux: Settings > API Keys > Create a new API key
- Restart their MCP client after saving
Workflow
Browsing feeds
- Call
miniflux_get_feeds to see all subscriptions
- Call
miniflux_get_feed_entries with a feed ID to see its entries
- Call
miniflux_get_entry to read a specific article
Searching entries
Call miniflux_get_entries with filters:
status: "unread", "read", or "removed"
starred: true for bookmarked entries
after / before: Unix timestamps for date ranges
limit: Number of results (default varies, recommend 20)
order: "published_at" and direction: "desc" for newest first
Triaging unread articles
- Call
miniflux_get_entries with status: "unread", limit: 20
- Read interesting entries with
miniflux_get_entry
- Mark reviewed entries as read:
miniflux_update_entry_status with status: "read"
- Bookmark important ones:
miniflux_toggle_bookmark
Adding new feeds
- Call
miniflux_discover_subscription with a website URL to find available feeds
- Present discovered feeds to the user
- If needed, call
miniflux_create_category to create a new category
- Call
miniflux_create_feed with the feed URL and category ID to subscribe
Managing feeds
- Update:
miniflux_update_feed with feed ID and any fields to change (title, category_id, feed_url, site_url, user_agent)
- Delete:
miniflux_delete_feed with feed ID to unsubscribe
- Refresh:
miniflux_refresh_feed with feed ID to fetch new entries now
Managing categories
- List:
miniflux_get_categories to see all categories
- Create:
miniflux_create_category with a title
- Rename:
miniflux_update_category with category ID and new title
- Delete:
miniflux_delete_category with category ID (feeds move to default category)
Importing/Exporting
- Export:
miniflux_export_opml to get all feeds as OPML XML
- Import:
miniflux_import_opml with an OPML XML string to bulk-add feeds
Guardrails
- Default to small page sizes (limit=20) to avoid overwhelming responses
- On 401/403 errors, tell the user to check their API token or credentials
- On connection errors, tell the user to verify their MINIFLUX_URL
- Confirm with the user before marking large batches of entries as read
- In read-only mode, explain the limitation clearly when a write is attempted
- When listing returns empty results, suggest checking filters or confirming the instance has data
1---2name: miniflux3description: Manage RSS feeds and entries on a Miniflux instance. Handles requests like "show my unread articles", "list my feeds", "rename this category", "unsubscribe from this feed", "import my OPML", "mark these entries as read", or "bookmark this article". Uses openclaw-miniflux-mcp for all operations.4---56# Miniflux78## What it does910Provides access to a Miniflux RSS reader instance through 13 read tools11and 10 write tools. Agents can browse feeds, search entries by status12or date, read specific articles, check categories, and (if not in read-only13mode) create/update/delete feeds and categories, import OPML, mark entries14as read, and toggle bookmarks.1516## Inputs needed1718- For listing entries: status, date range, starred, pagination (all optional)19- For feed-specific queries: feed ID20- For single items: entry ID, feed ID, or user ID21- For discovery: a URL to scan for feeds22- For creating categories: a title23- For updating categories: category ID and new title24- For deleting categories: category ID25- For subscribing to feeds: a feed URL and category ID26- For updating feeds: feed ID, plus optional title, category_id, feed_url, site_url, user_agent27- For deleting feeds: feed ID28- For OPML import: an OPML XML string29- For writes: entry IDs + status, or entry ID for bookmark toggle3031## Prerequisites3233### `openclaw-miniflux-mcp` binary3435Download the latest binary for your platform from36[GitHub Releases](https://github.com/sinhong2011/openclaw-skill-miniflux/releases):3738| Platform | Binary |39|----------|--------|40| Linux x86_64 | `openclaw-miniflux-mcp-x86_64-unknown-linux-gnu` |41| Linux ARM64 | `openclaw-miniflux-mcp-aarch64-unknown-linux-gnu` |42| macOS x86_64 | `openclaw-miniflux-mcp-x86_64-apple-darwin` |43| macOS ARM64 | `openclaw-miniflux-mcp-aarch64-apple-darwin` |4445Or install via Cargo:4647```bash48cargo install openclaw-miniflux-mcp49```5051### MCP server configuration5253Add the MCP server to your client configuration:5455**With API token (recommended):**5657```json58{59 "mcpServers": {60 "miniflux": {61 "command": "/path/to/openclaw-miniflux-mcp",62 "args": [],63 "env": {64 "MINIFLUX_URL": "http://localhost:8080",65 "MINIFLUX_API_TOKEN": "<your-api-token>"66 }67 }68 }69}70```7172**With username/password:**7374```json75{76 "mcpServers": {77 "miniflux": {78 "command": "/path/to/openclaw-miniflux-mcp",79 "args": [],80 "env": {81 "MINIFLUX_URL": "http://localhost:8080",82 "MINIFLUX_USERNAME": "<username>",83 "MINIFLUX_PASSWORD": "<password>"84 }85 }86 }87}88```8990**Read-only mode** (disables write tools):9192```json93{94 "mcpServers": {95 "miniflux": {96 "command": "/path/to/openclaw-miniflux-mcp",97 "args": ["--read-only"],98 "env": {99 "MINIFLUX_URL": "http://localhost:8080",100 "MINIFLUX_API_TOKEN": "<your-api-token>"101 }102 }103 }104}105```106107The user will need to:1081. Replace the binary path with wherever they downloaded/installed it1092. Replace `MINIFLUX_URL` with their Miniflux instance URL1103. Get an API token from Miniflux: **Settings > API Keys > Create a new API key**1114. Restart their MCP client after saving112113## Workflow114115### Browsing feeds1161171. Call `miniflux_get_feeds` to see all subscriptions1182. Call `miniflux_get_feed_entries` with a feed ID to see its entries1193. Call `miniflux_get_entry` to read a specific article120121### Searching entries122123Call `miniflux_get_entries` with filters:124- `status`: `"unread"`, `"read"`, or `"removed"`125- `starred`: `true` for bookmarked entries126- `after` / `before`: Unix timestamps for date ranges127- `limit`: Number of results (default varies, recommend 20)128- `order`: `"published_at"` and `direction`: `"desc"` for newest first129130### Triaging unread articles1311321. Call `miniflux_get_entries` with `status: "unread"`, `limit: 20`1332. Read interesting entries with `miniflux_get_entry`1343. Mark reviewed entries as read: `miniflux_update_entry_status` with `status: "read"`1354. Bookmark important ones: `miniflux_toggle_bookmark`136137### Adding new feeds1381391. Call `miniflux_discover_subscription` with a website URL to find available feeds1402. Present discovered feeds to the user1413. If needed, call `miniflux_create_category` to create a new category1424. Call `miniflux_create_feed` with the feed URL and category ID to subscribe143144### Managing feeds145146- **Update:** `miniflux_update_feed` with feed ID and any fields to change (title, category_id, feed_url, site_url, user_agent)147- **Delete:** `miniflux_delete_feed` with feed ID to unsubscribe148- **Refresh:** `miniflux_refresh_feed` with feed ID to fetch new entries now149150### Managing categories151152- **List:** `miniflux_get_categories` to see all categories153- **Create:** `miniflux_create_category` with a title154- **Rename:** `miniflux_update_category` with category ID and new title155- **Delete:** `miniflux_delete_category` with category ID (feeds move to default category)156157### Importing/Exporting158159- **Export:** `miniflux_export_opml` to get all feeds as OPML XML160- **Import:** `miniflux_import_opml` with an OPML XML string to bulk-add feeds161162## Guardrails163164- Default to small page sizes (limit=20) to avoid overwhelming responses165- On 401/403 errors, tell the user to check their API token or credentials166- On connection errors, tell the user to verify their MINIFLUX_URL167- Confirm with the user before marking large batches of entries as read168- In read-only mode, explain the limitation clearly when a write is attempted169- When listing returns empty results, suggest checking filters or confirming the instance has data