Skip to main content
Glama
revenant

revenant

by edwinibnu97

Revenant Reader ☠

RSS, back from the dead. A local-first feed reader with a built-in MCP server, so AI agents can read your feeds too.

Built for Kiroween 2026 (Devpost, category: Resurrection) — resurrecting RSS, the technology Google Reader took to the grave in 2013, for the agent era.

What it does

  • Add any RSS 2.0 / Atom feed by URL; refresh all feeds with one click.

  • Unread counts, newest-first reading, full-text search across feeds.

  • Mark items read — state persists immediately to data/feeds.json.

  • MCP server (mcp-server/index.js) with five tools — list_feeds, search_items, mark_read, add_feed, unread_count — sharing the exact same store as the web UI. What the agent does shows up in the browser, and vice versa.

  • Zero frameworks, one dependency (fast-xml-parser), no build step, no tracking, no account, no cloud.

Related MCP server: MCP RSS

Run it

npm install
npm start          # http://127.0.0.1:3000
npm test           # node --test tests/
npm run check      # node --check on every JS file
npm run mcp        # start the MCP server on stdio

First run seeds two feeds (Hacker News, NASA). Add your own from the sidebar.

How Kiro was used

This project was built spec-first, the way Kiro is designed to be used:

  • Specs — three specs under .kiro/specs/ (feed-engine, reader-ui, mcp-server), each with requirements.md (user stories + acceptance criteria), design.md (architecture + sequence diagrams), and tasks.md (trackable checkboxes, marked done only when verified).

  • Steering — .kiro/steering/ holds product.md, tech.md, structure.md (always-on) plus api-standards.md and testing-standards.md (fileMatch), so every Kiro session follows the same conventions without being told twice.

  • Agent Hooks — .kiro/hooks/ automates the workflow: lint-on-save runs node --check on every saved JS file, test-on-stop runs the full test suite when a session ends, and spec-sync prompts the agent to keep spec task checklists honest after source changes.

  • MCP — .kiro/settings/mcp.json wires the project's own MCP server (revenant) into Kiro, and .kiro/agents/revenant-librarian.json defines a custom librarian agent with that server + the steering files.

  • Kiro CLI 3.1.0 is installed on the build VM (~/.local/bin/kiro-cli); sign-in (Google / GitHub / AWS Builder ID) is a human step — see below.

The specs, steering, hooks, and MCP config are all in .kiro/ at the repo root, as the Kiroween rules require. The directory is intentionally not in .gitignore.

What still needs a human

  • Kiro account: sign in to Kiro CLI (kiro-cli login) with Google, GitHub, or AWS Builder ID (free). Then request the 4,000 free Kiroween credits on the Devpost Resources tab by Dec 1, 12:00 PM PT.

  • GitHub repo: push this project to a public GitHub repo (open-source license included — MIT). The repo URL is what Devpost judges.

  • Demo video: under 3 minutes, public on YouTube, showing the app working.

  • Devpost submission: by Fri Dec 4, 2026, 2:00 PM Pacific — category Resurrection, plus the write-up on how Kiro was used.

Roadmap (from the specs)

  • Per-feed lastError shown in the UI when a refresh fails.

  • etag / Last-Modified support to skip unchanged feeds.

  • MCP resources/list + resources/read, and a "morning briefing" prompt.

  • Keyboard shortcuts (j/k to move, x to mark read).

License

MIT — see LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with RSS readers that support the FreshRSS API through natural language. Allows users to manage and query their RSS feeds and articles via LLM conversations.
      7
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables intelligent RSS feed management with AI-powered semantic search, advanced filtering, and a comprehensive reading workflow. Supports OPML parsing, article organization with status tracking, and token-efficient browsing of large feed collections.
      18 npm
      5
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with FreshRSS feeds via the Fever API, allowing listing feeds, fetching unread items, marking items as read/unread, and managing feed subscriptions.
      8
      5 npm
      10
      MIT