freshrss-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRESHRSS_URL | Yes | Root URL of the instance, e.g. https://rss.example.com. The API path /api/greader.php is appended automatically. | |
| FRESHRSS_USER | Yes | FreshRSS user name. | |
| FRESHRSS_READ_ONLY | No | true registers only the read tools. | false |
| FRESHRSS_API_PASSWORD | Yes | The API password from the profile page, not the web login password. | |
| FRESHRSS_INSECURE_TLS | No | true accepts self-signed certificates for this connection only. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_user_infoA | Returns the FreshRSS account the server is authenticated as. Useful as a connection and credential check before anything else. |
| list_feedsA | Lists every subscribed feed with its category and unread count. The numeric feedId is what all other tools take as feed_id. Start here to find out what is subscribed before listing articles. |
| get_unread_countsA | Returns how many unread articles are waiting, in total and per feed and category, sorted by count. Only entries with unread articles are listed. |
| list_articlesA | Lists articles from a feed, category, label or built-in stream, newest first. Returns short plain-text excerpts by default; set include_content=true for the article text, or fetch single articles with get_articles. FreshRSS has no full-text search over its API, so there is no way to query by keyword — narrow the result with feed_id/category and since/until instead and filter the returned articles yourself. |
| get_articlesA | Fetches the full text of specific articles by id, as plain text. At most 20 ids per call. |
| list_article_idsA | Lists only the ids of matching articles — the cheap way to collect a set for mark_articles. Same selectors and filters as list_articles. |
| list_categoriesA | Lists the categories (folders that hold feeds) and the user labels (tags that are attached to individual articles), each with its unread count. Both are addressed by name in the other tools. |
| export_opmlA | Exports all subscriptions as an OPML document — the portable backup format for feed readers. For a readable overview of the subscriptions use list_feeds instead. |
| subscribe_feedA | Subscribes to a feed. The URL may point at the feed itself or at a website — FreshRSS discovers the feed and then downloads it, so this call can take a while. A category that does not exist yet is created. |
| update_feedA | Renames a feed and/or moves it to another category. A category that does not exist yet is created. Fields that are not given stay unchanged. |
| unsubscribe_feedA | Deletes a feed together with all of its stored articles, read state and stars. Two-step: the first call returns a confirmation token, the second call with that token performs the deletion. This cannot be undone — re-subscribing starts from whatever the feed currently offers. |
| mark_articlesA | Sets the read state, the star and user labels of specific articles. All changes are reversible by calling this tool again with the opposite value. At most 100 articles per call; every given change is applied to all of them. |
| mark_all_as_readA | Marks every article of a feed, category, label or built-in stream as read. Two-step: the first call returns a confirmation token, the second call with that token performs the change. Which articles were unread before cannot be recovered afterwards. |
| rename_category_or_labelA | Renames a category (folder) or a user label. FreshRSS resolves the name against its categories first and falls back to labels, so one tool covers both. Feeds and articles keep their assignment. |
| delete_category_or_labelA | Deletes a category (its feeds move to the default category, no articles are lost) or a user label (it is detached from every article). FreshRSS matches categories first, so a category and a label of the same name cannot be told apart here. Two-step: the first call returns a confirmation token, the second call with that token performs the deletion. |
| import_opmlA | Subscribes to every feed in an OPML document, creating the categories it names, and then refreshes all feeds — which can take minutes on a large file. There is no bulk undo; every feed would have to be removed individually. Two-step: the first call returns a confirmation token, the second call with that token performs the import. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ni-c/freshrss-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server