使用说明
mcp电子邮件服务器
无状态MCP服务器,用于AI代理通过SMTP/IMAP发送和读取电子邮件。公开MCP工具和REST API端点。专为Kubernetes部署而设计。
特性
- 10个MCP工具 用于电子邮件操作(发送、读取、搜索、管理)
- REST API 在
/api/v1/*与MCP一起/mcp - 多账户 具有每个帐户隔离(速率限制、域分配)
- 邮件合并 (
mail_send_bulk)与{{variable}}JSON/CSV模板 - 承载令牌身份验证 在MCP和REST端点上
- 无状态 --无数据库,部署到Kubernetes
快速开始
# Install
uv sync
# Configure
cp .env.example .env
# Edit .env with your SMTP/IMAP credentials
# Run (stdio mode)
uv run mcp-mail
# Run (HTTP mode)
uv run mcp-mail --transport http
MCP工具
| 工具 | 说明 |
|---|---|
mail_list_accounts |
列出已配置的帐户(掩码凭据) |
mail_send |
发送电子邮件至/cc/bcc、HTML、附件、回复线程 |
mail_send_bulk |
邮件合并 {{variable}} 模板 |
mail_test_connection |
测试SMTP/IMAP连接 |
mail_list |
列出带有过滤器和分页的电子邮件元数据 |
mail_get |
按ID获取完整的电子邮件内容(批量) |
mail_list_folders |
列出包含未读计数的IMAP文件夹 |
mail_move |
在文件夹之间移动电子邮件 |
mail_mark |
将电子邮件标记为已读/未读/已标记 |
mail_delete |
永久删除电子邮件 |
所有工具都接受可选 account 多账户支持参数。
REST API
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /api/v1/accounts |
列出帐户 |
| 职位 | /api/v1/mail/send |
发送电子邮件 |
| 职位 | /api/v1/mail/send-bulk |
使用模板批量发送 |
| 得到 | /api/v1/mail/health |
健康检查(未经身份验证,适用于K8s探测器) |
| 得到 | /api/v1/mail/test-connection |
完整的SMTP/IMAP连接测试 |
| 得到 | /api/v1/mail/messages |
列出电子邮件 |
| 得到 | /api/v1/mail/messages/{ids} |
获取电子邮件内容 |
| 得到 | /api/v1/mail/folders |
列出文件夹 |
| 职位 | /api/v1/mail/messages/move |
移动电子邮件 |
| 补丁 | /api/v1/mail/messages/mark |
标记电子邮件 |
| 删除 | /api/v1/mail/messages |
删除电子邮件 |
配置
所有这些都是通过环境变量实现的。看 .env.示例 供充分参考。
认证
AUTH_MODE=bearer # bearer | none
AUTH_BEARER_TOKEN=your-secret-token # required when AUTH_MODE=bearer
集 AUTH_MODE=none 用于当地发展(不需要代币)。
多账户
默认帐户通过 SMTP_* / IMAP_* env变量。其他帐户通过 ACCOUNTS_JSON:
ACCOUNTS_JSON={"work":{"smtp":{"host":"smtp.office365.com","port":587,"username":"me@company.com","password":"...","start_tls":true,"from_address":"me@company.com"},"imap":{"host":"outlook.office365.com","port":993,"username":"me@company.com","password":"...","use_ssl":true},"from_address":"me@company.com","rate_limit_per_minute":30,"allowed_domains":["company.com"]}}
部署
克劳德桌面(stdio模式)
配置您的 .env 先将文件放入项目目录,然后添加到Claude Desktop配置中:
{
"mcpServers": {
"mcp-email-server": {
"command": "uv",
"args": ["run", "--project", "/path/to/mcp-email-server", "mcp-mail"]
}
}
}
码头工人
docker build -t mcp-email-server .
# HTTP mode
docker run -p 8000:8000 --env-file .env mcp-email-server
# stdio mode
docker run -i --env-file .env mcp-email-server --transport stdio
Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: mcp-email-server
spec:
replicas: 2
selector:
matchLabels:
app: mcp-email-server
template:
metadata:
labels:
app: mcp-email-server
spec:
containers:
- name: mcp-email-server
image: mcp-email-server:latest
args: ["--transport", "http"]
ports: [{ containerPort: 8000 }]
envFrom:
- secretRef: { name: mcp-email-server-accounts }
- secretRef: { name: mcp-email-server-auth }
livenessProbe:
httpGet: { path: /api/v1/mail/health, port: 8000 }
readinessProbe:
httpGet: { path: /api/v1/mail/health, port: 8000 }
发展
uv sync --dev
uv run python -m pytest tests/ -v
许可证
麻省理工学院
