Open-source, self-hosted API that turns standard email providers into intelligent, stateful email for LLMs via REST or MCP.

"Thaer log logdu, thaer lif voldu..."
"Laws they made there, and life allotted / To the sons of men, and set their fates."
— Voluspa (The Prophecy of the Seeress), Poetic Edda, Stanza 20
Image: "Nornorna spinner odets tradar vid Yggdrasil" by L. B. Hansen — Public Domain
Dedicated addresses for AI agents; receive and send via your provider. SQLite (default) or PostgreSQL storage with API key authentication.
Ingest from Mailgun, AWS SES, SendGrid, and Resend; send via your configured provider.
Thread by headers, HTML→Markdown parsing, and cruft removal. LLM thread summaries with your own OpenAI, Anthropic, or Gemini key.
Full REST API for inbox, thread, and message management. LLM-optimized response formats.
Claude, Cursor, and other MCP clients. Read and send email; attachment text extraction included.
Allow/blocklist email domains with regex patterns. Separate controls for inbound and outbound traffic.
Global per-minute and per-hour caps on outbound email. Protect against runaway agents with HTTP 429 and Retry-After.
Modular design with storage and provider adapters. Swap email providers with ease.
# Install and run — SQLite tables are created automatically
pip install nornweave
nornweave apiOr use Docker for production (with PostgreSQL):
git clone https://github.com/DataCovey/nornweave.git
cd nornweave
cp .env.example .env
docker compose --profile storage_psql --profile mail_mailgun up -d
docker compose --profile storage_psql exec api-psql uv run alembic upgrade head