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 (6 hours 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
Checks we ran (15)
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (1)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Malware scan in Supply Chain SecurityNo 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.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
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_remove_list_entry Remove List Entry ~63
Remove an entry from a per-user allow or deny list (matches the normalized value).
| Name | Type | Req | Description |
|---|---|---|---|
| listType | string | yes | – |
| userId | string | yes | User ID (UUID or username) |
| value | string | yes | Email address or domain to remove |
No output schema declared.
No examples provided.
imap_rename_folder Rename Folder ~58
Rename a folder/mailbox in an IMAP account
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| newName | string | yes | New name for the folder |
| oldName | string | yes | Current name of the folder |
No output schema declared.
No examples provided.
imap_reply_to_email Reply To Email ~95
Reply to an existing email
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| attachments | array | – | Email attachments |
| folder | string | – | Folder containing the original email |
| html | string | – | HTML reply content |
| replyAll | boolean | – | Reply to all recipients |
| text | string | – | Plain text reply content |
| uid | number | yes | UID of the email to reply to |
No output schema declared.
No examples provided.
imap_reset_circuit_breaker Reset Circuit Breaker ~74
Manually reset the circuit breaker for an account back to CLOSED with zero failure count. Use when the breaker has tripped due to transient errors and you don't want to wait for the timeout-based HALF_OPEN transition. Returns the breaker's previous state for diagnostics.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_reset_metrics Reset Metrics ~27
Reset connection metrics for an account
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
No output schema declared.
No examples provided.
imap_reset_smtp_metrics Reset SMTP Metrics ~40
Reset SMTP metrics for an account (or all accounts if omitted).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Account ID (omit to reset all) |
No output schema declared.
No examples provided.
imap_results Results ~198
Manage cached MCP tool results (resource-handle pattern). Use action='get' to page through a stored result, action='list' to see what's cached, action='delete' to remove one, action='persist' to keep a temp result for future sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation to perform |
| includeAttachments | boolean | – | Include attachment metadata in action='get' response |
| limit | integer | – | Page size for action='get' (default 50, max 200) |
| listLimit | integer | – | Max rows for action='list' (default 20) |
| offset | integer | – | Row offset for action='get' (default 0) |
| resultId | string | – | Result handle (required for get/delete/persist) |
| storageType | string | – | Filter by storage type in action='list' |
| toolName | string | – | Filter by originating tool name in action='list' |
No output schema declared.
No examples provided.
imap_scan_account_spam Scan Account Spam ~176
Scan entire IMAP account for spam using UserCheck, checking all folders
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | IMAP account ID |
| allowPublicDomains | boolean | – | Allow public email domains |
| checkBlocklisted | boolean | – | Flag blocklisted email addresses |
| checkDisposable | boolean | – | Flag disposable email addresses |
| checkMx | boolean | – | Check MX records |
| checkRoleAccount | boolean | – | Flag role-based email accounts |
| maxEmailsPerFolder | number | – | Max emails to check per folder |
| useCache | boolean | – | Use cached results if available (a sender is checked once across folders/runs within the cache TTL) |
| userId | string | yes | User ID — either canonical user_id UUID or username from the users table (must have active UserCheck API key). |
No output schema declared.
No examples provided.
imap_scan_account_spam_start Scan Account Spam Start ~235
Start a resumable account-wide spam scan (UserCheck) as a tracked job. Scans every folder, dedupes senders to unique addresses, and checks each once (cached senders cost no API call). Returns the full summary if it completes within ~30s, otherwise a jobId to poll/resume/cancel. Unlike imap_scan_account_spam this has no 1000-sender cap and survives interruption.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | IMAP account ID |
| allowPublicDomains | boolean | – | – |
| budgetMs | number | – | Sync wait budget before returning a jobId (default 30000) |
| checkBlocklisted | boolean | – | – |
| checkDisposable | boolean | – | – |
| checkMx | boolean | – | – |
| checkRoleAccount | boolean | – | – |
| maxEmailsPerFolder | number | – | Max emails to sample per folder for sender extraction |
| useCache | boolean | – | Skip senders already in spam_cache (default true) |
| userId | string | yes | User ID (UUID or username) with an active UserCheck API key |
No output schema declared.
No examples provided.
imap_scan_message_domains Scan Message Domains ~97
Extract and validate all domains from an email message against DNS firewall
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| autoMarkSpam | boolean | – | Move the message to the spam folder if malicious domains found (default: false) |
| folderName | string | yes | Folder name |
| spamFolder | string | – | Destination folder when autoMarkSpam is true (default: Junk) |
| uid | number | yes | Message UID |
No output schema declared.
No examples provided.
imap_scan_messages_spam Scan Messages Spam ~355
Scan a block of messages for spam with up to three independently-toggleable engines and the per-user allow/deny lists. checkSender = UserCheck sender reputation; checkDomains = DNS firewall over all domains; checkLinks = LinkCheck over every embedded URL (flags DNS-blocked link domains, URL shorteners, and raw-IP hosts). Allowlisted senders are never flagged; denylisted always. Optional action moves flagged messages to a Junk folder (safe/reversible) or flags them — it never sets \Deleted.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| action | string | – | Action on flagged messages: report (default), move (to spamFolder), or flag (\Flagged) |
| allowPublicDomains | boolean | – | – |
| checkBlocklisted | boolean | – | – |
| checkDisposable | boolean | – | – |
| checkDomains | boolean | – | Run the DNS firewall over all domains (headers + body) |
| checkLinks | boolean | – | Run LinkCheck over every embedded URL |
| checkMx | boolean | – | – |
| checkRoleAccount | boolean | – | – |
| checkSender | boolean | – | Run UserCheck sender-reputation (needs an API key) |
| folder | string | – | Folder to scan (default: INBOX) |
| limit | number | – | Max most-recent messages when uids omitted (default 50, cap 200) |
| spamFolder | string | – | Destination folder for action=move (default: Junk) |
| uids | array | – | Specific UIDs; omit to scan the most recent messages |
| useCache | boolean | – | Use the UserCheck spam_cache (default true) |
| userId | string | yes | User ID (UUID or username) |
No output schema declared.
No examples provided.
imap_score_email_confidence Score Email Confidence ~71
Analyze email headers to detect spoofing and calculate confidence score (-100 to +100). Returns detailed breakdown of scoring rules, flags, and recommendation.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder name |
| uid | number | yes | Email UID to analyze |
No output schema declared.
No examples provided.
imap_search_cache Search Cache ~243
Fast SQL-backed search against the local header cache. Modes: by_domain (rows where from_domain matches), by_address (exact from_address match), group_by_sender (top-N senders by message count), fulltext (FTS5 ranked search over subject + sender name/address — for partial-recall queries; no message bodies are searched). Returns an explicit cache_miss error for a folder that has not been synced (see imap_sync_folder_cache).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | yes | Folder name |
| limit | integer | – | Max rows. Default 50, hard cap 1000. |
| mode | string | yes | by_domain: rows for one domain. by_address: rows for one exact address. group_by_sender: top-N senders by message count. fulltext: FTS5 ranked search over subject + sender (value = query text). |
| since | string | – | Lower bound: relative ("90d", "24h") or ISO date |
| value | string | – | Domain (by_domain), address (by_address), or query text (fulltext) — required for those modes |
No output schema declared.
No examples provided.
imap_search_emails Search Emails ~384
Search for emails in a folder. Default limit is 50. Inline mode (default for small results) caps at 100 to prevent token overflow; set responseMode='handle' or 'file' to return a resultId for larger sets (up to 10,000). Handle results are paged through imap_results (action='get').
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| before | string | – | Search emails before date (YYYY-MM-DD) |
| body | string | – | Search in body text |
| flagged | boolean | – | Filter by flagged status |
| folder | string | – | Folder name (default: INBOX) |
| from | string | – | Search by sender |
| limit | number | – | Maximum number of results. Capped at 100 in inline mode, 10,000 in handle/file mode. |
| 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… |
| seen | boolean | – | Filter by read/unread status |
| since | string | – | Search emails since date (YYYY-MM-DD) |
| 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… |
| subject | string | – | Search by subject |
| to | string | – | Search by recipient |
| unreadOnly | boolean | – | Show only unread emails (convenience parameter, same as seen=false) - Issue #82 |
No output schema declared.
No examples provided.
imap_send_email Send Email ~797
Send an email via SMTP and (by default) append the message to the IMAP Sent folder. Sent folder resolution: cache → SPECIAL-USE \Sent flag → provider preset → fallback name probe. Gmail accounts skip the APPEND by default because Gmail server-copies sent messages; pass forceAppendToSent=true to override. Bcc is preserved in the Sent copy per RFC 5322 §3.6.3. Attachment input — pick one form per file: (1) `attachments` (inline base64) when the file lives in a sandbox the server cannot read (Claude Desktop Workspace, Claude.ai code sandbox, remote host); (2) `attachmentPaths` when the file is on the same host as this server and inside the configured allow-list; (3) `stagedAttachmentIds` only for files > ~10 MB that need chunked upload.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID to send from |
| appendToSent | boolean | – | Append the sent message to the IMAP Sent folder after a successful SMTP send. Default true. |
| attachmentContentTypes | array | – | Parallel array to attachmentPaths overriding the detected Content-Type. Use "" or omit an entry to keep the detected value. |
| attachmentFilenames | array | – | Parallel array to attachmentPaths overriding the basename used as filename. Use "" or omit an entry to keep the basename. |
| attachmentPaths | array | – | PATH FORM (preferred when the file is on the same host as this server). Array of absolute file paths. The server reads, validates, and encodes the files internally. Each path must resolve inside one… |
| attachments | array | – | INLINE FORM (preferred when the file is not on the server host). Each attachment carries its bytes inline as base64 in the `content` field. One round-trip, no allow-list, no staging. This is the righ… |
| bcc | – | – | BCC recipients |
| cc | – | – | CC recipients |
| forceAppendToSent | boolean | – | Append even on accounts where auto-detection would skip (e.g. Gmail). Default false. |
| html | string | – | HTML content |
| includeSignature | boolean | – | Append the account signature (set via imap_set_account_signature) to the body. Default true. |
| isReply | boolean | – | Set the \Answered flag on the Sent copy when true. |
| replyTo | string | – | Reply-to address |
| sentFolderOverride | string | – | Force a specific Sent folder name, bypassing auto-detection. |
| stagedAttachmentIds | array | – | STAGED FORM (for large files or streaming uploads). Array of stagingIds returned from imap_attachment_stage_finalize. Use this only when the file exceeds the inline size ceiling (~10 MB) and is not o… |
| subject | string | yes | Email subject |
| text | string | – | Plain text content |
| to | – | yes | Recipient email address(es) |
No output schema declared.
No examples provided.
imap_server_reload Server Reload ~157
Reset the server's runtime state without restarting Claude Desktop: close pooled IMAP and SMTP connections and clear the in-memory IMAP capabilities cache. Connections reconnect lazily on the next operation — useful after changing account settings on the server, or when connections have gone stale. NOTE: this does NOT reload configuration, environment variables, or the tool list, and never touches the database or stored data; picking up config/env changes or a server upgrade still requires a full restart.
| Name | Type | Req | Description |
|---|---|---|---|
| clearCapabilitiesCache | boolean | – | Clear the cached IMAP server capabilities (default true) |
| disconnectImap | boolean | – | Close all pooled IMAP connections (default true) |
| disconnectSmtp | boolean | – | Close all pooled SMTP connections (default true) |
No output schema declared.
No examples provided.
imap_set_account_signature Set Account Signature ~119
Set the per-account email signature appended to outgoing messages (plain text and/or HTML). Pass clear:true to remove the signature. The signature is added after the body under the standard "-- " delimiter; imap_send_email includeSignature:false suppresses it for a single send.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| clear | boolean | – | Remove the signature (ignores text/html) |
| html | string | – | HTML signature (optional; text is used for plain-text parts) |
| text | string | – | Plain-text signature |
No output schema declared.
No examples provided.
imap_set_email_priority Set Email Priority ~166
Set the priority (high / normal / low) of one or more messages. Because IMAP messages are immutable, this is stored as a custom IMAP keyword ($Priority-High / $Priority-Low) via STORE, not by rewriting the X-Priority header; "normal" clears the keyword. Some servers may not allow custom keywords — the result reports whether the server accepted it. Real priority headers on outgoing mail are set by imap_send_email.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder containing the messages (default: INBOX) |
| priority | string | yes | Priority level: 'high', 'normal' (clears the keyword), or 'low' |
| uids | array | yes | UIDs to update |
No output schema declared.
No examples provided.
imap_share_account Share Account ~56
Share an account with another user (MSP feature)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID to share |
| role | string | – | Access role |
| targetUserId | string | yes | User ID to share with |
No output schema declared.
No examples provided.
imap_subscribe_mailbox Subscribe Mailbox ~50
Subscribe to a mailbox (RFC 9051 SUBSCRIBE command)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| mailboxName | string | yes | Name of the mailbox to subscribe to |
No output schema declared.
No examples provided.
imap_sync_folder_cache Sync Folder Cache ~114
Populate the local message header cache for one folder. Idempotent: subsequent calls only fetch new UIDs since the last sync. Returns row counts + duration. UIDVALIDITY change triggers a full resync. imap_search_cache returns results only for folders that have been synced here.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | yes | Folder name (e.g. "INBOX") |
| fullResync | boolean | – | Force full resync (drops existing rows). Default false. |
No output schema declared.
No examples provided.
imap_test_account Test Account ~116
Test an existing account's IMAP connectivity using its stored credentials. Spawns a one-shot connection that does not affect the persistent connection pool or circuit breaker state. Returns folder count and INBOX message count on success, or a structured error (TLS / auth / DNS / timeout) on failure with a duration in ms. Useful immediately after imap_add_account_with_provider or imap_add_account_auto to verify credentials before relying on the account.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID to test (from imap_list_accounts). |
No output schema declared.
No examples provided.
imap_test_categories Test Categories ~149
Dry-run the Quick Categories against a folder WITHOUT moving any email: reports coverage (% that would be categorized), per-category counts + destination, which keyword triggered each match, emails matching multiple categories (conflicts), and the uncategorized set. Helps tune keywords ahead of imap_apply_categories.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | – | Folder to test against (default: INBOX) |
| limit | number | – | Max most-recent emails to test (default 200, cap 1000) |
| sampleSize | number | – | Max rows to include in each sample list (default 50) |
| unreadOnly | boolean | – | Test only unread emails |
No output schema declared.
No examples provided.
imap_test_quad9_dns Test Quad9 DNS ~157
Verify Quad9 DNS threat-blocking is active. Resolves a clean control domain (should resolve) and a blocked-test domain (should be NXDOMAIN/empty when filtering is on) via Quad9 DNS-over-HTTPS, then reports a derived pass/fail. There is no standardized public Quad9 "blocked" test host, so pass a blockedTestDomain you know Quad9 blocks for a definitive result.
| Name | Type | Req | Description |
|---|---|---|---|
| blockedTestDomain | string | – | Domain expected to be blocked when filtering is active (default: malware.wicar.org) |
| controlDomain | string | – | Clean domain expected to resolve (default: www.google.com) |
| timeoutMs | number | – | Per-query timeout in ms (default: 5000) |
No output schema declared.
No examples provided.
imap_test_sent_folder Test Sent Folder ~95
Diagnose Sent folder resolution for an account. Returns the resolved folder name, the resolution method (cache, special_use, preset, fallback, auto_created, failed), whether the cache was hit, and whether the account would skip APPEND under default settings (Gmail server-copy behavior).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| invalidateCache | boolean | – | Force a fresh resolution by clearing the cache entry first. |
No output schema declared.
No examples provided.
imap_test_smtp Test SMTP ~121
Probe SMTP connectivity for an account without sending. Returns TLS version & cipher, certificate validity & expiry, server greeting, EHLO capabilities, AUTH methods, RTT, auth pass/fail, and provider-aware guidance for known auth-failure patterns (Gmail app passwords, Outlook app passwords, etc.). Use 'verbose' to include the raw SMTP transcript.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| testAuth | boolean | – | Attempt AUTH after connect. Default true. |
| verbose | boolean | – | Include the raw SMTP transcript in the response. |
No output schema declared.
No examples provided.
imap_unshare_account Unshare Account ~43
Revoke account access from a user
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| userId | string | yes | User ID to revoke access from |
No output schema declared.
No examples provided.
imap_unsubscribe_mailbox Unsubscribe Mailbox ~52
Unsubscribe from a mailbox (RFC 9051 UNSUBSCRIBE command)
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Account ID |
| mailboxName | string | yes | Name of the mailbox to unsubscribe from |
No output schema declared.
No examples provided.
imap_update_skills Update Skills ~192
Apply skill updates from public GitHub for explicitly named skills. Fetches SKILL.md + version.json from raw.githubusercontent.com, writes to ~/.claude/skills/imap-mcp-pro/{name}/, preserves files when the on-disk version is already at or ahead of remote unless force=true. Skills not present in the bundled manifest are rejected (the manifest is the allowlist). imap_check_skill_updates reports what would change before any update is applied.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | If true, overwrite even when on-disk version >= remote. Default: false. |
| ref | string | – | GitHub ref (branch, tag, or commit SHA). Default: "main". |
| skills | array | yes | Skill names to update (must be in the bundled manifest). Required and non-empty. |
| timeoutMs | integer | – | Network timeout per file in milliseconds. Default: 10000. |
No output schema declared.
No examples provided.
imap_update_subscription_category Update Subscription Category ~83
Update the category of a subscription (marketing, newsletter, promotional, transactional, other). Helps organize subscriptions.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | New category |
| senderEmail | string | yes | Sender email address |
| 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_update_subscription_notes Update Subscription Notes ~82
Add or update notes for a subscription. Useful for tracking why you subscribed, unsubscribe difficulty, etc.
| Name | Type | Req | Description |
|---|---|---|---|
| notes | string | yes | Notes text |
| senderEmail | string | yes | Sender email address |
| 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.
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.
What did VerifyMCP test on the IMAP MCP Pro server?
VerifyMCP ran 15 checks on IMAP MCP Pro, covering Known CVEs, Install scripts, Dependency health, Source repository and 11 more. One item could not be completed, a gap on our side rather than a finding about IMAP MCP Pro: Malware scan. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.