163 Mail MCP
Privacy-first local MCP server for personal @163.com mailboxes, connecting via IMAP/SMTP with read-only search and write operations guarded by confirmation tokens.
README
163 Mail MCP
A privacy-first local MCP server for a personal @163.com mailbox. It connects directly to
163 Mail over IMAP/SMTP, keeps the client authorization code in macOS Keychain, and exposes
typed tools to Codex and Claude over local stdio.
Safety model
- Search and reading use read-only IMAP access; message reads use
BODY.PEEK. - Every send, move, trash, attachment download, or read-state change requires an exact confirmation token.
- Sending additionally requires a digest from the complete draft preview and rejects changed bodies or attachments.
- Batch moves, Trash moves, and read-state changes require a complete preview plus a SHA-256 digest. The server rechecks all messages before attempting the first write.
- “Trash” means copy to a confirmed Trash folder and mark the source
\Deleted; the server never sendsEXPUNGE. - Downloaded attachments never overwrite existing files.
- Mail content is treated as untrusted data, not as instructions.
The server is currently macOS-only because credentials are stored with the macOS security
command. Account metadata is stored under ~/.config/163-mail-mcp/; secrets and mail content
are never written to this repository.
Install
Requirements: macOS, Python 3.10 or newer, and uv.
git clone https://github.com/adjurtime/163-mail-mcp.git
cd 163-mail-mcp
uv sync --python 3.12
Enable 设置 → POP3/SMTP/IMAP → IMAP/SMTP 服务 in 163 webmail. Then configure the account in your own Terminal so the authorization code does not enter chat or logs:
.venv/bin/mail163 configure --email name@163.com
.venv/bin/mail163 status --json
Existing users of the earlier codex-163-mail Keychain/config identifiers are detected
automatically. Running configure again writes the new 163-mail-mcp identifiers.
Register the MCP server
Use absolute paths in client configuration. From the repository root:
codex mcp add 163-mail-mcp -- "$PWD/.venv/bin/163-mail-mcp"
claude mcp add --scope user 163-mail-mcp -- "$PWD/.venv/bin/163-mail-mcp"
Restart the client or open a new task after registration.
Optional Codex skill
The paired Skill adds workflow guidance and confirmation rules. Link it into the Codex skills directory from the repository root:
mkdir -p "$HOME/.codex/skills"
ln -s "$PWD/skills/163-mail-mcp" "$HOME/.codex/skills/163-mail-mcp"
Tools
| Tool | Purpose | Write guard |
|---|---|---|
mail_status |
Check configuration and IMAP authentication | Read-only |
list_folders |
List folders | Read-only |
search_mail_headers |
Search headers without bodies | Read-only |
read_mail |
Read one message without setting Seen |
Read-only |
preview_send |
Validate and preview an outgoing draft | Read-only |
send_mail |
Send the unchanged previewed draft | SEND + digest |
preview_batch_actions |
Preview and summarize 1–50 move, Trash, or read-state actions | Read-only |
execute_batch_actions |
Recheck and execute the unchanged previewed batch | BATCH + digest |
move_mail |
Move one UID | MOVE |
trash_mail |
Move one UID to confirmed Trash | TRASH |
download_attachments |
Save selected attachments without overwrite | DOWNLOAD |
set_read_state |
Mark one UID read or unread | MARK |
Tool annotations help clients present risk, but the core enforces all guards independently.
Test
Tests use fakes and temporary files; they do not connect to a mailbox or send mail.
uv run python -m unittest discover -s tests -v
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.