IMAP MCP Server
Allows management of email accounts on Namecheap Private Email, including listing, reading, searching, sending, and organizing emails via IMAP/SMTP.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IMAP MCP ServerList my unread emails from inbox"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IMAP MCP Server
Multi-account IMAP/SMTP MCP server for Claude. Connects multiple email accounts via a single deployment using FastMCP.
Setup
1. Install dependencies
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt2. Configure accounts
cp .env.example .env
# Edit .env with your IMAP/SMTP credentialsEach account is configured via numbered environment variables:
Variable | Required | Default | Description |
| Yes | Short name used in tool calls | |
| Yes | Email address | |
| Yes | IMAP server hostname | |
| No |
| IMAP port |
| Yes | SMTP server hostname | |
| No |
| SMTP port |
| No |
|
|
| Yes | Login username | |
| Yes | Login password | |
| No |
| Folder name for soft deletes |
Add as many accounts as needed by incrementing N (1, 2, 3...). Gaps in numbering are handled gracefully.
3. Run the server
python -m src.serverStarts on port 8000 with streamable-http transport by default.
4. Connect to Claude Desktop
Add as a remote MCP server in Claude Desktop settings:
https://imap-mcp.devonwatkins.com/mcpOr for local development:
{
"mcpServers": {
"imap": {
"url": "http://localhost:8000/mcp"
}
}
}Related MCP server: IMAP MCP Server
Tools
Tool | Description |
| List all configured accounts with connection status |
| List emails with filters (folder, unread, date, search) |
| Read full email content by UID (uses PEEK, does not mark as read) |
| Full-text search across folders |
| Send email via SMTP (generates Message-ID) |
| Mark emails as read/unread |
| Move emails between folders |
| List mailbox folders |
| Delete emails (soft: move to trash, or permanent) |
Every tool (except imap_list_accounts) takes an account parameter matching the account NAME.
Health Endpoints
Endpoint | Purpose |
| Combined status with per-account details |
| Liveness probe (process is up) |
| Readiness probe (at least one account can authenticate) |
The readiness endpoint actively probes IMAP connectivity — it does not rely on cached state.
{"status": "ready", "accounts": {"adjustright": "connected", "watkinshomesales": "connected"}}Error Handling
All tools return structured errors with stable codes:
{"error": true, "code": "AUTH_FAILED", "message": "...", "account": "adjustright"}Error codes: AUTH_FAILED, CONNECTION_TIMEOUT, FOLDER_NOT_FOUND, EMAIL_NOT_FOUND, SEND_FAILED, ACCOUNT_NOT_FOUND
Docker
docker build -t imap-mcp-server .
docker run -p 8000:8000 --env-file .env imap-mcp-serverThe Dockerfile includes bws CLI for fetching passwords from Bitwarden Secrets Manager at startup via start.sh.
Production Deployment
Deployed on Coolify as a Flavor A app (single container, source build).
Domain:
https://imap-mcp.devonwatkins.comPasswords: Fetched from BWS at startup (
start.sh)Health check:
/health/liveon port 8000
Tests
pip install pytest pytest-asyncio
python -m pytest tests/ -vE2E Tests
# Read-only tests against production
python scripts/test_live.py
# Include mark/move/delete tests (restores state after)
python scripts/test_live.py --destructive
# Include send test (sends email to self)
python scripts/test_live.py --send
# Full suite
python scripts/test_live.py --destructive --send
# Test a specific account
python scripts/test_live.py --account watkinshomesalesArchitecture
src/
server.py — FastMCP app, 9 tool definitions, health endpoints
client.py — Async IMAP (aioimaplib) and SMTP (aiosmtplib) clients
accounts.py — Account registry from IMAP_ACCOUNT_N_* env vars
models.py — Pydantic models for all request/response types
errors.py — Typed exceptions (AuthenticationError, FolderNotFoundError, etc.)
tests/ — 59 unit tests
scripts/ — E2E test suite and debug tools
start.sh — Entrypoint that fetches BWS secrets before starting serverKey Design Decisions
Regular SEARCH, not UID SEARCH: Namecheap Private Email doesn't support UID SEARCH. We use regular SEARCH for sequence numbers, then FETCH (UID) to convert to stable UIDs.
Per-account asyncio.Lock: Prevents concurrent requests from corrupting IMAP folder selection state.
BODY.PEEK[]: Read operations never mark emails as read.
Lazy connections: IMAP connections are established on first use, not at startup. The readiness endpoint probes real connectivity.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables seamless email management through natural language conversations with Claude. Supports searching, reading, and sending emails securely with Gmail and other email providers.Last updated4MIT
- AlicenseAqualityAmaintenanceEnables Claude to interact with email accounts via IMAP and SMTP, providing tools for searching, reading, sending, and managing emails across multiple providers.Last updated4044970MIT
- Alicense-qualityDmaintenanceEnables Claude to read, search, send, and manage Gmail messages and threads through natural language.Last updated213MIT
- Alicense-qualityDmaintenanceConnects Claude to Microsoft 365 Outlook and Google Gmail APIs for email search, invoice detection, attachment handling, folder/label management, and draft creation. Uses Anthropic OAuth for secure authentication.Last updated64ISC
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlobarQuest/imap-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server