LeslieLeung

glean

Built by LeslieLeung β€’ 803 stars

What is glean?

A self-hosted RSS reader and personal knowledge management tool.

How to use glean?

1. Install a compatible MCP client (like Claude Desktop). 2. Open your configuration settings. 3. Add glean using the following command: npx @modelcontextprotocol/glean 4. Restart the client and verify the new tools are active.
πŸ›‘οΈ Scoped (Restricted)
npx @modelcontextprotocol/glean --scope restricted
πŸ”“ Unrestricted Access
npx @modelcontextprotocol/glean

Key Features

Native MCP Protocol Support
Real-time Tool Activation & Execution
Verified High-performance Implementation
Secure Resource & Context Handling

Optimized Use Cases

Extending AI models with custom local capabilities
Automating system workflows via natural language
Connecting external data sources to LLM context windows

glean FAQ

Q

Is glean safe?

Yes, glean follows the standardized Model Context Protocol security patterns and only executes tools with explicit user-granted permissions.

Q

Is glean up to date?

glean is currently active in the registry with 803 stars on GitHub, indicating its reliability and community support.

Q

Are there any limits for glean?

Usage limits depend on the specific implementation of the MCP server and your system resources. Refer to the official documentation below for technical details.

Official Documentation

View on GitHub

Glean 拾灡

English | δΈ­ζ–‡

[!IMPORTANT] Join our Discord to stay updated on the latest developments and get support.

This project is still in development and is not ready for production use.

A self-hosted RSS reader and personal knowledge management tool.

Glean (拾灡) helps information-heavy consumers efficiently manage their reading through intelligent RSS aggregation.

Glean

Features

Core Features

  • πŸ“° RSS Subscription - Subscribe and organize RSS/Atom feeds with OPML import/export
  • πŸ“š Smart Reading - Clean reading experience with content filtering
  • πŸ”– Read Later - Save articles for later reading with auto-cleanup
  • πŸ“ Folders & Tags - Multi-level folders and tags for organization
  • ⭐ Bookmarks - Save articles from feeds or external URLs
  • πŸ”§ Background Sync - Automatic feed updates every 15 minutes
  • πŸ”’ Self-hosted - Full data ownership with Docker deployment
  • 🎨 Modern UI - Beautiful, responsive warm dark theme interface
  • πŸ‘¨β€πŸ’Ό Admin Dashboard - User management and system monitoring

Planned Features (WIP)

  • 🧠 Smart Recommendations - AI-powered preference learning and article scoring
  • βš™οΈ Rule Engine - Automated processing with Jinja2-style conditions
  • πŸ€– AI Features - Summary generation, auto-tagging, keyword extraction (BYOK)
  • πŸ“„ Full Content Fetch - Fetch complete article content for RSS summaries
  • πŸ”Œ Chrome Extension - One-click bookmarking from browser
  • πŸ“± Mobile PWA - Progressive Web App for mobile devices

Quick Start

One-Command Deployment

# Download docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/docker-compose.yml -o docker-compose.yml

# Start Glean (full deployment with Milvus)
docker compose up -d

# Access:
# - Web App: http://localhost
# - Admin Dashboard: http://localhost:3001 (default: admin/Admin123!)

Default Admin Account: An admin account is automatically created with:

  • Username: admin
  • Password: Admin123!
  • ⚠️ Change this password in production!

