基于 Model Context Protocol (MCP) 的邮件通知服务,支持通过Streamable HTTP, SSE(Server-Sent Events)与客户端通信,并通过 SMTP 服务发送通知邮件。已支持 Docker 镜像部署。 本项目也适合作为新手上手学习MCP Server的学习项目
- 支持接入MCP Client通过 MCP 协议发送邮件或其他通知
- ⭐️ 兼容旧SSE和新Streamable HTTP协议
- ⭐️ 支持 Docker 一键部署到remote or local,通过Http而不是Stdio通信
- Dockerfile使用多阶段构建以及slim nodejs环境降低image打包大小
.
├── package.json # 项目依赖与脚本
├── Dockerfile # Docker 镜像构建文件
├──.dockerignore # Docker build忽略设置
├── tsconfig.json # TypeScript 配置
├── src/
│ ├── index.ts # 服务器入口
│ ├── mcp/
│ │ └── notify.ts # MCP 通知服务实现
│ └── tool/
│ └── notify.ts # 邮件发送工具
└── .env.example # 环境变量示例
npm install在项目根目录下创建 .env 文件,内容示例:
SMTP_USER=你的邮箱账号
SMTP_PASS=你的邮箱SMTP授权码
SMTP_SERVICE=
SMTP_HOST
PORT=
npm run build
npm start或直接用 ts-node:
npx ts-node src/index.tsdocker build -t yourname/mcp-email-docker .docker run -p 8080:8080 \
-e SMTP_USER=你的邮箱账号 \
-e SMTP_PASS=你的邮箱SMTP授权码 \
-e SMTP_SERVICE=QQ \
-e SMTP_HOST=smtp.qq.com \
yourname/mcp-email-docker或使用 .env 文件:
docker run --env-file .env -p 8080:8080 yourname/mcp-email-docker-
GET /sse
建立 SSE 连接,用于实时消息推送。 -
POST /messages?sessionId=xxx
客户端发送消息接口,需携带sessionId。 -
POST /mcp
通过 Streamable HTTP协议连接mcp server
method:通知方式,目前仅基于nodemailer实现"email"to:收件人邮箱content:邮件内容
MIT
