By edsu
Read, search, and digest your FreshRSS feeds — digests, topic search, a people-centric catch-up, and a subscriptions overview, backed by a bundled FreshRSS MCP server.
Summarize recent posts from a named FreshRSS category. For the "People" category, writes a person-centric narrative (one paragraph per person); for other categories, writes one paragraph per active feed. Use when the user asks "what's new in my <category> feeds?", "catch me up on <category>", or invokes `/freshrss-category <category>`. Requires the freshrss MCP server.
Produce a digest of recent unread articles from the user's FreshRSS feeds. Use when the user asks for a digest of their feeds, "what's new in my feeds", "summarize the posts from the last N days/week", or invokes `/freshrss-digest`. Requires the freshrss MCP server.
Search the user's unread FreshRSS articles for a specific topic, using semantic relevance over titles and summaries. Use when the user asks "what's in my feeds about X", "any news on X in my feeds", or invokes `/freshrss-search <topic>`. Requires the freshrss MCP server.
List the user's FreshRSS subscriptions that have unread articles in a given timeframe, with counts and sample titles. Use when the user asks "which feeds have new posts?", "what subscriptions are active this week?", or invokes `/freshrss-subscriptions`. Requires the freshrss MCP server.
Admin access level
Server config contains admin-level keywords
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
freshrss_urlBase URL of your FreshRSS instance, e.g. https://freshrss.example.com
${user_config.freshrss_url}freshrss_passwordYour FreshRSS API password (Settings > Profile > API Management in FreshRSS)
${user_config.freshrss_password}freshrss_usernameYour FreshRSS login username
${user_config.freshrss_username}Experimental. This is a personal project for exploring MCP server development and Claude plugin/skill building. It works, but expect rough edges and breaking changes.
A Claude Code plugin that connects Claude to your FreshRSS feeds. It bundles an MCP server (wrapping the FreshRSS Google Reader API) and four skills for digesting, searching, and catching up on your subscriptions.
Token-optimized: the server returns only essential fields with configurable summary truncation, achieving ~90% reduction vs raw RSS XML payloads.
The MCP server (src/freshrss_mcp/) is based on ChrisLAS/freshrss-mcp, originally built for Streamable HTTP transport and the OpenClaw gateway. This repo restructures it as a Claude Code plugin (stdio transport, plugin manifest, bundled skills).
uv (Python 3.12+) must be installed — the plugin uses uv run freshrss-mcp to start the bundled MCP server.
1. Register this GitHub repo as a plugin marketplace (run in your terminal):
claude plugin marketplace add https://github.com/edsu/freshrss-claude
This tells Claude Code to treat this repository as a source of plugins. Claude Code fetches the plugin manifest from the repo and assigns the marketplace the name freshrss-claude-marketplace.
2. Install the plugin (run in your terminal):
claude plugin install freshrss-claude
This installs the freshrss-claude plugin from the marketplace you just registered.
3. Configure your FreshRSS credentials (run inside Claude Code):
/plugin configure freshrss-claude@freshrss-claude-marketplace
The @freshrss-claude-marketplace suffix tells Claude Code which marketplace the plugin came from — this disambiguates in case you have multiple marketplaces with plugins of the same name. You'll be prompted for:
https://freshrss.example.com4. Reload plugins (run inside Claude Code):
/reload-plugins
The MCP server starts automatically from that point — there's nothing else to run.
The skills/ directory ships four skills that drive the bundled freshrss MCP server:
freshrss-digest — /freshrss-digest [timeframe] produces a digest of recent unread articles (e.g. 3d, last week). Auto-switches between a reading-queue index (≤25 posts) and a themed TL;DR (>25 posts), and offers to mark the window as read when done.freshrss-search — /freshrss-search <topic> semantically searches all unread articles for a topic (e.g. Iran, interesting AI critique). Same adaptive output format, with an offer to drill into individual results.freshrss-category — /freshrss-category <category> [timeframe] summarizes recent posts from any FreshRSS category. For the "People" category it's person-centric (one paragraph per person, warm catch-up tone); for other categories it's one paragraph per active feed.freshrss-subscriptions — /freshrss-subscriptions [timeframe] lists which feeds have unread articles in a window, with counts and sample titles, sorted by volume.All four skills are installed automatically with the plugin — no separate symlinking step.
Inside Claude Code, run:
/freshrss-digest 2d
Claude fetches your unread articles from the past 48 hours and produces a digest. With fewer than 25 posts it renders a grouped reading-queue index (every article linked); with more it switches to a curated TL;DR that highlights roughly a third of them by theme and drops filler:
### Technology
- **New LLM benchmarks published** — Stanford HELM adds five new tasks targeting reasoning and long-context recall. ([link](…)) — *AI Weirdness*
- **Firefox 128 ships** — Tab Groups and a reworked reader mode land in stable. ([link](…)) — *Mozilla Hacks*
### Politics
- Local city council approved the transit funding amendment after two hours of public comment. ([link](…)) — *DCist*
…
Mark all 47 articles in this window as read in FreshRSS? (yes/no)
After the digest Claude offers to mark everything in that window as read in FreshRSS.
The bundled server exposes these tools:
npx claudepluginhub edsu/freshrss-claude --plugin freshrss-claudeMemory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.
Create content, plan campaigns, and analyze performance across marketing channels. Maintain brand voice consistency, track competitors, and report on what's working.
Prospect, craft outreach, and build deal strategy faster. Prep for calls, manage your pipeline, and write personalized messaging that moves deals forward.