Public leaderboard

Public assessment

lionkiii/rss-feeds-mcp (rss-feeds-mcp)

rss-feeds-mcp · v2.0.0 · scanned

What changed in the harness

Selection accuracy 98→98, token cost up 16%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

24.3 / 30

24.3 out of 30
03Economics

20.0 / 20

20.0 out of 20
04Discoverability

14.7 / 20

14.7 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

8 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
list_categories
name_restates_behavior no_return_description
Return all available feed categories (seo, content, social, email, analytics, crm, news) that can be used to organize and filter RSS feeds, so you can pick a valid category before adding a feed.
list_feeds
name_restates_behavior no_return_description
Return all currently configured RSS feeds together with their assigned category, showing which sources are tracked and how they are grouped for use in fetching, searching, and removal.
add_feed
name_restates_behavior no_return_description
Register a new RSS feed by URL and a display name, optionally assigning it to a category (seo, content, social, email, analytics, crm, news). Returns confirmation that the feed was added and made available for fetching and searching.
remove_feed
name_restates_behavior no_return_description
Delete a tracked RSS feed identified by its feed name. Returns confirmation that the feed was removed and will no longer appear in fetches or searches.
fetch_blogs
name_restates_behavior no_return_description
Retrieve the latest articles published across all configured feeds, optionally restricted to a date range (1d, 7d, 1w, 30d, 1m, this_week, this_month; default 7d) and capped to a maximum count (default 20). Returns a list of matching blog articles.
fetch_by_category
name_restates_behavior no_return_description
Retrieve the latest articles from feeds assigned to one specific category (seo, content, social, email, analytics, crm, news), optionally restricted by date range (default 7d) and a maximum count (default 20). Returns the matching blog articles.
fetch_from_source
name_restates_behavior no_return_description
Retrieve the latest articles from a single feed source identified by its name, optionally restricted by date range (default 7d) and a maximum count (default 20). Returns the matching blog articles.
search_blogs
no_return_description
Find blog articles across all feeds whose content matches a given keyword or phrase, optionally restricted by date range (default 30d) and a maximum count (default 20). Returns the matching articles, useful for discovering content ideas on specific topics.

Selection evidence

Confusable tool pairs.

5 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
fetch_by_category fetch_from_source high Both fetch blogs filtered by a single user-provided selector (category vs. source/name), and only the parameter name differs. A task like 'get blogs from news' or 'fetch blogs from techcrunch' forces the agent to guess whether the given value is a category name or a feed source without reliable clues.
fetch_blogs fetch_by_category medium A task like 'fetch recent marketing blogs' is ambiguous: fetch_blogs pulls from all feeds with a range/limit, while fetch_by_category filters by a category that may actually be the topic the user mentions. Agents can pick the wrong scope when the user's category word isn't an obvious known category.
fetch_blogs fetch_from_source medium 'Fetch blogs from [named feed]' could lead an agent to call fetch_blogs (all feeds) if it treats the request as generic 'latest blogs', or fetch_from_source if it recognizes a source name; both return articles and only differ in the optional name filter, making the intent easy to misread.
fetch_blogs search_blogs medium A task like 'find recent AI content across my feeds' contains both a range/limit flavor (fetch_blogs) and a topic/keyword flavor (search_blogs). Since both return blog articles and neither description names the other, an agent may choose fetch_blogs and miss the keyword-based filtering the user actually wants.
list_categories list_feeds medium A task like 'list my feed categories' is ambiguous: list_categories returns available categories for organizing, while list_feeds returns configured feeds with their assigned categories. The agent could choose list_categories when the user actually wants to see which categories their feeds belong to, which is only covered by list_feeds.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard