IMAP MCP Pro
MCPB · IMAP-MCP-PRO-2.39.0.MCPB
Production IMAP & SMTP for Claude: multi-account email search, triage, send, and spam checks.
Available components
Last scanned (40 minutes ago)
Scores higher than 94% of MCPB servers
Category Communication
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security24
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs were checked across the 178 of 178 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- 47 of 178 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (PolyForm-Noncommercial-1.0.0) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 15 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 14624 tokens (~111/item across 131 items; 131 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 13 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 131 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +1
- Stability: 0.97 → pass security
- 2 Nov 26 −1
- Stability: pass → 0.97 functional
- 27 Oct 26 +1
- Stability: 0.97 → pass security
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +2
- MCP protocol: fail → pass ▲ functional
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/Temple-of-Epiphany/imap-mcp-pro/releases/download/v2.39.0/imap-mcp-pro-2.39.0.mcpb
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
Dependencies 178 packages
| Packages resolved | 178 |
|---|---|
| Stale | 47 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
imap_execute_unsubscribe Execute Unsubscribe ~139
Execute unsubscribe request for one or more senders. Supports HTTP GET/POST and mailto methods. Optional dry-run mode for testing. Updates database with execution results.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Account ID (required for mailto unsubscribe) |
| dryRun | boolean | – | Dry run mode - validate but do not execute |
| method | string | – | Unsubscribe method (auto detects from link) |
| senderEmails | array | yes | Array of sender email addresses to unsubscribe from |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_export_account Export Account ~171
Export the entire account to .eml files, mirroring the full mailbox folder structure under exports/[subfolder]/ (or directly under destPath). Skips non-selectable folders (\Noselect). Each folder is capped by `perFolderLimit` (default 1000). Fetched in chunks. Local only — can be large.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| destPath | string | – | Absolute path to write DIRECTLY into (full mailbox structure mirrored under it). Must be inside an allowed export root and outside ~/.imap-mcp. Omit to use the managed outbox. |
| perFolderLimit | number | – | Max messages to export per folder (default 1000) |
| subfolder | string | – | Optional top-level subfolder to group this export |
No output schema declared.
No examples provided.
imap_export_email Export Email ~259
Export one or more messages to standard .eml files on the server host (download & save). .eml is the raw RFC822 source — lossless, opens in Outlook/Thunderbird/Apple Mail, with attachments and inline images preserved. Files are written under the per-user outbox (~/.imap-mcp/users/{userId}/outbox/exports/), optionally grouped in a named subfolder. Pass destPath to write directly to a path outside the MCP (e.g. ~/Downloads/sent-mail). All processing is local.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| destPath | string | – | Absolute path to write .eml files DIRECTLY into (e.g. /Users/you/Downloads/sent-mail). Must be inside an allowed export root (default: your home dir; set IMAP_MCP_ALLOWED_EXPORT_DIRS to restrict) and… |
| folder | string | – | Folder containing the messages (default: INBOX) |
| subfolder | string | – | Optional subfolder name to group the files (sanitized to a single path segment) |
| uids | array | yes | UIDs of the messages to export |
No output schema declared.
No examples provided.
imap_export_folder Export Folder ~189
Export all messages in a folder to standard .eml files on the server host, mirroring the folder hierarchy under the per-user outbox (exports/[subfolder]/{folder path}/), or directly under destPath. Capped by `limit` (default 1000; `truncated` flags when the folder held more). Lossless raw-source write. Local only.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| destPath | string | – | Absolute path to write DIRECTLY into (folder hierarchy mirrored under it). Must be inside an allowed export root and outside ~/.imap-mcp. Omit to use the managed outbox. |
| folder | string | – | Folder to export (default: INBOX) |
| limit | number | – | Maximum messages to export (default 1000) |
| subfolder | string | – | Optional top-level subfolder to group this export |
No output schema declared.
No examples provided.
imap_extract_attachments Extract Attachments ~194
Extract file attachments from a block of messages and save them to disk under the per-user outbox (exports/attachments/[subfolder]/). Skips inline images by default; optionally filter by minSizeBytes and by file extension. Filenames are sanitized and UID-prefixed to avoid collisions. Local only.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| extensions | array | – | Only extract these file extensions (e.g. ["pdf","docx"]); omit for all |
| folder | string | – | Folder containing the messages (default: INBOX) |
| includeInline | boolean | – | Include inline images/related parts (default false) |
| minSizeBytes | number | – | Only extract attachments at least this many bytes |
| subfolder | string | – | Optional subfolder under exports/attachments/ to group the files |
| uids | array | yes | UIDs of the messages to extract attachments from |
No output schema declared.
No examples provided.
imap_extract_unsubscribe_links Extract Unsubscribe Links ~277
Scan a folder for unsubscribe links and store them for subscription management. Header-first: reads each message's List-Unsubscribe header cheaply (no body download) and only falls back to a full-body fetch when a message has no header and scanBodies is on. Bounded by an internal time budget (maxDurationMs) so it always returns — on timeout it returns a partial result with truncated:true and nextUid for resuming via afterUid. For large folders, paginate with afterUid.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| afterUid | number | – | Resume: only process messages with UID greater than this (pass the previous run's nextUid). |
| folder | string | – | Folder name |
| limit | number | – | Max emails to process (default: 100) |
| maxDurationMs | number | – | Internal time budget in ms; on exceed, return a partial result with truncated:true (default 50000). |
| olderThan | number | – | Optional: Only process emails older than N days |
| scanBodies | boolean | – | On a header miss, fetch the full body to find in-body unsubscribe links (slower). Default true. |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_folder_status Folder Status ~36
Get status information about a folder
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | yes | Folder name |
No output schema declared.
No examples provided.
imap_forward_email Forward Email ~82
Forward an existing email
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder containing the original email |
| includeAttachments | boolean | – | Include original attachments |
| text | string | – | Additional text to include |
| to | – | yes | Forward to email address(es) |
| uid | number | yes | UID of the email to forward |
No output schema declared.
No examples provided.
imap_get_account_signature Get Account Signature ~33
Get the per-account email signature (plain text + HTML).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_get_attachment Get Attachment ~224
Fetch a single attachment from a message for preview or download. Text-like attachments (txt/md/csv/json/log/...) are returned inline as text (truncated at maxTextChars); images are returned inline as base64 so they can be viewed (large images are saved to disk instead); other binaries (incl. PDFs) are saved under the per-user outbox and the path is returned. Identify the attachment by filename or cid; if the message has exactly one attachment, neither is required.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| cid | string | – | Select the attachment by Content-ID (for inline images) |
| filename | string | – | Select the attachment by filename (case-insensitive) |
| folder | string | – | Folder containing the message (default: INBOX) |
| maxTextChars | number | – | Max characters to return for text attachments (default 100000) |
| save | boolean | – | Also save the attachment to the per-user outbox (always done for non-text binaries) |
| uid | number | yes | UID of the message |
No output schema declared.
No examples provided.
imap_get_capabilities Get Capabilities ~57
Query IMAP server capabilities and supported extensions (RFC 9051 CAPABILITY command)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| forceRefresh | boolean | – | Force refresh capabilities (bypass cache, default: false) |
No output schema declared.
No examples provided.
imap_get_circuit_breaker Get Circuit Breaker ~70
Inspect the per-account circuit breaker state (CLOSED / OPEN / HALF_OPEN), failure count, last failure reason, and configured thresholds/timeout. Use this to understand why operations are being blocked when imap_get_metrics shows zero failures.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_get_email Get Email ~143
Get the full content of an email (or just headers). Optionally inline the text of text-like and PDF attachments with includeAttachmentText (truncated at maxAttachmentTextChars).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name |
| headersOnly | boolean | – | Fetch only headers without body content (saves bandwidth and context space) |
| includeAttachmentText | boolean | – | Inline extracted text for text-like (txt/md/csv/json/...) and PDF attachments |
| maxAttachmentTextChars | number | – | Max characters of extracted text per attachment (default 20000) |
| uid | number | yes | Email UID |
No output schema declared.
No examples provided.
imap_get_email_priority Get Email Priority ~108
Get the resolved priority of a message: our $Priority-* keyword if set (the explicit user setting), otherwise the compose-time X-Priority / Importance / X-MSMail-Priority header, otherwise normal. The `source` field says which of keyword / header / default the answer came from.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder containing the message (default: INBOX) |
| uid | number | yes | UID of the message |
No output schema declared.
No examples provided.
imap_get_email_sizes Get Email Sizes ~203
List messages by size to find large emails — uses RFC822.SIZE (no body download, cheap even on big folders). Scan a whole folder or a specific UID set, optionally filter with minSizeBytes, sorted largest-first. The returned `uids` array can be passed straight to imap_bulk_delete_emails or imap_bulk_move_emails to clear space.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder to scan (default: INBOX) |
| limit | number | – | Max messages to return, largest first (default 100) |
| minSizeBytes | number | – | Only return messages at least this many bytes (e.g. 10485760 = 10 MiB) |
| order | string | – | Sort by size: 'desc' = largest first (default), 'asc' = smallest first |
| uids | array | – | Specific UIDs to size; omit to scan the whole folder |
No output schema declared.
No examples provided.
imap_get_largest_emails Get Largest Emails ~205
Find the largest emails across several folders at once (default: just INBOX) and return the global top-N. Uses RFC822.SIZE — no body download — so it stays cheap even across big folders. Each row is tagged with the folder it came from; results are merged and ranked by size across all folders. Unreadable/\Noselect folders are skipped and reported. Returns per-folder `uids` arrays (UIDs are only unique within a folder) ready to pass to imap_bulk_delete_emails / imap_bulk_move_emails to reclaim space.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folders | array | – | Folders to scan (default: ["INBOX"]) |
| minSizeBytes | number | – | Only consider messages at least this many bytes (e.g. 10485760 = 10 MiB) |
| topN | number | – | How many of the largest messages to return overall (default 20) |
No output schema declared.
No examples provided.
imap_get_latest_emails Get Latest Emails ~198
Get the latest emails from a folder. Pass responseMode='handle' to return a resultId for large counts instead of inlining.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| count | number | – | Number of emails to retrieve |
| folder | string | – | Folder name |
| responseMode | string | – | How the result should be returned. 'auto' (default): inline if small (<=20), handle for larger, file for huge (>500). 'inline': force full payload (only safe for small results). 'handle': force resul… |
| storageType | string | – | Storage lifetime when a handle is created. 'temp' (default): expires after the configured TTL (~2h). 'persistent': retained until you explicitly delete via imap_results action='delete'. Choose 'persi… |
No output schema declared.
No examples provided.
imap_get_mailbox_status Get Mailbox Status ~56
Get mailbox statistics without selecting it (RFC 9051 STATUS command) - more efficient than SELECT
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| mailboxName | – | yes | Mailbox name or array of mailbox names |
No output schema declared.
No examples provided.
imap_get_metrics Get Metrics ~30
Get connection metrics and health information for an account
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_get_operation_metrics Get Operation Metrics ~48
Get detailed metrics for IMAP operations
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| operationName | string | – | Specific operation name (optional, returns all if not specified) |
No output schema declared.
No examples provided.
imap_get_outbox_dir Get Outbox Dir ~165
Return the per-user attachment outbox directory path. Files written to this directory can be attached via imap_send_email's attachmentPaths field with no additional setup — the directory is always present in the resolved allow-list. The same v2.17.9 dotfile / size / filename rules apply as for any allow-listed dir; this is a sanctioned drop zone, not a special exempt zone. The directory is created lazily on first access (mode 0700) under ~/.imap-mcp/users/{userId}/outbox/ (curly braces are placeholder syntax — call this tool to get the resolved path). Use this when an agent needs to email a file it just generated on the server host, instead of base64-inlining the bytes through MCP.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
imap_get_quota Get Quota ~96
Report account storage quota — used / limit / percent — via the IMAP QUOTA extension (RFC 9208). Returns supported:false when the server does not advertise QUOTA. (A single mailbox's size is reported by imap_get_mailbox_status via STATUS=SIZE.)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| mailbox | string | – | Mailbox whose quota root to query (default: INBOX) |
No output schema declared.
No examples provided.
imap_get_smtp_metrics Get SMTP Metrics ~73
Get per-account SMTP metrics: send total, success/failure counts, retry counts (split by error category), last-send duration and timestamp, last error info. Pass no accountId to retrieve metrics for all accounts that have sent.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Account ID (omit for all accounts) |
No output schema declared.
No examples provided.
imap_get_subscription_summary Get Subscription Summary ~105
Get aggregated subscription summary. Shows all senders with unsubscribe links, email counts, categories, and unsubscribe status. Filter by category or unsubscribed status.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| sortBy | string | – | Sort by field |
| unsubscribed | boolean | – | Filter by unsubscribe status |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_get_unread_count Get Unread Count ~48
Get the count of unread emails in specified folders
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folders | array | – | List of folders to check (default: all) |
No output schema declared.
No examples provided.
imap_get_unsubscribe_links Get Unsubscribe Links ~89
Get all extracted unsubscribe links from emails. Filter by account or sender. Shows individual email details with unsubscribe links.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Filter by account ID |
| senderEmail | string | – | Filter by sender email |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_get_unsubscribe_links_for Get Unsubscribe Links For ~160
Read-only: for a block of messages (explicit UIDs, or a folder scan up to `limit`), return per message the unsubscribe links found in BOTH the List-Unsubscribe header and the body, along with sender, recipient, and subject. Does NOT write to the subscriptions database or send anything; the stored/managed flow is imap_extract_unsubscribe_links, and imap_execute_unsubscribe performs an unsubscribe.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name (default: INBOX) |
| limit | number | – | When scanning a folder, max messages to inspect (default 100) |
| uids | array | – | Specific UIDs to inspect; omit to scan the folder |
No output schema declared.
No examples provided.
imap_get_user Get User ~26
Get user details by username
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | Username to lookup |
No output schema declared.
No examples provided.
imap_get_usercheck_key Get UserCheck Key ~44
Get UserCheck API key information for a user
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | yes | User ID — either canonical user_id UUID or username from the users table. |
No output schema declared.
No examples provided.
imap_help Help ~91
Show IMAP MCP Pro capabilities and copy-paste workflow recipes, by category. Start with no argument (or category="overview") for the topic list. Categories: overview, getting-started, reading, sending, organizing, cleanup, subscriptions, security, bulk, workflows, admin. The exhaustive tool list is available from imap_list_tools.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Help topic (default: overview) |
No output schema declared.
No examples provided.
imap_import_list Import List ~128
Bulk-import addresses into an allow/deny list from CSV or vCard (.vcf — including Apple Contacts exports). Emails are extracted from the content (any CSV column; vCard EMAIL lines), normalized, and deduped.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Raw file content (CSV or vCard text) |
| format | string | – | Source format (auto-detects vCard by BEGIN:VCARD) |
| listType | string | yes | – |
| note | string | – | Optional note applied to all imported entries |
| userId | string | yes | User ID (UUID or username) |
No output schema declared.
No examples provided.
imap_list_accounts List Accounts ~26
List all IMAP accounts for current user (from MCP_USER_ID environment variable)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
imap_list_categories List Categories ~38
List all Quick Categories for a user, optionally filtered by account
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Account ID to filter by (optional) |
No output schema declared.
No examples provided.
imap_list_entries List Entries ~56
List a user's allow/deny entries (optionally filtered to one list).
| Name | Type | Req | Description |
|---|---|---|---|
| listType | string | – | Filter to allow or deny; omit for both |
| userId | string | yes | User ID (UUID or username) |
No output schema declared.
No examples provided.
imap_list_folders List Folders ~32
List all folders/mailboxes in an IMAP account
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_list_providers List Providers ~37
List all available email provider presets (Gmail, Outlook, Yahoo, etc.) with pre-configured IMAP/SMTP settings
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
imap_list_staged_attachments List Staged Attachments ~51
List staging sessions for the current user (or all users if no userId is provided and the caller is admin context). Useful for debugging and quota checks.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
No output schema declared.
No examples provided.
imap_list_subscribed_mailboxes List Subscribed Mailboxes ~43
List all subscribed mailboxes (RFC 9051 LSUB/LIST with SUBSCRIBED)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_list_tools List Tools ~143
List every MCP tool this server currently exposes, with title, description, parameter names, category and read-only/destructive hints. Generated from the registry at call time. Filter with category (one of: all, user, account, bulk, export, staging, email, folder, subscriptions, categorization, spam, dns, lists, cache, diagnostics, meta, admin, other).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter tools by category slug (default: all). One of: all, user, account, bulk, export, staging, email, folder, subscriptions, categorization, spam, dns, lists, cache, diagnostics, meta, admin, other |
No output schema declared.
No examples provided.
imap_list_unarchived_sends List Unarchived Sends ~89
List queued Sent-folder APPEND operations that failed after a successful SMTP send. These are retried automatically every 5 minutes for 24 hours. Use this tool to surface them to the user when the IMAP server has been unavailable.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Filter to one account ID |
| limit | number | – | Max entries to return (default 50) |
No output schema declared.
No examples provided.
imap_list_unsubscribe_candidates List Unsubscribe Candidates ~118
List all subscriptions with unsubscribe links. Shows sender, subject, link, method, and email count. Filter by category or unsubscribed status. Perfect for reviewing before executing unsubscribes.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| sortBy | string | – | Sort by field |
| unsubscribed | boolean | – | Filter by unsubscribe status (default: show all) |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_list_users List Users ~15
List all active users
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
imap_mark_as_read Mark As Read ~45
Mark an email as read
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name |
| uid | number | yes | Email UID |
No output schema declared.
No examples provided.
imap_mark_as_unread Mark As Unread ~46
Mark an email as unread
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name |
| uid | number | yes | Email UID |
No output schema declared.
No examples provided.
imap_mark_subscription_unsubscribed Mark Subscription Unsubscribed ~85
Mark a sender as unsubscribed in the database. Records timestamp. Useful for tracking which lists you have already unsubscribed from.
| Name | Type | Req | Description |
|---|---|---|---|
| senderEmail | string | yes | Sender email address to mark as unsubscribed |
| userId | string | yes | User ID (either canonical user_id UUID or username from the users table). Call imap_list_users for valid values. |
No output schema declared.
No examples provided.
imap_move_email Move Email ~64
Move an email to another folder (copy + delete)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| sourceFolder | string | – | Source folder name |
| targetFolder | string | yes | Target folder name |
| uid | number | yes | Email UID to move |
No output schema declared.
No examples provided.
imap_open_web_ui Open Web UI ~136
Return the URL of the embedded Web UI (account management, DNS firewall, categories, Claude Desktop auto-setup) and optionally open it in the default browser. The Web UI auto-starts when the MCP server boots; the actual port may differ from the configured default if there was a collision (probes the configured port then increments by 100 up to 10 attempts). Use this tool when the user asks to "open the web UI" or "show the dashboard".
| Name | Type | Req | Description |
|---|---|---|---|
| openInBrowser | boolean | – | When true, open the URL in the user default browser. When false (default), only return the URL. |
No output schema declared.
No examples provided.
imap_recommend_keywords Recommend Keywords ~164
Analyze a folder and return candidate category keywords for Claude to turn into recommendations: top sender domains, top senders, and frequent subject terms + bigrams — each flagged whether an existing category keyword already covers it. The server does no AI itself; it returns structured stats so the assistant can propose categories/keywords. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder to analyze (default: INBOX) |
| limit | number | – | Max most-recent emails to sample (default 500, cap 2000) |
| minCount | number | – | Ignore candidates seen fewer than this many times (default 2) |
| topN | number | – | How many candidates to return per category (default 20) |
No output schema declared.
No examples provided.
imap_remove_account Remove Account ~32
Remove an IMAP account from database
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | ID of the account to remove |
No output schema declared.
No examples provided.
imap_remove_keyword Remove Keyword ~73
Remove a custom keyword from emails
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name |
| keyword | string | yes | Keyword to remove (e.g., $Forwarded, $Junk, or custom) |
| uids | array | yes | Array of email UIDs |
No output schema declared.
No examples provided.
How do I install the IMAP MCP Pro server?
IMAP MCP Pro ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 84d0bb7d13478da5be12f4b02474d9793116caf536dacd2db00e79a605ffafb9; the commands to do that are on this page. If it does not match, do not open it.
mcpb · imap-mcp-pro-2.39.0.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
84d0bb7d13478da5be12f4b02474d9793116caf536dacd2db00e79a605ffafb9
macOS / Linux
echo "84d0bb7d13478da5be12f4b02474d9793116caf536dacd2db00e79a605ffafb9 imap-mcp-pro-2.39.0.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\imap-mcp-pro-2.39.0.mcpb).Hash -eq "84d0bb7d13478da5be12f4b02474d9793116caf536dacd2db00e79a605ffafb9"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the IMAP MCP Pro server?
IMAP MCP Pro is listed in the public MCP registry as io.github.Temple-of-Epiphany/imap-mcp-pro. Production IMAP & SMTP for Claude: multi-account email search, triage, send, and spam checks. This page covers its MCPB bundle (https://github.com/Temple-of-Epiphany/imap-mcp-pro/releases/download/v2.39.0/imap-mcp-pro-2.39.0.mcpb).
Is the IMAP MCP Pro server safe to use?
IMAP MCP Pro scores 60 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the IMAP MCP Pro server expose?
IMAP MCP Pro exposes 131 tools: imap_create_user, imap_list_users, imap_get_user, imap_db_add_account, imap_db_list_accounts, and 126 more. Their descriptions and schemas cost roughly 14,624 tokens of context every time the server is loaded.
What licence is the IMAP MCP Pro server under?
IMAP MCP Pro declares the PolyForm-Noncommercial-1.0.0 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.