GroundEffect

by jamiequint

Not rated
GitHub

About

Hyper-fast, local Gmail and Google Calendar indexing for Claude Code, available as a Skill or MCP Server.

Details

Author
jamiequint
Categories
Productivity, Other

Setup

Install GroundEffect in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/jamiequint/groundeffect

Follow the installation instructions in the repository README, then restart your MCP client.

Hyper-fast, local Gmail and Google Calendar indexing for Claude Code.

GroundEffect is a local headless IMAP/CalDav client, Claude Code skill, and MCP server built in Rust with LanceDB.

- Hybrid Search: BM25 full-text + vector semantic search with Reciprocal Rank Fusion
- Local Embeddings: Runs nomic-embed-text-v1.5 locally via Candle with Metal acceleration
- Multi-Account: Connect unlimited Gmail/GCal accounts with independent sync
- MCP Integration: Exposes email and calendar tools directly to Claude Code
- Real-time Sync: IMAP IDLE for instant email notifications, CalDAV polling for calendar
- HTML Text Extraction: Automatically converts HTML emails to clean plain text usinghtml2text
- Pluggable Token Storage: File-based (default) or PostgreSQL with AES-256-GCM encryption

brew tap jamiequint/groundeffect brew install groundeffect

- Installs the daemon (starts at login)
- Installs the Claude Code skill
- Adds permissions to run groundeffect commands

Create a Google Cloud project with OAuth credentials:
- Go toGoogle Cloud Console
- Create a project and enableGmail APIandGoogle Calendar API
- Go toAPIs & Services > Credentials
- CreateOAuth client ID(Desktop app type)
- Add your credentials:

echo 'export GROUNDEFFECT_GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"' >> ~/.zshrc echo 'export GROUNDEFFECT_GOOGLE_CLIENT_SECRET="your-client-secret"' >> ~/.zshrc source ~/.zshrc

This opens a browser for Google OAuth. After authentication, the daemon syncs automatically.

That's it! Ask Claude Code to search your emails and calendar.

All commands output JSON by default. Add--humanfor readable output.

Usecalendar eventsto answer questions like "what's on my calendar tomorrow" or "show me my meetings next week" without requiring a search query.

# Use local embeddings (default) groundeffect config settings --embedding-provider local # Use OpenRouter embeddings export OPENROUTER_API_KEY="your-key" groundeffect config settings --embedding-provider openrouter # Set embedding + IMAP fetch batch size (128 recommended for Gmail/OpenRouter stability) groundeffect config settings --embedding-batch-size 128 # Optional: set a different OpenRouter model groundeffect config settings --openrouter-model "openai/text-embedding-3-large"

If you prefer MCP over the CLI skill, add to~/.claude.json:

{ "mcpServers": { "groundeffect": { "type": "stdio", "command": "groundeffect-mcp", "env": { "GROUNDEFFECT_GOOGLE_CLIENT_ID": "${GROUNDEFFECT_GOOGLE_CLIENT_ID}", "GROUNDEFFECT_GOOGLE_CLIENT_SECRET": "${GROUNDEFFECT_GOOGLE_CLIENT_SECRET}" } } } }

The skill is faster (direct CLI calls vs MCP JSON-RPC overhead) but MCP works with other MCP-compatible clients.

git clone https://github.com/jamiequint/groundeffect.git cd groundeffect cargo build --release

- target/release/groundeffect- CLI
- target/release/groundeffect-daemon- Background sync daemon
- target/release/groundeffect-mcp- MCP server

# Install binaries sudo cp target/release/groundeffect* /usr/local/bin/ # Install skill cp -r skill ~/.claude/skills/groundeffect # Install daemon groundeffect daemon install # Add permissions groundeffect config add-permissions
~/.config/groundeffect/ ├── config.toml # Main configuration ├── daemon.toml # Daemon configuration └── tokens/ # OAuth tokens (file provider) ~/.local/share/groundeffect/ ├── lancedb/ # LanceDB database ├── attachments/ # Downloaded attachments ├── models/ # Embedding model files ├── logs/ # Log files └── cache/ └── sync_state/ # Sync state ~/.claude/skills/groundeffect/ # Claude Code skill

By default, OAuth tokens are stored in~/.config/groundeffect/tokens/as encrypted JSON files.

For server deployments or ephemeral containers, you can store tokens in PostgreSQL instead. This requires thepostgresfeature.

cargo build --release --features postgres
CREATE TABLE IF NOT EXISTS groundeffect_tokens ( email VARCHAR(255) PRIMARY KEY, encrypted_tokens BYTEA NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() );

Configure in~/.config/groundeffect/config.toml:

[tokens] provider = "postgres" database_url_env = "DATABASE_URL" encryption_key_env = "GE_TOKEN_ENCRYPTION_KEY" # table_name = "groundeffect_tokens" # optional
export DATABASE_URL="postgres://user:pass@localhost/mydb" export GE_TOKEN_ENCRYPTION_KEY="your-secret-key-here"

Tokens are encrypted at rest using AES-256-GCM with a key derived from your encryption key via HKDF-SHA256.

groundeffect account reauth <email-or-alias>
groundeffect daemon status groundeffect daemon restart
tail -f ~/.local/share/groundeffect/logs/daemon.log
groundeffect config settings --logging true groundeffect daemon restart

Embedding model uses ~500MB-1GB during active embedding. Normal when idle.

┌──────────────┐ ┌──────────────────┐ │ Claude Code │─────►│ groundeffect-mcp │────────┐ │ (MCP Host) │stdio │ │ │ └──────────────┘ └──────────────────┘ │ ▼ ┌──────────────┐ ┌──────────────────┐ ┌─────────┐ │ Claude Code │─────►│ groundeffect │───►│ LanceDB │ │ (Skill/Bash) │ │ (CLI) │ └─────────┘ └──────────────┘ └──────────────────┘ ▲ │ ┌──────────────────┐ │ │ groundeffect- │─────────┘ │ daemon │◄──── IMAP/CalDAV └──────────────────┘

An MCP server for interacting with Gmail and Google Calendar, enabling context-aware email and event management.

Integrate Google services like Gmail, Calendar, Drive, and Tasks with MCP.

(MCP) server for Google Workspace. Drive, Gmail, Calendar, Sheets, Docs, Tasks and People via AI agents.

Interact with Google Workspace services like Gmail and Google Calendar.

Integrates Google Workspace services like Calendar, Drive, and Gmail with AI assistants.

Manage Gmail, Calendar, Drive, and Contacts through Google Workspace APIs using OAuth 2.0.

Interact with Google Workspace services like Gmail and Google Calendar.

An MCP server for interacting with Google Workspace services like Gmail and Calendar.

Interact with Google products, including Gmail and Calendar.

A comprehensive MCP server for managing Google Workspace services like Calendar, Contacts, and Gmail using OAuth2 authentication.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.