返回市场
MCP服务器SMTP

MCP服务器SMTP

作者:samihalawa8 星标更新:2025-10-20

项目介绍

SMTP 邮件 MCP 服务器

smithery 徽章

这是一个提供邮件发送能力的模型上下文协议(MCP)服务器,适用于 Claude 和其他兼容 MCP 的 AI 助手。

特性

  • 多个 SMTP 配置:配置和管理多个 SMTP 服务器
  • 邮件模板:创建、更新并使用可重用的邮件模板
  • 批量邮件发送:向多个收件人发送邮件,并支持批处理和速率限制
  • HTML 支持:支持完整的 HTML 内容以丰富邮件内容
  • 日志记录:全面记录所有邮件活动
  • 模板变量:使用模板变量实现动态内容

安装

通过 Smithery 安装

要通过 Smithery 自动安装 Claude Desktop 的 SMTP 邮件服务器:

npx -y @smithery/cli install @samihalawa/mcp-server-smtp --client claude

手动安装

# 克隆仓库
git clone https://github.com/samihalawa/mcp-server-smtp.git
cd mcp-server-smtp

# 安装依赖
npm install

# 构建服务器
npm run build

使用方法

启动服务器

npm start

配置

在您的 MCP 配置中添加服务器:

{
  "servers": {
    "smtp-email-server": {
      "command": "/path/to/node",
      "args": ["/path/to/mcp-server-smtp/build/index.js"],
      "enabled": true,
      "port": 3007,
      "environment": {
        "NODE_PATH": "/path/to/node_modules",
        "PATH": "/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

可用工具

send-email

向一个或多个收件人发送邮件。

参数:

  • to:收件人的数组,包括电子邮件地址和可选的名字
  • subject:邮件主题
  • body:邮件正文(支持 HTML)
  • from:(可选)发件人的电子邮件地址和名字
  • cc:(可选)抄送收件人
  • bcc:(可选)密送收件人
  • templateId:(可选)使用的模板 ID
  • templateData:(可选)填充模板变量的数据
  • smtpConfigId:(可选)使用的 SMTP 配置 ID

send-bulk-emails

批量向多个收件人发送邮件。

参数:

  • recipients:收件人的数组,包括电子邮件地址和可选的名字
  • subject:邮件主题
  • body:邮件正文(支持 HTML)
  • from:(可选)发件人的电子邮件地址和名字
  • cc:(可选)抄送收件人
  • bcc:(可选)密送收件人
  • templateId:(可选)使用的模板 ID
  • templateData:(可选)填充模板变量的数据
  • batchSize:(可选)每个批次发送的邮件数量
  • delayBetweenBatches:(可选)批次之间的延迟时间(毫秒)
  • smtpConfigId:(可选)使用的 SMTP 配置 ID

get-smtp-configs

获取所有已配置的 SMTP 服务器。

参数:无

add-smtp-config

添加一个新的 SMTP 服务器配置。

参数:

  • name:配置的名称
  • host:SMTP 服务器主机名
  • port:SMTP 服务器端口
  • secure:是否使用 SSL/TLS
  • auth:认证凭据(用户名和密码)
  • isDefault:(可选)是否为默认配置

update-smtp-config

更新现有的 SMTP 服务器配置。

参数:

  • id:需要更新的配置 ID
  • name:配置的名称
  • host:SMTP 服务器主机名
  • port:SMTP 服务器端口
  • secure:是否使用 SSL/TLS
  • auth:认证凭据(用户名和密码)
  • isDefault:(可选)是否为默认配置

delete-smtp-config

删除 SMTP 服务器配置。

参数:

  • id:需要删除的配置 ID

get-email-templates

获取所有邮件模板。

参数:无

add-email-template

添加一个新的邮件模板。

参数:

  • name:模板名称
  • subject:邮件主题模板
  • body:邮件正文模板(支持 HTML)
  • isDefault:(可选)是否为默认模板

update-email-template

更新现有的邮件模板。

参数:

  • id:需要更新的模板 ID
  • name:模板名称
  • subject:邮件主题模板
  • body:邮件正文模板(支持 HTML)
  • isDefault:(可选)是否为默认模板

delete-email-template

删除邮件模板。

参数:

  • id:需要删除的模板 ID

get-email-logs

获取已发送邮件的日志。

参数:无

示例用法

  1. 配置 SMTP 服务器:

    add-smtp-config(
      name: "Gmail",
      host: "smtp.gmail.com",
      port:  587,
      secure: false,
      auth: {
        user: "your-email@gmail.com",
        pass: "your-app-password"
      },
      isDefault: true
    )
    
  2. 创建邮件模板:

    add-email-template(
      name: "欢迎邮件",
      subject: "欢迎来到 {{company}}!",
      body: "<h1>你好 {{name}},</h1><p>欢迎来到 {{company}}!</p>",
      isDefault: false
    )
    
  3. 使用模板发送邮件:

    send-email(
      to: [{ email: "recipient@example.com", name: "John Doe" }],
      templateId: "welcome-email",
      templateData: {
        name: "John",
        company: "ACME Corp"
      }
    )
    
  4. 发送批量邮件:

    send-bulk-emails(
      recipients: [
        { email: "user1@example.com", name: "用户1" },
        { email: "user2@example.com", name: "用户2" }
      ],
      subject: "重要公告",
      body: "<p>这是一条重要公告。</p>",
      batchSize: 10,
      delayBetweenBatches: 1000
    )
    

要求

  • Node.js 14+
  • Nodemailer 用于发送邮件
  • 访问 SMTP 服务器

许可证

MIT