Community Gmail server with auto-auth: search, read and send email via MCP.
IMAP is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
IMAP/SMTP MCP server to search, read, organize, send, reply & forward email for AI assistants
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user nikolausm-imap-mcp '--' npx -y imap-mcp-server
# 2 — ask your agent for something these tools do
# imap_add_account, imap_update_account, imap_list_accounts and 37 more
IMAP costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts IMAP as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user nikolausm-imap-mcp '--' npx -y imap-mcp-serverReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
40 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Add a new IMAP account configuration
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Friendly name for the account |
| host | string | yes | IMAP server hostname |
| port | number | no | IMAP server port (default: 993) |
| user | string | yes | Username for authentication |
| password | string | yes | Password for authentication |
| tls | boolean | no | Use TLS/SSL (default: true) |
| allowStartTLS | boolean | no | When tls is false, imapflow still opportunistically upgrades via STARTTLS if the server advertises it, validating the cert against host regardless of tls. Set to false to disable that upgrade and |
| string | no | Email address (From: header). Defaults to user if omitted | |
| smtpHost | string | no | SMTP server hostname. Defaults to IMAP host with imap.→smtp. rewrite |
| smtpPort | number | no | SMTP server port (465 for SMTPS, 587 for STARTTLS). Defaults to 587 |
| smtpSecure | boolean | no | Use implicit TLS (SMTPS). Ignored for port 587/25 which always use STARTTLS, and for port 465 which always uses implicit TLS |
| sentFolder | string | no | Explicit Sent-folder name for saving sent-mail copies (e.g. "Gesendet"). Only needed when auto-detection fails — the server must lack a \Sent SPECIAL-USE folder. Check names with imap_list_folders |
| defaultBcc | no | Optional BCC address(es) applied automatically to every outbound send, reply, forward, and draft for this account. Merged with any per-call bcc | |
| allowedFrom | array | no | Additional sender identities allowed in the From header. The account email and login are always allowed. |
Update an existing IMAP account. Useful for fixing SMTP settings without removing and re-adding the account.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | ID of the account to update |
| name | string | no | New friendly name |
| host | string | no | IMAP host |
| port | number | no | IMAP port |
| user | string | no | IMAP username |
| password | string | no | New password |
| tls | boolean | no | Use TLS for IMAP |
| allowStartTLS | boolean | no | When tls is false, set to false to also disable imapflow's opportunistic STARTTLS upgrade (see imap_add_account). Defaults to true. |
| string | no | Email address (From: header) | |
| smtpHost | string | no | SMTP hostname |
| smtpPort | number | no | SMTP port (465 for SMTPS, 587 for STARTTLS) |
| smtpSecure | boolean | no | Use implicit TLS (SMTPS). Port 587/25 always use STARTTLS regardless |
| smtpUser | string | no | SMTP username (if different from IMAP user) |
| smtpPassword | string | no | SMTP password (if different from IMAP password) |
| saveToSent | boolean | no | Save sent emails to the Sent folder |
| sentFolder | string | no | Explicit Sent-folder name for saving sent-mail copies (e.g. "Gesendet"). Overrides auto-detection; pass an empty string to clear the override and re-enable auto-detection. Check names with imap_list_f |
| defaultBcc | no | Optional BCC address(es) applied automatically to every outbound message for this account. Pass an empty string to clear | |
| allowedFrom | array | no | Additional sender identities allowed in the From header. Pass an empty array to clear. |
List all configured IMAP accounts
No parameter schema on file.
Remove an IMAP account configuration
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | ID of the account to remove |
Connect to an IMAP account
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | no | Account ID to connect to |
| accountName | string | no | Account name to connect to |
Disconnect from an IMAP account
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID to disconnect from |
Test an existing account connection without re-entering credentials. Validates IMAP connectivity and returns folder count and message count.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID to test |
Note: on some servers a 'flagged' or starred message carries a custom keyword (e.g. an Open-Xchange color label or Apple's $MailFlagBit*) instead of, or in addition to, the \Flagged system flag. After any flagged search, inspect each result's customKeywords field before concluding a message is or…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name to search (default: INBOX). Ignored when searchAllFolders is true. |
| searchAllFolders | boolean | no | Search across ALL folders instead of just folder. Skips Trash/Spam/Drafts and non-selectable folders by default. Use when a message might have been filed/archived/moved and you do not know which fol |
| includeTrash | boolean | no | When searchAllFolders is true, also search Trash/Bin/Deleted folders (off by default — noisy). |
| includeSpam | boolean | no | When searchAllFolders is true, also search Spam/Junk folders (off by default — noisy). |
| includeDrafts | boolean | no | When searchAllFolders is true, also search the Drafts folder (off by default). |
| from | string | no | Search by sender |
| to | string | no | Search by recipient |
| subject | string | no | Search by subject |
| body | string | no | Search in body text |
| since | string | no | Search emails since date (YYYY-MM-DD) |
| before | string | no | Search emails before date (YYYY-MM-DD) |
| seen | boolean | no | Filter by read/unread status |
| flagged | boolean | no | Filter by flagged status |
| messageId | string | no | Search by RFC822 Message-ID header (substring match) |
| keywords | array | no | Match messages that have ANY of these CUSTOM keywords (server-side OR; not system flags like \Seen/\Flagged). Read a mailbox's available custom keywords from imap_folder_status's customKeywords field, |
| unKeywords | array | no | Exclude messages that have ANY of these CUSTOM keywords (server-side; result has NONE of them). Same keyword source as keywords — check imap_folder_status first. |
| limit | number | no | Maximum number of results |
| includeBody | boolean | no | If true, also fetch the parsed message body in the same round-trip and return it alongside headers (avoids the N+1 cost of calling imap_get_email per match). Body is rendered per bodyFormat and capp |
| bodyFormat | string | no | How to render the body when includeBody is true. Mirrors imap_get_email — "markdown" (default) returns clean Markdown and omits raw HTML so it never crosses the MCP boundary; "text" returns plain |
| bodyMaxLength | number | no | Per-message cap (in characters) for each rendered body field when includeBody is true. Defaults to 10000 to match imap_get_email. |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
| maxContentLength | number | no | Maximum characters to return for each body field (text/markdown/html) |
| bodyFormat | string | no | How to return the body. "markdown" (default): clean Markdown via Turndown in markdownContent, raw htmlContent omitted so HTML never crosses the boundary. "text": plain text only in textContent. "html" |
| includeAttachmentText | boolean | no | Include text attachment previews when available |
| maxAttachmentTextChars | number | no | Maximum characters to return per text attachment |
| includeHeaders | boolean | no | Include raw email headers (e.g. List-Unsubscribe, List-Unsubscribe-Post) |
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: … bytes (configurable via IMAP_MAX_UPLOAD_SIZE). Uploads are auto-deleted after … ms…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | yes | Filename to save as |
| content | string | yes | Base64 encoded file content |
| contentType | string | no | MIME type (optional, used for metadata only) |
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).…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
| filename | string | yes | Attachment filename or contentId as listed by imap_get_email. Matched exactly first, then Unicode-normalized (NFC/NFD spellings of umlauts and accents are treated as equal); a contentId may be given w |
| savePath | string | no | Optional file path to save the attachment to. If not provided, files are saved to the shared downloads directory. |
| extractText | boolean | no | For PDFs, extract and return text content inline |
Mark one or many emails as read. Accepts a single UID or an array — pass an array to flag N messages in one IMAP STORE round-trip (useful when triaging).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | yes | — |
Mark one or many emails as unread. Accepts a single UID or an array — pass an array to flag N messages in one IMAP STORE round-trip.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | yes | — |
Flag an email — sets the IMAP \Flagged system flag (shows as a star in Gmail / a flag in Apple Mail). Use this tool when a user asks to star, flag, or mark a message as important.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
Unflag an email — removes the IMAP \Flagged system flag (the star in Gmail, the flag in Apple Mail). Note: some servers (e.g. Open-Xchange / Network Solutions) and Apple Mail also write a separate custom keyword such as $cl_N or $MailFlagBit* when a message is flagged in their client. Removing…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
Set an arbitrary custom (non-system) IMAP keyword/label on an email — e.g. a provider color label like Open-Xchange's $cl_1..$cl_10, Apple Mail's $MailFlagBit0..$MailFlagBit2, or an app tag such as $promotion. Unlike imap_flag_email (which only ever sets the system \Flagged flag), this passes the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
| keyword | string | yes | IMAP keyword to set, passed through verbatim (e.g. "$cl_3", "$MailFlagBit0", "$Junk") |
Remove an arbitrary custom (non-system) IMAP keyword/label from an email — e.g. a provider color label like Open-Xchange's $cl_1..$cl_10, Apple Mail's $MailFlagBit0..$MailFlagBit2, or an app tag such as $promotion. Unlike imap_unflag_email (which only ever clears the system \Flagged flag), this…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
| keyword | string | yes | IMAP keyword to remove, passed through verbatim (e.g. "$cl_3", "$MailFlagBit0", "$Junk") |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uid | number | yes | Email UID |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Source folder name |
| uid | yes | — | |
| targetFolder | string | yes | Destination folder name |
| createDestinationIfMissing | boolean | no | If true, create the destination folder before moving when it does not exist (default: false) |
Delete multiple emails at once with chunking and auto-reconnection. Processes deletions in batches to prevent connection timeouts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| uids | array | yes | Array of email UIDs to delete |
| chunkSize | number | no | Number of emails to delete per batch (default: 50) |
Search for emails matching criteria and delete them all. Useful for cleaning up spam or unwanted emails. At least one concrete criterion (from, to, subject, before, or since) is REQUIRED — a call with no criteria is refused so it can never wipe an entire folder. Supports dryRun to preview matches…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| from | string | no | Delete emails from this sender |
| to | string | no | Delete emails to this recipient |
| subject | string | no | Delete emails with this subject |
| before | string | no | Delete emails before this date (YYYY-MM-DD) |
| since | string | no | Delete emails since this date (YYYY-MM-DD) |
| chunkSize | number | no | Number of emails to delete per batch |
| dryRun | boolean | no | If true, only return what would be deleted without actually deleting |
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. By default returns lightweight headers (uid, from, subject, date); set includeBody=true to also return the parsed body in one round-trip…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | no | Folder name |
| count | number | no | Number of emails to retrieve |
| includeBody | boolean | no | If true, also fetch the parsed message body in the same round-trip and return it alongside headers (avoids the N+1 cost of calling imap_get_email per message). Body is rendered per bodyFormat and ca |
| bodyFormat | string | no | How to render the body when includeBody is true. Mirrors imap_get_email — "markdown" (default) returns clean Markdown; "text" returns plain text; "html" returns raw HTML; "auto" prefers substantiv |
| bodyMaxLength | number | no | Per-message cap (in characters) for each rendered body field when includeBody is true. Defaults to 10000 to match imap_get_email. |
Compose and send a NEW email via the account's SMTP server (a copy is saved to Sent unless disabled; account defaultBcc addresses are always BCC'd when configured). Use for fresh outbound messages. To respond to an existing message use imap_reply_to_email (keeps threading); to pass a message on…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Sender identity. Must match the account email/login or an address configured in allowedFrom. |
| to | yes | — | |
| subject | string | yes | Email subject |
| text | string | no | Plain text content |
| html | string | no | HTML content |
| body | string | no | Alias for 'text' (backward-compat with clients that pass 'body') |
| cc | yes | — | |
| bcc | yes | — | |
| replyTo | string | no | Reply-to address |
| attachments | array | no | Email attachments |
| dryRun | boolean | no | Validate attachments and compose MIME without sending SMTP mail or saving a Sent copy. Use to diagnose attachment payloads safely before sending. |
Save an email as a draft in the Drafts folder (no send). Takes the same fields as imap_send_email (including account defaultBcc when configured).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Sender identity. Must match the account email/login or an address configured in allowedFrom. |
| to | yes | — | |
| subject | string | no | Email subject |
| text | string | no | Plain text content |
| html | string | no | HTML content |
| body | string | no | Alias for 'text' (backward-compat) |
| cc | yes | — | |
| bcc | yes | — | |
| replyTo | string | no | Reply-to address |
| inReplyTo | string | no | Message-Id being replied to |
| references | yes | — | |
| attachments | array | no | Email attachments |
| folder | string | no | Override the Drafts folder name (defaults to auto-detected Drafts folder) |
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 To (and Cc as Cc), excluding the account's own address; a…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Sender identity. Must match the account email/login or an address configured in allowedFrom. |
| folder | string | no | Folder containing the original email |
| uid | number | yes | UID of the email to reply to |
| text | string | no | Plain text reply content |
| html | string | no | HTML reply content |
| body | string | no | Alias for 'text' (backward-compat) |
| replyAll | boolean | no | Reply to all recipients |
| bcc | yes | — | |
| attachments | array | no | Email attachments |
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. Account defaultBcc…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Sender identity. Must match the account email/login or an address configured in allowedFrom. |
| folder | string | no | Folder containing the original email |
| uid | number | yes | UID of the email to forward |
| to | yes | — | |
| text | string | no | Additional text to include |
| body | string | no | Alias for 'text' (backward-compat) |
| bcc | yes | — | |
| includeAttachments | boolean | no | Include original attachments |
Find messages in searchFolder that belong to the same conversation threads as messages already in sourceFolder. Useful for catching replies that arrived after a thread was sorted. Works on any IMAP server (uses RFC 3501 HEADER search on In-Reply-To and References). Set includeBody=true to…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sourceFolder | string | yes | Folder containing the already-sorted thread messages (e.g. "Review.Articles") |
| searchFolder | string | no | Folder to search for related thread messages (default: INBOX) |
| searchReferences | boolean | no | Also search the References header for multi-level threads (default: true) |
| includeBody | boolean | no | If true, also fetch the parsed message body for each found thread message in the same round-trip and return it alongside headers (avoids the N+1 cost of calling imap_get_email per thread member). Body |
| bodyFormat | string | no | How to render the body when includeBody is true. Mirrors imap_get_email — "markdown" (default) returns clean Markdown; "text" returns plain text; "html" returns raw HTML; "auto" prefers substantiv |
| bodyMaxLength | number | no | Per-message cap (in characters) for each rendered body field when includeBody is true. Defaults to 10000 to match imap_get_email. |
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 folders,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID |
| messageId | string | yes | RFC822 Message-ID, with or without angle brackets |
| folders | array | no | Explicit folders to search, in order (overrides the default order) |
List all folders/mailboxes for an account (names, hierarchy delimiter, attributes, RFC 6154 special-use role). 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…
No parameter schema on file.
Get status information about a folder
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | yes | Folder name |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder | string | yes | Full folder path to create (e.g. "Archives/2026/2026-05" or "INBOX.Archive") |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folders | array | no | List of folders to check (default: all) |
Check emails in a folder for spam. Combines sender-domain checks (known spam/disposable domains, suspicious patterns) with deterministic raw-header analysis: bulk-mailer X-Mailer/User-Agent signatures, Precedence: bulk, DMARC/SPF/DKIM failures in Authentication-Results, and List-Unsubscribe /…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | no | Folder name |
| limit | number | no | Maximum number of emails to check |
| from | string | no | Filter by sender (optional) |
| since | string | no | Check emails since date (YYYY-MM-DD) |
| includeHeaderChecks | boolean | no | Also run deterministic raw-header checks (X-Mailer bulk tools, Precedence: bulk, DMARC/SPF/DKIM failures, List-Unsubscribe/Reply-To domain mismatches) on top of the sender-domain check. Fetches messag |
Find and delete emails from known spam/disposable email domains.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | no | Folder name |
| limit | number | no | Maximum number of emails to check |
| minConfidence | string | no | Minimum confidence level for spam detection |
| dryRun | boolean | no | If true, only report what would be deleted without deleting |
Get statistics about sender domains in a folder. Useful for identifying bulk senders or spam patterns.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | no | Folder name |
| limit | number | no | Maximum number of emails to analyze |
| minCount | number | no | Minimum email count per domain to include |
Add a domain to the custom spam list. Emails from this domain will be flagged as spam.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to add to spam list (e.g., "spammer.com") |
Remove a domain from the custom spam list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to remove from spam list |
Add a domain to the whitelist. Emails from whitelisted domains will never be flagged as spam.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to whitelist (e.g., "trusted.com") |
List all known spam domains (built-in and custom).
No parameter schema on file.
Delete all emails from a specific domain. Useful for cleaning up unwanted newsletters or spam.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accountId | string | yes | Account ID |
| folder | string | no | Folder name |
| domain | string | yes | Domain to delete emails from (e.g., "spammer.com") |
| dryRun | boolean | no | If true, only report what would be deleted |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install IMAP or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (40 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| imap_add_account | no tags | |
| imap_update_account | no tags | |
| imap_list_accounts | no tags | |
| imap_remove_account | no tags | |
| imap_connect | no tags | |
| imap_disconnect | no tags | |
| imap_test_account | no tags | |
| imap_search_emails | no tags | |
| imap_get_email | untrusted-input | untrusted-input: keyword "fetch" |
| imap_upload_file | external-sink | external-sink: keyword "upload_file" |
| imap_download_attachment | untrusted-input | untrusted-input: keyword "download" |
| imap_mark_as_read | no tags | |
| imap_mark_as_unread | no tags | |
| imap_flag_email | no tags | |
| imap_unflag_email | no tags | |
| imap_add_keyword | no tags | |
| imap_remove_keyword | no tags | |
| imap_delete_email | no tags | |
| imap_move_email | no tags | |
| imap_bulk_delete | no tags | |
| imap_bulk_delete_by_search | no tags | |
| imap_get_latest_emails | no tags | |
| imap_send_email | external-sink | external-sink: keyword "send_email" |
| imap_save_draft | no tags | |
| imap_reply_to_email | no tags | |
| imap_forward_email | external-sink | external-sink: keyword "forward_email" |
| imap_find_thread_messages | untrusted-input | untrusted-input: keyword "read_message" |
| imap_find_email_by_message_id | no tags | |
| imap_list_folders | no tags | |
| imap_folder_status | no tags | |
| imap_create_folder | no tags | |
| imap_get_unread_count | no tags | |
| imap_check_spam | no tags | |
| imap_delete_spam | no tags | |
| imap_domain_stats | no tags | |
| imap_add_spam_domain | no tags | |
| imap_remove_spam_domain | no tags | |
| imap_add_whitelist_domain | no tags | |
| imap_list_spam_domains | no tags | |
| imap_delete_by_domain | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 2.2.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish IMAP can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.