post.
Connects to a Gmail mailbox over IMAP/SMTP using an app password, letting the AI list folders and unread counts, search and read mail and threads, extract text from attachments, and create drafts, replies and forwards.
Connects to a GMX mailbox over IMAP/SMTP once IMAP access and an app password are enabled, exposing mail search, reading, attachment extraction and drafting tools to the AI.
Connects to an iCloud mailbox over IMAP/SMTP using an app password, giving the AI access to folders, mail search and reading, attachment text extraction, and draft creation.
Detects mailboxes hosted on Ionos domains via MX/autoconfig server discovery and connects to them over IMAP/SMTP for searching, reading, summarising and drafting mail.
Reads host, port and user name from an existing Thunderbird profile to reach the configured mailboxes automatically, optionally treating Thunderbird's default account as the primary mailbox.
Connects to a WEB.DE mailbox over IMAP/SMTP after setup explains the required settings, providing tools to search, read, summarise and draft mail, with optional move/delete/mark and sending.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
post.
Your mailbox for your AI. No add-in, no Microsoft 365 subscription, no service in between.
post. is an MCP server that connects Claude Desktop, Claude Code, Codex or a local model to your own mailbox. The AI can read mail, search it, read attachments, summarise threads and draft replies or forwards. Nothing is sent unless you explicitly allow it.
Claude Desktop, Claude Code, Codex, local models
│ MCP (stdio, on this computer only)
post.
│ Outlook object model (COM) or IMAP/SMTP
your mailboxWhy this way round?
Plenty of people want to use their AI subscription for their own tools. Anthropic does not allow the login of a Claude subscription to be used inside other programs. post. turns it around: post. does not call the AI, your AI app calls post. Your subscription stays in the official app, post. only supplies the tools. That is within the rules and works with any app that speaks MCP.
Related MCP server: Mailbridge MCP
What happens to my mail?
post. itself runs on your computer and sends nothing to a server of its own. But whatever your AI reads from your mail, the AI app sends to its provider (Anthropic, OpenAI …), exactly as if you had pasted the text into the chat. With a local model everything stays in house.
Installation
Windows (recommended)
Download
post.exefrom this repository's releases page and double-click it. For new programs Windows often shows "Windows protected your PC": click More info and then Run anyway.Setup opens in your browser. post. finds your Outlook, Thunderbird and your AI apps by itself.
Pick your mailboxes, set the permissions, pick your AI app. post. copies itself to
%LOCALAPPDATA%\Programs\post\; you can delete the file you downloaded afterwards.Quit the AI app completely and open it again. For Claude Desktop that means: right-click the Claude icon in the notification area at the bottom right, choose Quit.
Try it: "Which mailboxes can you see?"
Alternatively, for Claude Desktop: double-click post-<version>-windows.mcpb (a desktop extension). With classic Outlook you do not have to fill in anything there. With "Allow sorting and deleting" the AI may move, delete and mark mail.
macOS and Linux
pipx install gg-post # or: uv tool install gg-post
post setupThere is an extension for Claude Desktop here too: double-click post-<version>-uv.mcpb. It carries the source with it and sets itself up on first start; for that, uv has to be installed (brew install uv or curl -LsSf https://astral.sh/uv/install.sh | sh). The first start then takes a few seconds longer, because uv fetches the dependencies.
What does post. detect by itself?
Program | How post. uses it | Password needed? |
Outlook (classic), Office 2016 to 2024 or Microsoft 365 Apps | Drives Outlook directly. Every account, shared mailbox and PST archive of the default profile | No |
Outlook (new) | Cannot be driven from outside. post. connects to the same mailbox over IMAP | Yes |
Thunderbird | Takes host, port and user name from your profile | Yes |
Apple Mail and everything else | Enter your address, post. looks up the server settings itself | Yes |
post. picks the route by itself, and it picks the one that carries without you lifting a finger: first an address you entered explicitly, then classic Outlook (which needs no password), then Thunderbird with the server settings from its profile. If Thunderbird is your default mail program, it comes first. The other mailboxes it found stay reachable as further accounts. If post. finds nothing that carries by itself, it says in plain words what is missing instead of sitting there empty (post doctor shows the chosen route).
post. looks up the server settings the way Thunderbird does: the provider's autoconfig, the Mozilla ISPDB, the MX record (your own domain at IONOS, Strato, Google …), DNS SRV records, a built-in list, and guessing last. For Gmail, GMX, WEB.DE, Telekom, iCloud and Yahoo, setup tells you directly what you have to enable there (app password, IMAP access).
Tools for the AI
Tool | What it does |
| Connected mailboxes and the allowed actions |
| Folders with total and unread counts |
| Lists or searches mail, across all mailboxes and, on request, all folders ( |
| A whole mail with recipients and attachment names, on request with the full thread (quotes removed) |
| Text from attachments: PDF, Word, Excel, text, CSV, HTML, .eml |
| A new draft, reply or forward with attachments. In Outlook with your signature, on request straight as an open window. A revision replaces the earlier draft |
| Deletes a draft (drafts only) |
| Sort and mark, only when enabled |
| Deletes a mail into the trash, or for good when you explicitly ask. Only when sorting is enabled |
| Only visible once you have enabled sending |
| Opens setup in the browser |
Examples:
"Summarise my unread mail from today."
"What did the last customer want? Draft a reply and open it in Outlook."
"Read the order in the PDF attachment and check whether quantity and date match our quote."
"Forward the invoice from supplier X to accounting@company.com."
Permissions
Permission | Default | Meaning |
Read and search | always on | Nothing is marked as read |
Create drafts | always on | Lands in "Drafts" or opens in Outlook; you send it yourself |
Sort, delete and mark | off | Sorting into folders, deleting to the trash, marking as spam |
Send on its own | off | The AI is instructed to ask first. post. cannot enforce that |
Deleting always goes to the trash first, so you can get the mail back. Erasing for good is a separate, explicit request. post. cannot create mail rules or server-side filters: IMAP has no concept of them, and Gmail filters can only be set in Gmail itself.
Security
Mail is foreign content. Every mail body and every attachment is fenced for the AI between markers carrying a random per-start id; fence look-alikes and invisible control characters are stripped, in subjects and previews too. The AI is instructed never to act on instructions found in mail without asking you first.
Passwords live only in the Windows Credential Manager, the macOS Keychain or the Linux Secret Service. None of them is in the configuration file.
Audit log:
audit.login the settings folder records which tool ran when. Metadata only, never contents.Setup in the browser runs on
127.0.0.1only, with a random port and a one-time token, guarded against DNS rebinding and other web pages.When registering with AI apps, post. makes a backup of each settings file first and leaves other entries untouched.
Outlook security prompt: on some company PCs Outlook asks "A program is trying to access e-mail address information". Allow it. To settle it permanently: File > Options > Trust Center > Trust Center Settings > Programmatic Access (needs administrator rights).
Commands
post Double-click: setup. Started by an AI app: the server.
post setup Setup in the browser
post doctor Check the connections
post detect Detected mail programs and AI apps as JSON
post register Register with AI apps (claude_desktop, claude_code, codex)
post uninstall Remove from every AI app (--all: settings and passwords too)
post serve MCP server over stdioSettings live in %APPDATA%\post\config.json (Windows), ~/Library/Application Support/post/ (macOS) or ~/.config/post/ (Linux). For special cases: POST_CONFIG_DIR, POST_EMAIL, POST_PASSWORD, POST_ALLOW_SEND, POST_ALLOW_MODIFY (the last two can only switch permissions on once a setup has been saved).
For local models and other MCP clients
{ "mcpServers": { "post": { "command": "C:\\Users\\YOU\\AppData\\Local\\Programs\\post\\post.exe", "args": ["serve"] } } }Limits
Outlook.com, Hotmail and Microsoft 365 no longer allow IMAP with a password. Those accounts go through classic Outlook or through Thunderbird.
With classic Outlook, post. uses the default profile.
Scanned PDFs without text and the old Office formats (.doc, .xls) cannot be read.
Drafts cannot attach files of their own yet (forwarding with the original attachments does work).
Mail rules and server-side filters are not possible over IMAP.
Calendar and contacts are not in yet.
Development
pip install -e ".[dev]"
pytest # a real IMAP test server (pymap) and a rebuilt Outlook
python scripts/demo_setup.py # setup with sample data in the browser
python scripts/demo_setup.py --shots out # screenshots
pyinstaller packaging/pyinstaller/post.spec --noconfirm # post.exe
python scripts/build_mcpb.py windows # the Claude Desktop extensionThe IMAP tests need pymap, which needs POSIX signal handlers, so they run on Linux and macOS and are skipped on Windows. tests/test_stdio_smoke.py needs no mailbox and therefore also checks the built post.exe (set POST_BINARY).
The Windows build and the release files are produced automatically by GitHub Actions on every v* tag.
src/ggpost/
backends/outlook_com.py Outlook over COM, in its own STA thread
backends/imap.py IMAP/SMTP
detect/clients.py Outlook (registry), Thunderbird (prefs.js), default mail program
detect/autoconfig.py finding the server settings for an address
detect/aiapps.py finding and registering with Claude Desktop, Claude Code, Codex
extract.py text from PDF, Word, Excel
setup/ setup in the browser
server.py the MCP toolsSome German stays on purpose: the folder names post. matches (Posteingang, Gelöschte Elemente), the openers of a quoted history (Von:, Am … schrieb), the subject prefixes (AW:, WG:) and the date words heute and gestern. They are how German mailboxes and German mail programs actually write things, so they are matching rules, not interface text.
Licence
AGPL-3.0. A tool by gedacht.gemacht. Fonts: DM Sans and JetBrains Mono, both under the SIL Open Font License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any IMAP/SMTP mailbox to Claude & ChatGPT: search, read, sort, draft. Sends only with OK.
Email for AI agents: read, search and send from your Gmail, Outlook, Yahoo, iCloud or IMAP inbox.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Your mailboxes in ChatGPT and Claude: Gmail, iCloud, Fastmail, any IMAP. Passwords stay yours.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to read, search, compose, and send emails by connecting to any IMAP/SMTP provider. It supports comprehensive mailbox management, including draft handling and message deletion, directly through natural language.10239 npm11MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.194 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and manage email via IMAP, and send emails with attachments via SMTP, using natural language commands.429 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read, send, organize, and search emails across multiple IMAP/SMTP mailboxes.795 npmMIT