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: miniflux-33description: 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---5
6# Miniflux
7
8## What it does
9
10Provides access to a Miniflux RSS reader instance through 13 read tools
11and 10 write tools. Agents can browse feeds, search entries by status
12or date, read specific articles, check categories, and (if not in read-only
13mode) create/update/delete feeds and categories, import OPML, mark entries
14as read, and toggle bookmarks.
15
16## Inputs needed
17
18- For listing entries: status, date range, starred, pagination (all optional)
19- For feed-specific queries: feed ID
20- For single items: entry ID, feed ID, or user ID
21- For discovery: a URL to scan for feeds
22- For creating categories: a title
23- For updating categories: category ID and new title
24- For deleting categories: category ID
25- For subscribing to feeds: a feed URL and category ID
26- For updating feeds: feed ID, plus optional title, category_id, feed_url, site_url, user_agent
27- For deleting feeds: feed ID
28- For OPML import: an OPML XML string
29- For writes: entry IDs + status, or entry ID for bookmark toggle
30
31## Prerequisites
32
33### `openclaw-miniflux-mcp` binary
34
35Download the latest binary for your platform from
36[GitHub Releases](https://github.com/sinhong2011/openclaw-skill-miniflux/releases):
37
38| 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` |
44
45Or install via Cargo:
46
47```bash
48cargo install openclaw-miniflux-mcp
49```
50
51### MCP server configuration
52
53Add the MCP server to your client configuration:
54
55**With API token (recommended):**
56
57```json
58{
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```
71
72**With username/password:**
73
74```json
75{
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```
89
90**Read-only mode** (disables write tools):
91
92```json
93{
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```
106
107The user will need to:
1081. Replace the binary path with wherever they downloaded/installed it
1092. Replace `MINIFLUX_URL` with their Miniflux instance URL
1103. Get an API token from Miniflux: **Settings > API Keys > Create a new API key**
1114. Restart their MCP client after saving
112
113## Workflow
114
115### Browsing feeds
116
1171. Call `miniflux_get_feeds` to see all subscriptions
1182. Call `miniflux_get_feed_entries` with a feed ID to see its entries
1193. Call `miniflux_get_entry` to read a specific article
120
121### Searching entries
122
123Call `miniflux_get_entries` with filters:
124- `status`: `"unread"`, `"read"`, or `"removed"`
125- `starred`: `true` for bookmarked entries
126- `after` / `before`: Unix timestamps for date ranges
127- `limit`: Number of results (default varies, recommend 20)
128- `order`: `"published_at"` and `direction`: `"desc"` for newest first
129
130### Triaging unread articles
131
1321. 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`
136
137### Adding new feeds
138
1391. Call `miniflux_discover_subscription` with a website URL to find available feeds
1402. Present discovered feeds to the user
1413. If needed, call `miniflux_create_category` to create a new category
1424. Call `miniflux_create_feed` with the feed URL and category ID to subscribe
143
144### Managing feeds
145
146- **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 unsubscribe
148- **Refresh:** `miniflux_refresh_feed` with feed ID to fetch new entries now
149
150### Managing categories
151
152- **List:** `miniflux_get_categories` to see all categories
153- **Create:** `miniflux_create_category` with a title
154- **Rename:** `miniflux_update_category` with category ID and new title
155- **Delete:** `miniflux_delete_category` with category ID (feeds move to default category)
156
157### Importing/Exporting
158
159- **Export:** `miniflux_export_opml` to get all feeds as OPML XML
160- **Import:** `miniflux_import_opml` with an OPML XML string to bulk-add feeds
161
162## Guardrails
163
164- Default to small page sizes (limit=20) to avoid overwhelming responses
165- On 401/403 errors, tell the user to check their API token or credentials
166- On connection errors, tell the user to verify their MINIFLUX_URL
167- Confirm with the user before marking large batches of entries as read
168- In read-only mode, explain the limitation clearly when a write is attempted
169- When listing returns empty results, suggest checking filters or confirming the instance has data