LabscoMCP early access ↗
jamiequintMCP SERVER

GroundEffect

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

by jamiequint ↗Email: Mailboxes & DeliveryCommunity

LABSCO 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

Follow the published steps — brew tap jamiequint/groundeffect