Skip to main content
Glama
rakeshgangwar

FreshRSS MCP Server

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a clear, distinct purpose: listing feeds, retrieving items by different criteria, and toggling read state. The three retrieval tools (get_unread, get_feed_items, get_items) are differentiated by their filters, and the mark operations are unambiguous.

    Naming Consistency4/5

    Most tools follow a get_<resource> or mark_<resource>_<state> pattern, but list_feeds uses 'list' instead of 'get', and get_unread omits the noun 'items'. These minor deviations are still readable and predictable.

    Tool Count5/5

    Eight tools is well-scoped for an RSS reader, covering the core read and mark operations without excessive granularity. Each tool earns its place in the set.

    Completeness3/5

    The read and mark workflows are well covered, but the server lacks feed management operations (add, update, delete feeds) and has no search capability. These gaps limit the toolset to a read-only consumer rather than a full FreshRSS manager.

  • Average 3.3/5 across 8 of 8 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It merely states the action without revealing whether the operation is read-only, what it returns, any side effects, or required permissions. This is a significant gap for a retrieval tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely short ('Get feed groups'), which is under-specified rather than concise. It leaves out essential information and does not earn its place as a helpful description beyond naming the action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite the tool's simplicity (no params, no output schema), the description is incomplete. It does not explain what a feed group is, what the response looks like, or how it relates to sibling tools, leaving the agent with insufficient context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so schema coverage is 100% vacuously. Per the baseline for 0 params, a score of 4 is appropriate. The description does not need to add parameter details since none exist.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Get feed groups' uses a clear verb ('get') and resource ('feed groups'), indicating the action of retrieving feed groups. However, it does not distinguish itself from sibling tools like 'list_feeds', and does not explain what feed groups are in relation to feeds.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives such as 'list_feeds' or 'get_feed_items'. There is no context, prerequisites, or exclusions, leaving the agent without direction on tool selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must carry the full burden of behavioral disclosure. 'Get' implies a read-only operation, but the description doesn't explicitly state this, nor does it disclose whether the tool modifies read status, the return format, or any other behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded phrase with no wasted words. It efficiently communicates the core action and target, though it might be under-specified for context. However, brevity alone is not penalized when the structure is clear.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool lacks an output schema, and sibling tools include get_items and get_feed_items, creating ambiguity about what 'unread items' refers to. The description doesn't clarify the scope, return format, or relationship to siblings, leaving significant gaps in completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the description doesn't need to explain parameter meanings. According to the rubric, a baseline of 4 applies when there are no parameters, and this description satisfies that baseline.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly identifies the action 'Get' and the resource 'unread items', establishing a basic purpose. However, it doesn't distinguish from siblings like get_items or get_feed_items, leaving ambiguity about the type of items being retrieved.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives such as get_items or get_feed_items. No contexts, exclusions, or conditions are mentioned, leaving the agent without direction for selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    There are no annotations, so the description carries full burden. It only states the action 'mark as unread' without disclosing idempotency, permissions, side effects, or return behavior—critical gaps for a mutating tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is one short sentence with zero wasted words. It is appropriately sized for the tool's simplicity and front-loads the core action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Even though the tool is simple with one well-described parameter and no output schema, the absence of annotations and lack of guidance about effects or prerequisites leaves the description minimally complete but with clear gaps in behavioral context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema fully covers the single parameter item_id with a clear description, and the tool description adds no additional semantic detail. Since schema coverage is 100%, baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'mark' and resource 'item' with the target state 'unread', clearly conveying the tool's function. It distinguishes from siblings by being the opposite of mark_item_read and targeting items rather than feeds, though it doesn't explicitly name alternatives.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives like mark_item_read or mark_feed_read. The description only states the action, leaving the selection context to the agent.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without detailing idempotency, side effects, failure modes, or reversibility. This is insufficient for an agent to understand the tool's full behavioral profile.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, direct sentence that is perfectly front-loaded and contains no filler. It earns its place by immediately conveying the tool's purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's low complexity, the description is minimal but lacks critical context such as differentiation from siblings and behavioral caveats. The absence of usage guidelines and behavioral transparency makes it incomplete for an AI agent deciding which tool to use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool description adds no information about the item_id parameter beyond what the input schema already provides, which has 100% coverage with a clear description. The baseline of 3 is appropriate since the schema fully documents the parameter.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action: 'Mark an item as read' – a specific verb ('mark') and resource ('item'). It distinguishes from siblings like mark_feed_read (feed vs item) and mark_item_unread (read vs unread) by its specificity.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives such as mark_item_unread or mark_feed_read. There is no mention of prerequisites, exclusions, or typical invocation scenarios. This is a complete lack of usage guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must convey behavioral context. It only restates the function name without disclosing details such as read-only nature, return format, pagination, or error handling. There is no added context beyond the basic action, so it fails to provide meaningful behavioral transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is concise and front-loaded. There is no verbiage or repetition; every word contributes to the meaning. It earns its place without wasting tokens.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple read tool with one parameter and no output schema, the description is minimally sufficient but lacks completeness. It does not explain what 'items' means, whether any filtering or sorting occurs, or what the response contains. Given the absence of annotations and output schema, a richer description would aid completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already documents the single parameter 'feed_id' as 'Feed ID' with high coverage (100%). The description's 'from a specific feed' reinforces this mapping but adds no new semantic detail beyond what the schema provides. Baseline 3 is appropriate given the full schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Get items') and the scope ('from a specific feed'), which distinguishes it from the sibling tool 'get_items' that likely retrieves items in a broader context. The verb and resource are specific, leaving no ambiguity about the tool's function.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'from a specific feed' implies the tool is intended when the user has a feed_id in mind, but it does not explicitly state when to prefer this over alternatives like 'get_items' or 'get_unread'. No exclusions or alternative recommendations are provided, so guidance is implied rather than explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It only states that it retrieves items, omitting any details about read-only behavior, handling of invalid IDs, pagination, or response structure. The term 'Get' hints at a safe operation, but the lack of elaboration leaves significant gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence of seven words, front-loaded with the key verb and object. It contains zero redundancy and efficiently communicates the core purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is a simple getter with one parameter and no output schema, so the description need not be long. However, it does not state what the response looks like or what happens when IDs are missing/invalid. It is minimally complete for the task but lacks edge-case detail.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already fully describes the only parameter (item_ids as array of strings), and the tool description adds no extra meaning beyond that. Since schema coverage is 100%, a baseline score of 3 is appropriate, but no additional semantic value is provided.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The verb 'Get' is specific, the resource 'items' is clear, and the qualifier 'by their IDs' distinguishes it from sibling tools like get_feed_items or list_feeds. This removes ambiguity about the tool's function.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'specific items by their IDs' implies the tool is for fetching items when you already know their IDs, which provides some context. However, it does not mention alternatives or explicitly state when not to use it, leaving the agent to infer the boundary.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full responsibility for disclosing behavior. It only states 'List all feed subscriptions,' which implies a read-only operation but does not mention return format, pagination, ordering, or side effects. This is minimally transparent for a listing tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, clear sentence with no superfluous words. It is perfectly concise and front-loaded, stating exactly what the tool does without any filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with no parameters, no annotations, and no output schema, the description is minimally viable. It lacks information about return fields, whether all feeds are returned at once, or any limits. The presence of sibling tools like get_feed_groups suggests more context could be useful, but the description is not grossly incomplete for a simple list operation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the schema is trivially 100% covered. The description does not need to explain parameter meaning, and the baseline for zero-parameter tools is 4. No additional information is required.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'List all feed subscriptions' uses a specific verb ('list') and identifies the exact resource ('feed subscriptions'). It clearly distinguishes from siblings like get_feed_items or get_unread, which focus on items or unread counts.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives. There is no mention of what differentiates it from get_feed_groups or get_items, and no exclusions or context. The implied usage is simply to list feeds, but no explicit direction is given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must convey behavioral characteristics. It indicates a write operation ('mark') but does not disclose potential side effects, reversibility, or required permissions. This leaves the agent without information on mutation impact.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence that directly states the action and scope. Every word contributes, with no redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a one-parameter mutation with no output schema, the description covers the core behavior and target. It would benefit from mentioning idempotency or return value, but the simple scope makes it adequately complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema only provides 'Feed ID to mark as read' with a generic description. The tool description adds the key insight that the operation affects 'all items' within the feed, clarifying the scope that the schema alone does not fully convey.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Mark' with the resource 'all items in a feed' and the outcome 'as read'. This distinguishes it from sibling mark_item_read, which targets individual items.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is for bulk-marking a feed's items, contrasting with item-level tools among siblings. However, it does not explicitly name alternatives or provide exclusions, so it's clear but not fully explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

freshrss-mcp-server MCP server

Copy to your README.md:

Score Badge

freshrss-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

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/rakeshgangwar/freshrss-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server