Lite Deployment (without Milvus, if you don't need Phase 3 features):

# Download lite version
curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/docker-compose.lite.yml -o docker-compose.yml

# Start Glean
docker compose up -d

# Admin Dashboard: http://localhost:3001 (default: admin/Admin123!)

Customize Admin Account (Optional)

To use custom admin credentials instead of the defaults, create a .env file before starting:

# Set custom admin credentials in .env
cat > .env << EOF
ADMIN_USERNAME=admin
ADMIN_PASSWORD=YourSecurePassword123!
SECRET_KEY=$(openssl rand -base64 32)
EOF

# Start services
docker compose up -d

To disable auto-creation and create admin manually:

# Disable auto-creation in .env
echo "CREATE_ADMIN=false" >> .env

# Start services
docker compose up -d

# Create admin manually
docker exec -it glean-backend /app/scripts/create-admin-docker.sh

Configuration

For production, customize your deployment with environment variables. Download the example file:

curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/.env.example -o .env

Important settings to change:

VariableDescriptionDefault
SECRET_KEYJWT signing keyMust change in production!
POSTGRES_PASSWORDDatabase passwordglean (Change in production!)
ADMIN_PASSWORDAdmin passwordAdmin123! (Change!)
WEB_PORTWeb interface port80
ADMIN_PORTAdmin dashboard port3001
CREATE_ADMINAuto-create admintrue (set false to disable)

For all configuration options, see .env.example.

Docker Images

Pre-built images are available on GitHub Container Registry:

  • ghcr.io/leslieleung/glean-backend:latest - API server & worker
  • ghcr.io/leslieleung/glean-web:latest - Web frontend
  • ghcr.io/leslieleung/glean-admin:latest - Admin dashboard

Supported architectures: linux/amd64, linux/arm64

Testing Pre-release Versions

Want to test upcoming features? Use pre-release versions (alpha/beta/rc):

Method 1: Using environment variable (recommended)

# Set the IMAGE_TAG in .env file
echo "IMAGE_TAG=v0.3.0-alpha.1" >> .env

# Or export it directly
export IMAGE_TAG=v0.3.0-alpha.1

# Start with pre-release images
docker compose up -d

Method 2: Inline environment variable

IMAGE_TAG=v0.3.0-alpha.1 docker compose up -d

Note: Pre-release versions are for testing only. They won't trigger auto-updates for Electron apps and are not recommended for production use.

See available pre-release versions on the Releases page.

Deployment

The default deployment includes all services (full version):

  • Web App (port 80) - Main user interface
  • Admin Dashboard (port 3001) - User management and system monitoring
  • Backend API - FastAPI server
  • Worker - Background task processor (feed fetching, cleanup)
  • PostgreSQL - Database
  • Redis - Task queue
  • Milvus - Vector database for smart recommendations and preference learning (Phase 3)

Lite deployment (without Milvus) is also available using docker-compose.lite.yml.

For detailed deployment instructions and configuration, see DEPLOY.md.

Tech Stack

Backend:

  • Python 3.11+ / FastAPI / SQLAlchemy 2.0
  • PostgreSQL / Redis / arq (task queue)

Frontend:

  • React 18 / TypeScript / Vite
  • Tailwind CSS / Zustand / TanStack Query

Development

See DEVELOPMENT.md for complete development setup instructions.

Quick start:

# Clone and setup
git clone https://github.com/LeslieLeung/glean.git
cd glean
npm install

# Start infrastructure
make up

# Initialize database (first time only)
make db-upgrade

# Install pre-commit hooks (optional but recommended)
make pre-commit-install

# Start all services
make dev-all

# Access:
# - Web: http://localhost:3000
# - Admin: http://localhost:3001
# - API Docs: http://localhost:8000/api/docs

Pre-commit Hooks

The project uses pre-commit hooks to ensure code quality:

# Install hooks (one-time setup)
make pre-commit-install

# Run hooks manually on all files
make pre-commit-run

# Uninstall hooks (if needed)
make pre-commit-uninstall

Hooks automatically run on commit and check:

  • Backend: ruff format, ruff linter, pyright type checking
  • Frontend: ESLint, Prettier formatting
  • General: trailing whitespace, file endings, YAML/JSON/TOML validation

Roadmap

PhaseStatusFeatures
Phase 1: MVPβœ… DoneUser system, RSS subscription, reader, admin dashboard
Phase 2: Organizationβœ… DoneBookmarks, folders, tags, read later
Phase 3: Preferences🚧 WIPEmbedding pipeline, preference learning, smart recommendations
Phase 4: RulesπŸ“‹ PlannedRule engine, Jinja2 conditions, automated actions
Phase 5: AIπŸ“‹ PlannedAI summaries, auto-tagging, keyword extraction, BYOK support
Phase 6: ExtensionsπŸ“‹ PlannedChrome extension, PWA, web snapshots

See Product Requirements for detailed feature specifications.

Documentation

Contributing

Contributions are welcome! Please read our Development Guide first.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a Pull Request

License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.

Global Ranking

-
Trust ScoreMCPHub Index

Based on codebase health & activity.

Manual Config

{ "mcpServers": { "glean": { "command": "npx", "args": ["glean"] } } }