IMAP MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| imap_add_accountB | Add a new IMAP account configuration |
| imap_update_accountA | Update an existing IMAP account. Useful for fixing SMTP settings without removing and re-adding the account. |
| imap_list_accountsA | List all configured IMAP accounts |
| imap_remove_accountB | Remove an IMAP account configuration |
| imap_connectC | Connect to an IMAP account |
| imap_disconnectB | Disconnect from an IMAP account |
| imap_test_accountA | Test an existing account connection without re-entering credentials. Validates IMAP connectivity and returns folder count and message count. |
| imap_search_emailsA | Search for emails matching criteria (sender, recipient, subject, body text, date range, read/flagged status). Use this to FIND messages when you know something about them but not their UID — e.g. "emails from amazon last week", "unread invoices". By default searches a single folder (INBOX). Set searchAllFolders=true to scan every mailbox at once — this catches messages filed away by rules (e.g. a receipt routed to a custom folder); Trash/Spam/Drafts are skipped unless you opt in. Returns lightweight headers (uid, from, subject, date, and folder when searching across folders); call imap_get_email with a returned uid + folder to read full content. For the newest messages without criteria, prefer imap_get_latest_emails. |
| imap_get_emailA | Read the FULL content of a single email by its UID (body, sender/recipients, date, attachment list, optional raw headers and text-attachment previews). By default the body is returned as clean Markdown in markdownContent and raw HTML is omitted so it never crosses the boundary; set bodyFormat to "html" for the legacy raw htmlContent, or "text" for plain text only. Use after imap_search_emails or imap_get_latest_emails gives you a uid. Body text is truncated to maxContentLength to protect the context window — raise it for long messages. To fetch attachment bytes, use imap_download_attachment. |
| imap_upload_fileA | Upload a file to the server for use as an email attachment. Returns a path that can be used with imap_send_email attachments. This allows sending large attachments without hitting context window limits. Max size: 26214400 bytes (configurable via IMAP_MAX_UPLOAD_SIZE). Uploads are auto-deleted after 86400000 ms (configurable via IMAP_UPLOAD_TTL_MS). |
| imap_download_attachmentA | Download a single attachment from an email (folder + uid + attachment filename/contentId, as listed by imap_get_email). Images are returned inline for viewing; PDFs are saved and their text is extracted inline (extractText); other files are saved to the shared downloads directory (or savePath). Use when the user wants the actual file contents, not just the message body. |
| imap_mark_as_readC | Mark an email as read |
| imap_mark_as_unreadB | Mark an email as unread |
| imap_delete_emailA | Delete ONE email by folder + uid (moves to Trash or expunges, server-dependent). Destructive and not easily undone — confirm the user means this specific message. To remove many at once use imap_bulk_delete (known uids) or imap_bulk_delete_by_search (by criteria, supports dryRun). To file an email away instead of deleting, use imap_move_email. |
| imap_move_emailA | Move an email from one folder to another (e.g., INBOX to Taxes, or INBOX to Archive). Optionally creates the destination folder if it does not exist. |
| imap_bulk_deleteA | Delete multiple emails at once with chunking and auto-reconnection. Processes deletions in batches to prevent connection timeouts. |
| imap_bulk_delete_by_searchA | Search for emails matching criteria and delete them all. Useful for cleaning up spam or unwanted emails. |
| imap_get_latest_emailsA | Get the most recent emails from a folder, newest first. Use this for "what just came in?" / "show my latest inbox messages" when no search filter is needed. Returns lightweight headers (uid, from, subject, date); read a specific one with imap_get_email. To filter by sender/subject/date instead, use imap_search_emails. |
| imap_send_emailA | Compose and send a NEW email via the account's SMTP server (a copy is saved to Sent unless disabled). Use for fresh outbound messages. To respond to an existing message use imap_reply_to_email (keeps threading); to pass a message on use imap_forward_email; to store without sending use imap_save_draft. Supports to/cc/bcc, text and/or HTML, and attachments by base64 content or by file path (see imap_upload_file for large files). |
| imap_save_draftB | Save an email as a draft in the Drafts folder (no send). Takes the same fields as imap_send_email. |
| imap_reply_to_emailA | Reply to an existing email identified by folder + uid. Automatically sets the recipient to the original sender, prefixes the subject with "Re:", and preserves threading (In-Reply-To/References). Set replyAll to also include the original recipients. Use this instead of imap_send_email whenever the user is responding to a message already in a mailbox. |
| imap_forward_emailA | Forward an existing email (folder + uid) to new recipients, quoting the original message and headers. Optionally include the original attachments. Use when the user wants to pass an existing message on to someone else; use imap_reply_to_email instead to respond to the sender. |
| imap_find_thread_messagesA | Find messages in |
| imap_find_email_by_message_idA | Locate an email by its RFC822 Message-ID across folders and return its current { folder, uid } plus basic envelope. Robust to the message having been moved or archived (IMAP UIDs are folder-relative). Pass the returned folder + uid to imap_reply_to_email or imap_get_email. Without |
| imap_list_foldersA | List all folders/mailboxes for an account (names, hierarchy delimiter, attributes). Use this first to discover exact folder names before searching, moving, or creating subfolders — folder naming varies by provider (e.g. "Archive" vs "[Gmail]/All Mail" vs "INBOX.Archive"). |
| imap_folder_statusC | Get status information about a folder |
| imap_create_folderA | Create a new IMAP folder/mailbox. Most servers also create any missing parent folders (e.g. creating "Archives/2026/2026-05" auto-creates "Archives" and "Archives/2026"). Returns success even if the folder already exists. |
| imap_get_unread_countA | Count unread (unseen) emails per folder, plus a total. Use for "how many unread do I have?" overviews. Defaults to all folders; pass a folders list to limit scope and speed it up. |
| imap_check_spamA | Check emails in a folder for spam/disposable email domains. Returns spam analysis and domain statistics. |
| imap_delete_spamB | Find and delete emails from known spam/disposable email domains. |
| imap_domain_statsB | Get statistics about sender domains in a folder. Useful for identifying bulk senders or spam patterns. |
| imap_add_spam_domainA | Add a domain to the custom spam list. Emails from this domain will be flagged as spam. |
| imap_remove_spam_domainC | Remove a domain from the custom spam list. |
| imap_add_whitelist_domainA | Add a domain to the whitelist. Emails from whitelisted domains will never be flagged as spam. |
| imap_list_spam_domainsA | List all known spam domains (built-in and custom). |
| imap_delete_by_domainB | Delete all emails from a specific domain. Useful for cleaning up unwanted newsletters or spam. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nikolausm/imap-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server