gigamail — Claude Code MCP server: agent mail and calendar
Hands your agent access to your real mailbox and calendar, with a human signing off on every send. Useful when the agent should read and draft, not fire off messages on its own.
claude mcp add --env GIGAMAIL_ROOT=<GIGAMAIL_ROOT> --transport stdio gigamail -- uvx gigamailWhat gigamail does
The server speaks stdio and opens no network port. It handles several accounts at once through Microsoft Graph and IMAP, keeps a local SQLite search index, and remembers how each sender writes and what you last discussed with them. Drafts check your calendar first, so proposed times fall inside office hours and stay free. Indexes, credentials and settings stay on your machine.
Reading needs no approval. Sending and deleting do: the agent receives an inert request id, you approve from the console or the CLI, and the action runs with the arguments you were shown. Writes go into an append-only log. Account setup and login exist only in the CLI, so an instruction hidden in an email cannot add an account or reach your secrets. A masker strips fields like IBANs, phone numbers and tax codes before the model ever sees them.
Install with pip install "gigamail[all]", then run gigamail login for Microsoft or gigamail accounts add-imap for IMAP. The bundled Azure app has not been publisher-verified yet, so the consent screen carries an “unverified” notice; some corporate tenants block it, and in that case you register your own Azure app and set client_id in src/gigamail/core/ms_config.json. IMAP skips all of that. There is no built-in LLM — your agent supplies the thinking.
What it helps with
- let an agent read work mail without granting it send rights
- search across several mailboxes at once, offline included
- draft a reply that matches the tone and history with one person
- propose meeting times only from free calendar slots
- hide IBANs and phone numbers before the model sees an email
Example prompts for the agent
- Find every message from the supplier this month and list the ones I never answered.
- Draft a reply to the client's latest email, matching the tone of my earlier answers.
- Suggest three times for a call this week inside my office hours.
How to install gigamail
Platform CLI
claude mcp add --env GIGAMAIL_ROOT=<GIGAMAIL_ROOT> --transport stdio gigamail -- uvx gigamailReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from gigamail <command>
Platform CLI
codex mcp add gigamail --env GIGAMAIL_ROOT=<GIGAMAIL_ROOT> -- uvx gigamailReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from gigamail <command>
Config file
{
"mcpServers": {
"gigamail": {
"command": "uvx",
"args": [
"gigamail"
],
"env": {
"GIGAMAIL_ROOT": "<GIGAMAIL_ROOT>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from gigamail <command>
Config file
{
"servers": {
"gigamail": {
"type": "stdio",
"command": "uvx",
"args": [
"gigamail"
],
"env": {
"GIGAMAIL_ROOT": "<GIGAMAIL_ROOT>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from gigamail <command>
Platform CLI
gemini mcp add -e GIGAMAIL_ROOT=<GIGAMAIL_ROOT> gigamail uvx gigamailReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from gigamail <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about gigamail
How do I install gigamail in Claude Code?
Install the package first: pip install "gigamail[all]". Then register the server with claude mcp add gigamail -- uvx gigamail. For a custom data root use claude mcp add --env GIGAMAIL_ROOT=<GIGAMAIL_ROOT> --transport stdio gigamail -- uvx gigamail.
What does gigamail do?
It is an MCP server that gives your agent access to your mailbox and calendar: multiple accounts over Microsoft Graph and IMAP, a local search index, sender memory and contact notes. Sends and deletes execute only after a human approves them.
Why does Microsoft login show an “unverified” notice?
The bundled Azure app has not been publisher-verified yet, so the consent screen warns about it. It still works, though some corporate tenants may block it — register your own Azure app and set client_id in src/gigamail/core/ms_config.json if that happens.