Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a distinct purpose targeting specific resources and actions in the tt-rss RSS reader domain, such as managing feeds (subscribe_feed, unsubscribe_feed), handling articles (get_article, update_article), and generating reports (generate_daily_report). No tools appear to overlap in functionality, making it clear for an agent to select the right one.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case, such as get_article, set_article_label, and generate_daily_report. This uniformity enhances readability and predictability across the tool set.

    Tool Count5/5

    With 15 tools, the server is well-scoped for managing an RSS reader, covering essential operations like feed management, article retrieval, labeling, and reporting. Each tool serves a clear purpose without bloat or redundancy.

    Completeness5/5

    The tool set provides comprehensive coverage for the tt-rss domain, including CRUD-like operations for feeds and articles, status updates, labeling, search, and reporting. There are no obvious gaps; agents can perform full lifecycle management of RSS content.

  • Average 3.1/5 across 15 of 15 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 only mentions search_mode options without explaining critical behaviors like pagination, rate limits, authentication requirements, error handling, or what happens when no results are found. For a search tool with 5 parameters, this leaves significant gaps in understanding how the tool behaves in practice.

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

    Conciseness3/5

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

    The description is brief but could be better structured. The first sentence clearly states the purpose, but the second sentence is a parenthetical list of search_mode options that might be better integrated. While concise, it doesn't optimally front-load the most critical information about tool behavior.

    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?

    For a search tool with 5 parameters and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., article metadata, full text, relevance scoring), how results are ordered, or whether there are limitations like maximum search terms. Without annotations or output schema, users lack crucial information about the tool's operation and results.

    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?

    Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by listing search_mode enum values with Chinese translations, but doesn't provide additional semantic context beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

    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 states the tool's purpose: '在文章中搜索关键词' (search for keywords in articles). It specifies the verb (搜索/search) and resource (文章/articles), making the intent unambiguous. However, it doesn't explicitly differentiate this tool from potential siblings like 'get_headlines' or 'get_article', which might also retrieve article content.

    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. It lists search_mode options but doesn't explain scenarios where one would choose this tool over other article-related tools like 'get_headlines' or 'get_article'. There's no mention of prerequisites, context, or exclusions for usage.

    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 full burden but offers minimal behavioral insight. It mentions the 'mode' parameter for time ranges but doesn't disclose critical traits like whether this action is reversible, if it requires specific permissions, or how it handles errors. This is inadequate for a mutation tool.

    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 brief and front-loaded with the main purpose, followed by a concise note on the 'mode' parameter. However, the second sentence could be integrated more smoothly, and it lacks structural elements like bullet points for clarity.

    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?

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after marking articles as read (e.g., success response, error cases), or address potential side effects like updating unread counts, which sibling tools like 'get_unread_count' might rely on.

    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?

    Schema description coverage is 100%, so the schema already documents all parameters well. The description adds minimal value by listing the 'mode' enum values, but doesn't provide additional context like default behavior or interaction between parameters beyond what the schema states.

    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 states the action ('mark as read') and target ('all articles in a feed or category'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_article' which might also affect article read status, leaving room for ambiguity.

    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. For example, it doesn't mention whether this is for bulk operations compared to 'update_article' for individual articles, or if there are prerequisites like authentication needs.

    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 full burden for behavioral disclosure. It mentions the default behavior (fetches unread articles) and that time range can be specified, but doesn't describe important traits like whether this is a read-only operation, what the output format looks like (grouped by category/feed), potential rate limits, or any side effects. For a tool with 4 parameters and no annotations, this leaves significant gaps in understanding how it behaves.

    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 appropriately concise with two sentences that efficiently convey the core functionality. The first sentence states the main purpose, the second adds key behavioral details. No wasted words or redundant information. However, it could be slightly more front-loaded with the most critical information.

    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 complexity (4 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain the output format (how articles are grouped by category/feed), doesn't mention whether this is a read-only operation, and provides minimal guidance on when to use it versus sibling tools. For a report generation tool with multiple parameters, more contextual information would be helpful for an AI agent.

    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?

    Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds minimal value beyond the schema: it implies time range filtering ('可指定时间范围' - time range can be specified) which relates to the 'hours' parameter, and mentions default unread article fetching which relates to 'view_mode'. However, it doesn't provide additional semantic context beyond what's already in the parameter descriptions.

    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 states the tool's purpose: '生成日报:汇总近期文章,按分类和订阅源分组输出' (Generate daily report: summarize recent articles, grouped by category and feed). It specifies the verb ('生成' - generate) and resource ('日报' - daily report) with details about grouping. However, it doesn't explicitly distinguish this from sibling tools like 'search_articles' or 'get_headlines' which might also retrieve articles.

    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 minimal usage guidance: '默认获取未读文章,可指定时间范围' (By default fetches unread articles, time range can be specified). It mentions the default behavior but doesn't explain when to use this tool versus alternatives like 'search_articles' for specific queries or 'get_headlines' for simpler listings. No explicit when-not-to-use guidance or comparison with siblings is provided.

    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 states the action (set/remove labels) but lacks critical details: whether this is a mutation (implied but not explicit), permission requirements, rate limits, or what happens on success/failure. This is inadequate for a tool that modifies data.

    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, efficient sentence in Chinese that directly states the tool's function without any fluff. It's appropriately sized and front-loaded, making it easy to parse quickly.

    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?

    For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain the return value, error conditions, or behavioral nuances (e.g., idempotency). Given the complexity of modifying article labels, more context is needed for safe and effective 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?

    Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain format constraints or relationships between parameters), meeting the baseline for high coverage.

    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 states the verb ('设置或移除' - set or remove) and resource ('标签' - label) for articles, making the purpose understandable. However, it doesn't differentiate this tool from potential alternatives like 'update_article' which might also handle labels, so it doesn't reach the highest score.

    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. It doesn't mention prerequisites (e.g., needing to get labels first), nor does it clarify if this is for bulk operations or how it relates to siblings like 'update_article' or 'get_labels'.

    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. While '创建' (create) implies a write operation, the description doesn't disclose important behavioral traits like required permissions, whether the operation is idempotent, what happens if the article already exists, or any rate limits. It provides minimal behavioral context beyond the basic action.

    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, efficient sentence that states the tool's purpose without any wasted words. It's appropriately sized for a tool with clear parameters and no complex behavioral nuances to explain.

    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?

    For a write operation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after creation (success/failure responses, return values), doesn't mention any constraints or side effects, and provides minimal behavioral context. The description should do more to compensate for the lack of structured metadata.

    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?

    With 100% schema description coverage, the input schema already documents all three parameters (title, url, content) with Chinese descriptions. The tool description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for high schema coverage without adding value.

    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 states the action ('创建一篇文章' - create an article) and the target resource ('到已发布 (Published) 源中' - to the Published source), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential sibling tools like 'update_article' or 'get_article' that might also work with articles.

    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. It doesn't mention prerequisites, when-not-to-use scenarios, or differentiate from sibling tools like 'update_article' or 'search_articles' that might also handle article-related operations.

    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 carries the full burden of behavioral disclosure. It states the action ('subscribe') but doesn't explain what happens after subscription (e.g., whether feeds are fetched immediately, if errors occur for invalid URLs, or if it returns a confirmation). For a mutation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence in Chinese ('订阅新的 RSS 源'), which directly conveys the core purpose without any wasted words. It's front-loaded and appropriately sized for the tool's function.

    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 has no annotations, no output schema, and involves mutation (subscription), the description is incomplete. It doesn't cover behavioral aspects like error handling, return values, or side effects (e.g., how the feed integrates with other tools like 'get_feeds'). For a 4-parameter tool with this complexity, more context is needed.

    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?

    Schema description coverage is 100%, so the schema fully documents all parameters (feed_url, category_id, login, password). The description adds no additional meaning beyond the schema, such as explaining parameter interactions (e.g., login/password are only needed for authenticated feeds) or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

    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 states the action ('订阅' meaning 'subscribe') and the resource ('新的 RSS 源' meaning 'new RSS feed'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'unsubscribe_feed' or 'get_feeds', but the verb 'subscribe' versus 'unsubscribe' or 'get' provides inherent differentiation.

    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 like 'get_feeds' (to list existing feeds) or 'unsubscribe_feed' (to remove feeds). It also doesn't mention prerequisites, such as needing an existing feed URL or authentication details for protected feeds, leaving usage context unclear.

    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 carries the full burden of behavioral disclosure. It states the action ('取消订阅') but doesn't describe effects (e.g., whether it's reversible, if it requires specific permissions, or what happens to associated data like articles). For a mutation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence in Chinese that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

    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 complexity as a mutation operation, lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values, which are crucial for an agent to use it correctly.

    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 description coverage is 100%, with the single parameter 'feed_id' documented as '要取消订阅的源 ID' (ID of the feed to unsubscribe). The description doesn't add any meaning beyond this, such as format examples or constraints, so it meets the baseline for high schema coverage.

    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 states the action ('取消订阅' meaning 'unsubscribe') and the resource ('指定的 RSS 源' meaning 'specified RSS feed'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'subscribe_feed' or 'get_feeds', but the verb clearly indicates a write operation versus read operations.

    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. It doesn't mention prerequisites (e.g., needing an existing subscription), exclusions, or comparisons to sibling tools like 'subscribe_feed' or 'get_feeds', leaving usage context 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?

    No annotations are provided, so the description carries full burden. It describes the action ('更新文章状态') and parameter meanings, but lacks behavioral traits like permissions needed, whether changes are reversible, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap in 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 extremely concise and front-loaded, with two sentences that directly explain the tool's purpose and parameter meanings. Every sentence earns its place by providing essential information without waste, making it highly efficient in structure.

    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 no annotations and no output schema, the description is incomplete for a mutation tool. It covers basic purpose and parameters but lacks behavioral context, error handling, or return values. For a tool with 4 parameters and potential side effects, more completeness is needed to guide effective 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?

    Schema description coverage is 100%, providing detailed parameter descriptions. The description adds minimal value by listing field and mode mappings (e.g., 'field: 0=星标'), which are already covered in the schema. It doesn't add syntax, format, or usage nuances beyond the schema, so 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 clearly states the verb ('更新' meaning 'update') and resource ('文章状态' meaning 'article status'), specifying it's for updating article status. It distinguishes from siblings like get_article (read) or set_article_label (label-specific), but doesn't explicitly contrast with all siblings. The purpose is specific but lacks full sibling differentiation.

    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. It doesn't mention prerequisites, context, or exclusions, such as when to use set_article_label instead for labels or share_to_published for publishing. Usage is implied only through parameter descriptions, with no explicit when/when-not statements.

    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 mentions some filtering capabilities (feed_id special values, view_mode) but doesn't describe important behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior beyond skip/limit, or what happens with invalid parameters. The description adds some context but leaves significant gaps for a tool with 10 parameters.

    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 appropriately concise with two sentences that directly address the tool's functionality. The first sentence states the core purpose, and the second provides key parameter context. There's no wasted verbiage, though it could be slightly better structured with clearer separation of concepts.

    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?

    For a tool with 10 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain the return format, error conditions, or how parameters interact (e.g., what happens when feed_id and view_mode conflict). While it mentions some filtering capabilities, it doesn't provide enough context for an agent to understand the full behavioral scope of this list-retrieval operation.

    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 description adds minimal parameter semantics beyond what the schema provides. It mentions special feed_id values (-4 through 0) which are already documented in the schema's description field, and mentions view_mode filtering which is also in the schema. With 100% schema description coverage, the baseline is 3, and the description doesn't significantly enhance understanding of parameter meanings or interactions.

    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 states the tool's purpose as '获取文章标题列表' (get article headline list), which is a specific verb+resource combination. It distinguishes itself from siblings like get_article (which retrieves full content) and search_articles (which searches). However, it doesn't explicitly differentiate from get_feeds or get_categories, which might retrieve different types of lists.

    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 description provides some implied usage context by mentioning special feed_id values and view_mode filtering, suggesting this is for retrieving filtered article lists. However, it doesn't explicitly state when to use this tool versus alternatives like search_articles or get_article, nor does it mention prerequisites or exclusions.

    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 carries the full burden of behavioral disclosure. It states this is a read operation ('get'), implying it's non-destructive, but doesn't clarify permissions, rate limits, or response format. For a tool that likely returns system-level data, more context on what 'configuration information' entails and any access restrictions would be helpful.

    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, efficient sentence that directly states the tool's purpose with relevant examples ('守护进程状态、订阅数等'). It's front-loaded with the core action and resource, with no wasted words or redundancy.

    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?

    Given the tool has no parameters, no annotations, and no output schema, the description is minimally adequate. It specifies what information is retrieved but lacks details on the return format, error conditions, or behavioral traits. For a simple read-only tool with zero inputs, this is acceptable but leaves gaps in understanding the full context of use.

    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 0 parameters, and schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter semantics, so a baseline score of 4 is appropriate. It implicitly confirms no inputs are required by not mentioning any.

    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 states the tool's purpose: '获取 tt-rss 服务器配置信息 (守护进程状态、订阅数等)' translates to 'Get tt-rss server configuration information (daemon status, subscription count, etc.)'. This specifies the verb ('get') and resource ('tt-rss server configuration information') with examples of what information is included. It doesn't explicitly differentiate from siblings like 'get_feeds' or 'get_categories', but the resource type is distinct enough to imply differentiation.

    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. It doesn't mention prerequisites, timing, or context for usage. For example, it doesn't specify if this is for monitoring, troubleshooting, or general information retrieval, nor does it contrast with other 'get_' tools that retrieve specific data subsets.

    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 describes the basic read operation and the effect of the article_id parameter, but doesn't disclose important behavioral traits like whether this requires authentication, rate limits, error conditions, pagination, or what format the label list returns. For a tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

    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 appropriately concise with two sentences that each serve a clear purpose. The first sentence states the core function, and the second explains the optional parameter usage. There's no wasted text or redundancy. However, it could be slightly more structured by separating the core purpose from parameter guidance more explicitly.

    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?

    Given the tool's moderate complexity (1 optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter usage but lacks important contextual information about authentication requirements, return format, error handling, and how this tool relates to sibling operations. Without annotations or output schema, the description should do more to compensate for these gaps.

    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 description coverage is 100% (the single parameter has a clear description), so the baseline is 3. The description adds some value by explaining the semantic effect of the article_id parameter ('查看该文章是否有某标签' - check if the article has a certain label), which provides context beyond the schema's technical description. However, it doesn't add significant additional parameter semantics beyond what the schema already documents.

    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 states the tool's purpose: '获取所有已配置的标签列表' (get all configured labels list). It specifies the verb ('获取' - get) and resource ('标签列表' - labels list), making the basic function clear. However, it doesn't explicitly differentiate this from sibling tools like 'set_article_label' or explain how it differs from other list operations like 'get_categories' or 'get_feeds'.

    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 description provides some usage context by explaining when to use the optional parameter: '可传入 article_id 查看该文章是否有某标签' (can pass article_id to check if the article has a certain label). This implies usage for checking label assignments. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'set_article_label' or when not to use it, nor does it mention prerequisites or dependencies.

    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 carries the full burden of behavioral disclosure. It only states what the tool does ('获取当前未读文章总数') without explaining how it works—e.g., whether it counts across all feeds or specific categories, if it's cached or real-time, or what permissions are required. This leaves significant gaps in understanding its behavior.

    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: '获取当前未读文章总数'. It's front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool with no parameters. Every word earns its place by directly conveying the tool's function.

    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?

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states the purpose but lacks context on usage, behavior, or output format. For a read-only tool with no parameters, this might suffice, but it doesn't fully compensate for the absence of annotations or output schema, leaving some ambiguity.

    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 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is given as it adequately handles the lack of parameters without introducing confusion.

    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 states the tool's purpose: '获取当前未读文章总数' (Get the current total number of unread articles). It specifies the verb '获取' (get) and resource '未读文章总数' (total unread articles). However, it doesn't explicitly differentiate from siblings like 'get_article' or 'search_articles', which focus on individual articles or searches rather than aggregate 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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios like checking unread counts before fetching articles or how it relates to siblings such as 'get_article' or 'search_articles'. Without context, an agent might misuse it or overlook better options.

    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 full burden but provides minimal behavioral context. It mentions the tool retrieves '完整内容 (含正文)' (full content including body) and supports multiple IDs, but doesn't disclose error handling, authentication needs, rate limits, pagination, or what happens when invalid IDs are provided. For a read operation with zero annotation coverage, this is insufficient.

    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, efficient sentence that front-loads the core purpose and includes the key capability (multiple ID support). Every word earns its place with zero redundancy or unnecessary elaboration.

    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 well-documented parameter and no output schema, the description is minimally adequate. However, it lacks details about return format (e.g., structured data vs. raw text), error responses, or any behavioral nuances that would help an agent use it correctly. The absence of annotations increases the need for more 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?

    Schema description coverage is 100%, so the schema already fully documents the single parameter 'article_id' with its format and multi-ID support. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high schema coverage.

    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 states the verb ('获取' meaning 'get') and resource ('文章' meaning 'articles'), specifying it retrieves full content including body text. It distinguishes from siblings like 'get_headlines' (likely summaries) and 'search_articles' (search-based retrieval), though it doesn't explicitly name these alternatives.

    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 description implies usage when full article content is needed (vs. headlines or summaries), and mentions support for multiple IDs via comma separation. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_articles' or 'get_headlines', nor does it mention any prerequisites or exclusions.

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

  • Behavior3/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 adds some context by mentioning the optional filtering for categories with unread articles, but does not cover other behavioral aspects such as authentication needs, rate limits, error handling, or the format of the returned data. This leaves gaps in understanding how the tool behaves beyond its basic function.

    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 extremely concise and front-loaded, consisting of a single sentence that efficiently conveys the tool's purpose and key optional feature. Every word earns its place, with no redundant or unnecessary information, making it easy for an AI agent to parse quickly.

    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?

    Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is somewhat complete but has gaps. It covers the purpose and hints at one parameter's use, but lacks details on behavioral traits, output format, and broader context. This is adequate for a read-only list tool but could be more informative to fully guide an agent.

    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?

    Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value by implying the 'unread_only' parameter's functionality ('可选只返回有未读文章的分类' meaning 'optionally return only categories with unread articles'), but does not provide additional semantics beyond what the schema offers. This meets the baseline for high 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 tool's purpose with a specific verb ('获取' meaning 'get') and resource ('分类列表' meaning 'category list'), and explicitly distinguishes it from siblings by mentioning '未读数' (unread counts) which no other tool in the sibling list addresses. It provides a complete picture of what the tool does.

    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 provides clear context on when to use this tool by specifying '获取 tt-rss 的分类列表,包含各分类的未读数' (get tt-rss category list including unread counts for each category), which helps differentiate it from other list-related tools like get_feeds or get_headlines. However, it does not explicitly state when not to use it or name specific alternatives, which prevents a perfect score.

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

  • Behavior3/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 adds useful context such as pagination support and special category IDs, which are behavioral traits not covered elsewhere. However, it lacks details on permissions, rate limits, error handling, or response format, leaving gaps for a tool with 5 parameters and no output schema.

    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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by key features (filtering, pagination) and critical details (special IDs). Every sentence earns its place with no redundant or vague information, making it efficient and easy to parse.

    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?

    Given the tool's complexity (5 parameters, no output schema, no annotations), the description is somewhat complete but has gaps. It covers purpose, filtering, and pagination well, but lacks details on authentication, error cases, or return values, which are important for a read operation in a feed management context. It's adequate but not fully comprehensive.

    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 schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds value by explaining special category IDs (-1 to -4, 0) and implying pagination (via '支持分页'), which provides semantic context beyond the schema's technical descriptions. Since no parameters are required, this compensates well.

    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 ('获取' meaning 'get') and resource ('tt-rss 的订阅源列表' meaning 'tt-rss feed list'), making the purpose specific. It distinguishes from siblings by focusing on feed retrieval rather than articles (get_article, get_headlines), categories (get_categories), or feed management (subscribe_feed, unsubscribe_feed).

    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 provides clear context for usage by mentioning filtering by category and pagination support, which helps understand when to apply these parameters. However, it does not explicitly state when to use this tool versus alternatives like get_categories (for category lists) or get_headlines (for article lists), nor does it mention any exclusions or prerequisites.

    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

ttrss-mcp MCP server

Copy to your README.md:

Score Badge

ttrss-mcp 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/aooiuu/ttrss-mcp'

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