netease-mail-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NETEASE_MAIL_MODE | No | Permission mode: readonly, draft, or full (default: full). | |
| NETEASE_MAIL_CONFIG | No | Path to an alternative configuration file. | |
| NETEASE_MAIL_CONFIRM | No | Confirmation mode: auto (default), elicit, or token. | |
| NETEASE_MAIL_ACCOUNTS | No | Comma-separated account list; the first account is the default. Takes precedence over the configuration file. | |
| NETEASE_MAIL_DOWNLOAD_DIR | No | Attachment download directory (default: ~/Downloads/netease-mail-mcp/). Downloads only write here or its subdirectories. | |
| NETEASE_MAIL_ATTACHMENT_ROOTS | No | Optional: only allow attaching files from these directories, separated by ':' on macOS/Linux or ';' on Windows. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | List configured NetEase accounts, the default account, the mode (readonly/draft/full) and whether a 授权码 is stored. check=true also logs in and reports INBOX counts. |
| list_foldersA | List folders with decoded names (e.g. 草稿箱, 已发送), raw IMAP names and special-use role (inbox/drafts/sent/trash/junk). with_counts=true adds message/unseen counts. |
| search_messagesA | Search or list messages newest-first. Returns ids plus date/from/to/subject/flags. Date and unread/flagged filters run on the server; query/from/to/subject match headers locally over at most max_scan candidates (truncated=true means more may exist). Message bodies are never searched. |
| read_messageB | Read one message: headers (incl. Message-ID/In-Reply-To/References), text body (plain preferred, HTML converted to text), attachment list [{index, filename, content_type, size}] and flags. Does not mark the message read unless mark_read=true. |
| get_threadA | Reconstruct the conversation around a message across its folder, INBOX and Sent, using Message-ID/In-Reply-To/References (subject as fallback). Chronological, with snippets. |
| download_attachmentA | Save one attachment into the download dir (NETEASE_MAIL_DOWNLOAD_DIR) or a subdirectory of it: sanitized name, never overwrites or follows links, file mode 0600, marked as downloaded (macOS quarantine / Windows Zone.Identifier), ≤50 MB. Returns path, size, sha256, content_type, and a text excerpt for text/csv/json/md files. |
| wait_for_messageA | Wait for a NEW message (arriving after the call starts) matching from/subject/query, e.g. a sign-up verification email. Returns the summary plus |
| create_draftA | Save an email to Drafts (草稿箱) without sending; the user can review it in their mail app. Supports replies (reply_to_id, reply_all: Re: subject, In-Reply-To/References, recipients from the original) and forwards (forward_id). Returns draft_id + preview. |
| send_emailA | Send an email via SMTP (same arguments as create_draft, or draft_id to send a saved draft). Two-phase: the first call returns a full preview and asks the human (MCP elicitation) or returns confirmation_token; call again with the token ONLY after the user explicitly approves. Any change to recipients/subject/body/attachments → rejected. |
| manage_messagesA | Move, trash, mark read/unread or flag/unflag up to 50 messages. mark/flag run immediately (reversible). move/trash are two-phase like send_email: preview + human approval (elicitation or confirmation_token). trash moves to 已删除; nothing is ever permanently deleted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a clearly distinct action: listing accounts/folders, searching messages, reading one message, reconstructing a thread, downloading attachments, waiting for new mail, creating drafts, sending email, and managing message state. The only mild overlap is create_draft vs send_email sharing arguments, but their purposes and two-phase behaviors are clearly differentiated.
All tool names use consistent snake_case and are verb-led (list_, search_, read_, get_, download_, wait_for_, create_, send_, manage_). The pattern is predictable and readable throughout.
Ten tools is well-scoped for an email MCP server, covering discovery, reading, waiting, composing, sending, and message management without excessive granularity. Each tool earns its place.
Core email workflows are covered: account/folder discovery, search, read, thread reconstruction, attachment download, waiting for verification mail, draft creation, sending with approval, and message management. Minor gaps exist, such as folder creation/renaming and message-body search, but the surface is largely complete for the stated purpose.