Labsco
MCP SERVER

GroundEffect

by jamiequint

Search years of Gmail and Google Calendar locally, with the index and the embedding model on your own machine.

Email: Mailboxes & Delivery
Summary
Your mail is indexed on your laptop, and the search model runs there too.

Mail and calendar land in a local LanceDB and the embedding model runs in-process, so a search never leaves the machine — the tradeoff is memory: the model uses roughly 500MB-1GB while it is actively embedding. Both a CLI skill and the MCP server front the same index; the skill is faster, the MCP server is what other clients can talk to.

What it is

A Rust daemon that syncs Gmail over IMAP and Google Calendar over CalDAV into a local LanceDB index, plus `groundeffect-mcp`, the server that exposes the email and calendar tools to your client.

What you get
  • Hybrid mail search — BM25 full text and vector similarity, fused with Reciprocal Rank Fusion
  • Embeddings computed locally with nomic-embed-text-v1.5 through Candle and Metal acceleration, or via OpenRouter if you prefer
  • Calendar answers that need no search query — events in a date range, defaulting to the next 7 days
  • Sending mail, drafts, threads, attachments and IMAP folders, across as many Gmail accounts as you connect
  • Live sync — IMAP IDLE for instant mail, CalDAV polling for calendar
  • HTML mail converted to clean plain text before it is indexed
Requirements

`brew tap jamiequint/groundeffect && brew install groundeffect`, which installs the daemon and starts it at login. You supply your own Google OAuth client — `GROUNDEFFECT_GOOGLE_CLIENT_ID` and `GROUNDEFFECT_GOOGLE_CLIENT_SECRET`, with the Gmail API and Google Calendar API enabled — then run `groundeffect account add` and authorise in the browser. Tokens are stored encrypted under `~/.config/groundeffect/tokens/`.

Setup effort

One command plus a key — brew install groundeffect, then supply credentials