Gmail邮件发送服务

一个通过Gmail API发送邮件和创建草稿的MCP服务器,支持文件附件和OAuth 2.0认证。

  • by TheMossConcept
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 TheMossConcept/Gmail_MCP_server

使用说明

Gmail发件人MCP服务器

一个MCP(模型上下文协议)服务器,可以通过Gmail API发送电子邮件和创建草稿。

特性

  • send电子邮件:通过您的Gmail帐户发送带有可选文件附件的电子邮件
  • 创建草稿:创建带有可选文件附件的电子邮件草稿
  • 使用Google进行OAuth 2.0身份验证
  • 支持各种类型的文件附件(PDF、DOC、图像等)
  • 随时随地奔跑 npx -无需本地安装

先决条件

  • Node.js v18或更高版本
  • 启用Gmail API的谷歌云项目
  • OAuth 2.0凭据(客户端ID和客户端密钥)

设置Google Cloud凭据

  1. 去 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 为您的项目启用Gmail API
  4. 首选 凭证 并创建一个 OAuth 2.0客户端ID
  5. 将应用程序类型设置为 Web应用程序
  6. 添加 http://localhost:3500/oauth2callback 作为授权重定向URI
  7. 保存您的客户端ID和客户端密码

安装与使用

使用npx运行(推荐)

使用此服务器的最简单方法是 npx无需安装:

GMAIL_CLIENT_ID=your_client_id GMAIL_CLIENT_SECRET=your_client_secret npx gmail-sender-mcp-server

全球安装

npm install -g gmail-sender-mcp-server

然后运行:

GMAIL_CLIENT_ID=your_client_id GMAIL_CLIENT_SECRET=your_client_secret gmail-sender-mcp-server

本地安装(用于开发)

git clone <repository-url>
cd Gmail_MCP_server
npm install
GMAIL_CLIENT_ID=your_client_id GMAIL_CLIENT_SECRET=your_client_secret npm start

认证

首次运行时,服务器将在端口3500上启动OAuth服务器:

  1. 访问 http://localhost:3500/auth 在浏览器中
  2. 使用您的Google帐户登录并授予权限
  3. 身份验证令牌将保存到 ~/.config/gmail-sender-mcp-server/token.json

令牌存储在您的主目录中,因此它会在 npx 经过身份验证后,可以在不同的机器上运行和工作。

环境变量

变量 必填 描述
GMAIL_CLIENT_ID 是 您的Google OAuth 2.0客户端ID
GMAIL_CLIENT_SECRET 是 您的Google OAuth 2.0客户端密码

MCP配置

要将此服务器与MCP客户端(如Claude Desktop)一起使用,请将其添加到MCP配置中:

{
  "mcpServers": {
    "gmail-sender": {
      "type": "stdio",
      "command": "npx",
      "args": ["gmail-sender-mcp-server"],
      "env": {
        "GMAIL_CLIENT_ID": "your_client_id",
        "GMAIL_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

可用工具

send电子邮件

立即通过Gmail发送电子邮件。

参数:

  • recipient (必填):收件人的电子邮件地址
  • subject (必填):电子邮件的主题行
  • body (必填):电子邮件正文(纯文本)
  • attachmentPath (可选):要附加的文件的绝对路径

例子:

{
  "recipient": "example@email.com",
  "subject": "Hello from MCP",
  "body": "This is a test email sent via the Gmail MCP server.",
  "attachmentPath": "/path/to/document.pdf"
}

创建草稿

在Gmail中创建电子邮件草稿(不自动发送)。

参数:

  • recipient (必填):收件人的电子邮件地址
  • subject (必填):电子邮件的主题行
  • body (必填):电子邮件正文(纯文本)
  • attachmentPath (可选):要附加的文件的绝对路径

例子:

{
  "recipient": "example@email.com",
  "subject": "Draft Email",
  "body": "This is a draft that can be reviewed and sent later.",
  "attachmentPath": "/path/to/image.png"
}

支持的附件类型

服务器会根据扩展名自动检测文件类型:

  • 文档:PDF、DOC、DOCX、TXT
  • 图片:JPG、JPEG、PNG、gif
  • 档案:ZIP
  • 其他文件以以下方式发送 application/octet-stream

OAuth范围

服务器使用 https://www.googleapis.com/auth/gmail.compose 范围,允许:

  • 创建和发送电子邮件
  • 创建草稿
  • 修改草稿

文件结构

gmail-sender-mcp-server/
├── src/
│   └── index.js          # Main server implementation
├── package.json          # Dependencies and scripts
└── README.md             # This file

~/.config/gmail-sender-mcp-server/
└── token.json            # OAuth tokens (created after authentication)

安全说明

  • OAuth令牌存储在 ~/.config/gmail-sender-mcp-server/token.json 并且应该保持安全
  • 客户端ID和Secret应通过环境变量传递,而不是提交给版本控制
  • OAuth服务器仅在本地主机(端口3500)上运行
  • 考虑在生产部署中使用机密管理器

故障排除

身份验证问题

  • 确保您的OAuth客户端配置了 http://localhost:3500/oauth2callback 作为重定向URI
  • 检查Gmail API是否已在您的谷歌云项目中启用
  • 验证您的 GMAIL_CLIENT_ID 和 GMAIL_CLIENT_SECRET 环境变量设置正确

令牌问题

  • 如果身份验证失败,请删除 ~/.config/gmail-sender-mcp-server/token.json 并重新验证
  • 代币可能会过期;如果出现授权错误,请重新进行身份验证

文件附件问题

  • 附件使用绝对路径
  • 确保文件存在并且可读
  • 检查文件大小是否在Gmail的限制范围内(附件为25MB)

许可证

麻省理工学院

Gmail_MCP_服务器