README
🚀 Gmail 发件人 MCP 服务器
这是一个模型上下文协议(MCP)服务器,允许Claude和其他人工智能助手借助Gmail API来发送电子邮件。此版本仅专注于提供电子邮件发送功能。
🚀 快速开始
该项目打造了一个MCP服务器,能让AI助手实现以下操作:
- 发送新的电子邮件
- 回复现有的电子邮件
它设计得轻量级且易于设置,借助Gmail API开展电子邮件操作。
✨ 主要特性
- 轻量级设计,易于设置。
- 支持AI助手发送新邮件和回复现有邮件。
- 可选择使用Docker进行容器化部署。
📦 安装指南
先决条件
- Python 3.8或更高版本
- 具备Gmail API启用的Google Cloud账户
- Docker(可选,用于容器化部署)
设置步骤
1. 创建Google Cloud项目并启用Gmail API
- 前往Google Cloud控制台。
- 创建新项目或选择现有项目。
- 在侧边栏中导航至“API和服务”>“库”。
- 搜索“Gmail API”并启用它。
- 转到“API和服务”>“凭证”。
- 点击“创建凭据”,然后选择“OAuth客户端ID”。
- 对于应用程序类型,选择“桌面应用”。
- 为您的OAuth客户端命名。
- 点击“创建”。
- 下载生成的凭据JSON文件。
2. 准备您的环境
克隆此仓库:
git clone https://github.com/abhishekloiwal/gmail-sender-mcp.git
cd gmail-sender-mcp
安装依赖项:
pip install -r requirements.txt
3. 设置您的凭证
- 将下载的凭据文件重命名为
credentials.json并放置在项目根目录中。 - 运行辅助脚本来获取刷新令牌:
python get_refresh_token.py
- 在浏览器中完成身份验证流程。
- 复制终端中显示的刷新令牌。
- 基于示例创建
.env文件:
cp .env.example .env
- 编辑
.env文件并填写您的凭证:
GMAIL_CLIENT_ID=your-client-id.apps.googleusercontent.com
GMAIL_CLIENT_SECRET=your-client-secret
GMAIL_REFRESH_TOKEN=your-refresh-token
GMAIL_USER_EMAIL=your-email@gmail.com
4. 运行MCP服务器
python gmail_sender.py
服务器将启动并监听连接。
Docker部署
您也能够在Docker容器中运行服务器:
使用Docker构建和运行
docker build -t gmail-sender-mcp .
docker run -d --name gmail-sender-mcp --env-file .env gmail-sender-mcp
或使用Docker Compose
docker-compose up -d
💻 使用示例
基础用法
要将此MCP服务器与AI助手一起使用,请按以下步骤操作:
- 运行MCP服务器。
- 将您的AI助手连接到MCP服务器(具体步骤取决于您的AI平台)。
MCP服务器提供以下工具:
send_email工具
发送新的电子邮件。 参数:
to: 收件人电子邮件地址subject: 电子邮件主题行body: 电子邮件正文内容(支持HTML格式)
reply_to_email工具
回复现有的电子邮件。 参数:
email_id: 要回复的电子邮件IDbody: 回复内容(支持HTML格式)
高级用法
以下是一个使用send_email工具的示例:
from gmail_sender import GmailSender
# 初始化Gmail发送器
gmail = GmailSender(
client_id='your-client-id.apps.googleusercontent.com',
client_secret='your-client-secret',
refresh_token='your-refresh-token',
user_email='your-email@gmail.com'
)
# 发送电子邮件
gmail.send_email(
to='recipient@example.com',
subject='测试邮件',
body='这是一封测试邮件。'
)
📚 详细文档
环境变量说明
以下是.env文件中可能用到的环境变量及其含义:
| 属性 | 详情 |
|------|------|
| GMAIL_CLIENT_ID | Gmail OAuth客户端ID |
| GMAIL_CLIENT_SECRET | Gmail OAuth客户端密钥 |
| GMAIL_REFRESH_TOKEN | Gmail刷新令牌 |
| GMAIL_USER_EMAIL | 要发送电子邮件的Google账户电子邮件地址 |
| SMTP_SERVER | SMTP服务器地址(默认为smtp.gmail.com) |
| SMTP_PORT | SMTP端口(默认为587) |
错误处理
在使用Gmail API时,可能会遇到以下错误:
- InvalidGrantError:刷新令牌无效或已过期。
- RateLimitExceeded:超出API配额限制。
- PermissionDenied:缺乏必要的权限。
确保您的凭据有效,并且您的Google Cloud项目启用了正确的API。
🔧 技术细节
该项目使用Python开发,借助Gmail API实现电子邮件的发送和回复功能。通过OAuth 2.0进行身份验证,确保数据安全。代码结构清晰,易于扩展和维护。
📄 许可证
文档中未提及许可证相关信息。
⚠️ 重要提示
- 妥善保管
.env文件,切勿将其提交到版本控制中。 - 刷新令牌授予发送邮件的权限,需像对待密码一样谨慎处理。
- 若您担忧安全问题,可考虑使用专用的Google账户进行此集成。
💡 使用建议
- 若遇到身份验证错误,请确保
.env文件中的凭证正确无误。 - 若出现找不到模块错误,请检查Python环境是否已正确安装所有依赖项。
- 若遇到Gmail API配额限制,请联系Google Cloud支持增加配额。
Scan to contact