← Back to search

io.github.crunchtools/feed-reader

crunchtools Scanned 22d ago

RSS/Atom feed reader MCP server with SQLite backend

C
64.8 / 100

Versions

0.1.2latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 17

get_stats_tool
annotations: none low

Get dashboard stats: total feeds, unread count, entries per category.

delete_category_tool
annotations: none low

Delete a category. Feeds in this category become uncategorized. Args: category_id: Category ID to delete

category_id int
import_opml_tool
annotations: none low

Import feeds from an OPML file, creating categories from outline groups. Args: file_path: Path to the OPML file

file_path str
export_opml_tool
annotations: none low

Export all feeds as OPML XML string.

add_feed_tool
annotations: none low

Add an RSS/Atom feed by URL, optionally assign to a category. Args: url: Feed URL (RSS, Atom, or RDF) category: Category name (created if it does not exist)

url str category string
list_feeds_tool
annotations: none low

List all feeds with unread counts. Args: category_id: Filter by category ID (optional)

category_id string
get_feed_tool
annotations: none low

Get details for a single feed including entry counts. Args: feed_id: Feed ID

feed_id int
delete_feed_tool
annotations: none low

Remove a feed and all its entries. Args: feed_id: Feed ID to delete

feed_id int
refresh_feeds_tool
annotations: none low

Crawl feed sources over the network for new content. Slow — takes 30-60s for all feeds. Prefer the systemd timer for background updates. Use list_entries to read cached content. Args: feed_id: Specific feed ID to refresh (optional, refreshes all if omitted)

feed_id string
list_entries_tool
annotations: none low

List entries with optional filters. Args: feed_id: Filter by feed ID category_id: Filter by category ID unread_only: Show only unread entries (default: True) limit: Max entries to return (1-500, default: 50) offset: Pagination offset (default: 0)

limit int offset int feed_id string category_id string unread_only bool
read_entry_tool
annotations: none low

Get full content of an entry (auto-marks as read). Args: entry_id: Entry ID

entry_id int
mark_read_tool
annotations: none low

Mark entries as read. Args: entry_id: Mark a single entry as read feed_id: Mark all entries in a feed as read all_entries: Mark ALL entries as read (use with caution)

feed_id string entry_id string all_entries bool
mark_unread_tool
annotations: none low

Mark an entry as unread. Args: entry_id: Entry ID

entry_id int
search_entries_tool
annotations: none low

Full-text search across entry titles and content. Args: query: Search query (FTS5 syntax supported) limit: Max results (1-500, default: 50)

limit int query str
list_categories_tool
annotations: none low

List all categories with feed counts.

create_category_tool
annotations: none low

Create a new category. Args: name: Category name

name str
rename_category_tool
annotations: none low

Rename a category. Args: category_id: Category ID name: New name

name str category_id int

Permissions 4

network medium
Server uses network capabilities via: httpx, urllib
filesystem low
Server uses filesystem capabilities via: os, pathlib, tempfile
database medium
Server uses database capabilities via: sqlite3
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 62

low
Tool 'add_feed_tool' has no annotations annotation_checker · 100%
low
Tool 'list_feeds_tool' has no annotations annotation_checker · 100%
low
Tool 'get_feed_tool' has no annotations annotation_checker · 100%
low
Tool 'delete_feed_tool' has no annotations annotation_checker · 100%
low
Tool 'refresh_feeds_tool' has no annotations annotation_checker · 100%
low
Tool 'list_entries_tool' has no annotations annotation_checker · 100%
low
Tool 'read_entry_tool' has no annotations annotation_checker · 100%
low
Tool 'mark_read_tool' has no annotations annotation_checker · 100%
low
Tool 'mark_unread_tool' has no annotations annotation_checker · 100%
low
Tool 'search_entries_tool' has no annotations annotation_checker · 100%
low
Tool 'list_categories_tool' has no annotations annotation_checker · 100%
low
Tool 'create_category_tool' has no annotations annotation_checker · 100%
low
Tool 'rename_category_tool' has no annotations annotation_checker · 100%
low
Tool 'delete_category_tool' has no annotations annotation_checker · 100%
low
Tool 'import_opml_tool' has no annotations annotation_checker · 100%
low
Tool 'export_opml_tool' has no annotations annotation_checker · 100%
low
Tool 'get_stats_tool' has no annotations annotation_checker · 100%
high
Remote transport without authentication auth_checker · 70%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-338) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: add_feed_tool manifest_parser · 90%
info
Tool: list_feeds_tool manifest_parser · 90%
info
Tool: get_feed_tool manifest_parser · 90%
info
Tool: delete_feed_tool manifest_parser · 90%
info
Tool: refresh_feeds_tool manifest_parser · 90%
info
Tool: list_entries_tool manifest_parser · 90%
info
Tool: read_entry_tool manifest_parser · 90%
info
Tool: mark_read_tool manifest_parser · 90%
info
Tool: mark_unread_tool manifest_parser · 90%
info
Tool: search_entries_tool manifest_parser · 90%
info
Tool: list_categories_tool manifest_parser · 90%
info
Tool: create_category_tool manifest_parser · 90%
info
Tool: rename_category_tool manifest_parser · 90%
info
Tool: delete_category_tool manifest_parser · 90%
info
Tool: import_opml_tool manifest_parser · 90%
info
Tool: export_opml_tool manifest_parser · 90%
info
Tool: get_stats_tool manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (1) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 70%
medium
Permission: database access detected permission_analyzer · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%