Fastmail Search
faist mirrors your Fastmail inbox into your own Supabase, then exposes it to Claude and other MCP clients as SQL. With hybrid lexical and semantic search.
FAIST · faist.dev SECTION 01 · OPEN 0%
v0.4 · public beta · self-host ready
your fastmail, indexed.
every message in your fastmail account, mirrored into a SQL database you own, with embeddings for semantic search. natural language for humans. SQL for agents.
start free → see how it works no credit card · MIT core · OAuth in 3 clicks
data in your own postgres no model training, ever pg_dump & go
FAIST / 2026 / FASTMAIL → SQL · EMBEDDED · REAL-TIME
scroll
v0.4 · beta · build 1184
02 / 06 · the index
indexed · embedded · queryable
your inbox,
as a database
that thinks.
every message becomes a row. every row carries an embedding vector for similarity search. all of it real-time, all of it in postgres.
[email protected] nov 12
re: lease renewal d3 — counter
Per our call, we'd accept a 36-month term if the escalator stays at…
[email protected] nov 12
your invoice is ready · $214.00
Hi Sam, your Pro plan invoice for October is attached…
[email protected] nov 11
re: claude integration · ship it
Let's land the MCP bindings on monday. I'll review your PR tonight…
[email protected] nov 11
payout · $2,184.22 sent
Your funds are on the way. Expected arrival: November 13.
[email protected] nov 10
october office hours · summary
Twelve founders, six topics. The deck and notes are linked below…
[email protected] nov 10
thanksgiving?
are you driving up or do you want me to come down this year. — k
ƒ
INDEX
messages — postgres · your project 8 tables · 1 ƒ ext
| # | from | subject | sent | embedding(1536) |
|---|---|---|---|---|
| 1 | [email protected] | re: lease renewal d3 — counter | 2d | |
| 2 | [email protected] | your invoice is ready · $214.00 | 2d | |
| 3 | [email protected] | re: claude integration · ship it | 3d | |
| 4 | [email protected] | payout · $2,184.22 sent | 3d | |
| 5 | [email protected] | october office hours · summary | 4d | |
| 6 | [email protected] | thanksgiving? | 4d |
0 / 12,418 rows — indexed live
03 / 06 · two interfaces
two interfaces, one schema
natural language for humans.
SQL for agents.
the same rows, two surfaces. ask a question in english and faist translates it. or skip the translation: any agent that speaks SQL or MCP can read your inbox without ever touching your fastmail credentials.
— 01 / for humans natural language
"what's that lease thing paula sent?"
type the question. faist embeds it, runs the similarity search, and threads the answer back — citations included.
U
whats that lease thing paula sent last week — i need the counter clause
ƒ
Found it — Paula Mendez, Black Mountain Law, Nov 12 · "re: lease renewal d3 — counter". The counter is a 36-month term with a 2.5% annual escalator. Want me to pull the thread or draft a reply?
U
show me the SQL
ƒ
select * from messages
where embedding <-> embed('paula lease counter') < 0.32
order by sent_at desc limit 5;
— 02 / for agents SQL · MCP · webhook
a database any agent can read.
claude, cursor, openwebui — plus your own scripts. one read-only fastmail token in. structured rows out. agents never see your credentials.
-- claude · MCP server · 127.0.0.1:7474
-- tool: query(sql)
select "from", subject, sent_at
from messages
where embedding <-> embed('paula lease counter') < 0.32
order by sent_at desc limit 5;
[email protected] re: lease renewal d3 — counter 2d
[email protected] re: lease renewal d2 6d
docusign-noreply document completed 6d
(3 rows ·84 ms· provider=zero-retention)
natural language · for humans
MCP server · OAuth2
webhook on new row
just postgres · psql ok
04 / 06 · real-time
real-time, not batched
new mail arrives.
a row appears.
that's the loop.
faist holds a live JMAP stream with fastmail. messages, threads, labels, attachments — they land in your database within a second of hitting your inbox. nothing to schedule, nothing to refresh.
indexed [email protected] re: lease renewal d3 — counter · now indexed [email protected] thanksgiving? · now indexed [email protected] your invoice is ready · $214.00 · now indexed [email protected] re: claude integration · ship it · now indexed [email protected] payout · $2,184.22 sent · now indexed [email protected] october office hours · summary · now indexed security@1password new sign-in from macOS · now indexed [email protected] shared "faist · landing draft" · now indexed notion-team weekly digest · 12 pages · now indexed [email protected] PR #128 ready for review · now indexed [email protected] re: lease renewal d3 — counter · now indexed [email protected] thanksgiving? · now indexed [email protected] your invoice is ready · $214.00 · now indexed [email protected] re: claude integration · ship it · now indexed [email protected] payout · $2,184.22 sent · now indexed [email protected] october office hours · summary · now indexed security@1password new sign-in from macOS · now indexed [email protected] shared "faist · landing draft" · now indexed notion-team weekly digest · 12 pages · now indexed [email protected] PR #128 ready for review · now
05 / 06 · pricing
pricing
start free.
go unlimited when you outgrow it.
both tiers run against your supabase project — the difference is what we charge to keep the pipeline open. cancel any time. pg_dump takes the rest with you.
Free
$0/month
enough room to wire it up to your inbox, prove it works, and let an agent or two read your mail.
- 5,000 emails backfill from fastmail
- limited live updates — best-effort stream
- limited queries per day across NL + SQL
- MCP server · OAuth2 sign-in
- just postgres · pg_dump & go start free →
most picked
Pro
$3/month
unlimited everything. for your full archive and the agents you actually use day-to-day.
- unlimited backfill — your entire fastmail history
- unlimited live updates · sub-second JMAP stream
- unlimited queries — NL, SQL, MCP, webhooks
- MCP server · OAuth2 sign-in
- priority support · self-host migration assist start pro →
prices in USD. supabase project costs (typically $0–$25/mo) are paid directly to supabase. there is no faist-hosted plan — your data never lives on our servers.
06 / 06 · the promises
the promises · everything else is just plumbing
three things we will never ask of you.
— 01
your data lives in your database.
faist writes into a supabase project you own. our backend is stateless: no shadow mailbox, no rehosting. if you delete the project, the data is gone — we never had a second copy.
supabase project · 8 tables · row-level security on
— 02
privacy first. no data fed to the AI models.
embeddings flow through zero-retention endpoints. no message body, no metadata, nothing is ever used to train a model. when a model finishes a request, the provider has nothing left to remember.
embedding provider · zero-retention · no training opt-in
— 03
no vendor lock. migrate any time.
it's just postgres. the schema is documented and MIT-licensed. point a pg_dump at it and walk away — every row, every embedding, every relation. drop us; your data stays.
pg_dump $DATABASE_URL > faist.sql
07 · the questions
faq · the questions we get most
common questions.
What is faist?
faist is a TypeScript service that ingests email from any JMAP provider (Fastmail, Stalwart, generic) into a Postgres database you own, then exposes it to AI agents as SQL — via a REST endpoint or an MCP (Model Context Protocol) server for Claude, Cursor, Continue, and Cline.
How is faist different from the official Fastmail MCP server?
Fastmail's MCP exposes live inbox operations as tools (read, search, draft). faist builds a full historical index of every message in your own Supabase, with hybrid lexical (pgroonga BM25) and semantic (pgvector) search, and surfaces it to your agent as plain SQL so it can aggregate, group, and join across years of mail.
Where does my email data live?
In your own Supabase project. faist installs a scoped jmap schema and a dedicated jmap_indexer Postgres role; your service-role key is never persisted by faist. If you delete the Supabase project, the data is gone.
Which MCP clients does faist support?
Any MCP client that speaks Streamable HTTP — including Claude Code (CLI and VSCode extension), VSCode's native MCP, Cursor, Continue, Cline, and the MCP Inspector. Authentication uses OAuth 2.1 with dynamic client registration, or a per-user PAT minted from the dashboard.
Does faist work with providers other than Fastmail?
Yes. faist talks to any JMAP provider — Fastmail, Stalwart, or any generic JMAP server — so the same SQL surface works regardless of who hosts your email.
— · start
three clicks · then it's just postgres
put AI on your inbox.
keep the rest.
sign in with OAuth. point faist at a supabase project. paste a fastmail token. by the time you've blinked, your inbox is a database — and it's yours.
start free → read the docs
no credit card MIT core self-host anytime pg_dump & go
İlgili Sunucular
Kone.vc
sponsorMonetize your AI agent with contextual product recommendations
Acornonaut
Turn YouTube playlists into AI-generated flashcards with spaced repetition — create, search, and export decks via MCP.
Weavely AI Forms & Surveys
Build, style, and publish forms & surveys conversationally.
Fraud Detection Engine
中英双语 AI 欺诈文本检测引擎,可识别诈骗、钓鱼等风险,返回风险评分、判定和等级。
MCP Legal Doc Analyzer
Domain-specific MCP tooling for legal document workflows — extract clauses, check compliance, flag risks
DeepSRT
Summarize YouTube videos using the DeepSRT API.
MCP iCal Server
A server for performing CRUD operations on the macOS Calendar app.
Jira Weekly Reporter
Connects to a Jira instance to generate weekly reports based on issue activity.
Decent Sampler Drums
Generates Decent Sampler drum kit configurations.
CyberEdu MCP Server
This is the Oficial Model Context Protocol (MCP) server for the CyberEdu CTF platform (cyber-edu.co / cyberedu.ro)
Sunsama
Manage your tasks and daily planning through the Sunsama API.