Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRESHRSS_URLYesRoot URL of the instance, e.g. https://rss.example.com. The API path /api/greader.php is appended automatically.
FRESHRSS_USERYesFreshRSS user name.
FRESHRSS_READ_ONLYNotrue registers only the read tools.false
FRESHRSS_API_PASSWORDYesThe API password from the profile page, not the web login password.
FRESHRSS_INSECURE_TLSNotrue 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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. Starring and labelling are reversible by calling this tool again with the opposite value. Marking as read is not, so read=true asks a person first; where the client cannot show a dialog, call once to receive a token and again with it. At most 100 articles per call; every given change is applied to all of them.

FreshRSS answers OK whether or not it recognised the ids, so the result of this tool cannot tell you the change landed. Use the ids exactly as list_article_ids returned them — not the long tag:google.com,... form — and confirm with get_unread_counts if it matters: the count is the only thing that moves.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.5/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlapping functionality. For example, 'list_articles' and 'get_articles' are differentiated by scope (list vs. full text), and 'mark_articles' vs 'mark_all_as_read' are distinct in granularity.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern (e.g., get_user_info, list_feeds, subscribe_feed, export_opml) with occasional modifiers (all_as_read, category_or_label) but remain uniform and predictable. No mixed conventions like camelCase or inconsistent verbs.

Tool Count4/5

With 16 tools, the set is slightly above the typical 3–15 range but each tool serves a necessary function for a feed reader, covering subscription management, article handling, and OPML operations. The count feels justified rather than bloated.

Completeness5/5

The tool surface covers the full lifecycle of feed management: reading (list/get), writing (subscribe/update/unsubscribe), marking read states, category operations, and OPML import/export. The absence of search is explicitly noted as an API limitation, and alternatives are provided, so no critical gaps exist.

Maintenance

ActivityActive
ResponsivenessResponsive