使用说明
Gmail MCP服务器
一个使用MCP(消息控制协议)框架构建的强大而灵活的Gmail集成服务器。该服务器提供了一个与Gmail API交互的强大接口,提供了以编程方式读取、发送和管理电子邮件的功能。
特性
- 阅读来自多个Gmail帐户的电子邮件
- 发送带有附件的电子邮件
- 使用高级查询选项搜索电子邮件
- 下载电子邮件附件
- 处理电子邮件对话和线程
- 实时电子邮件监控
- 支持多个Gmail帐户
先决条件
在运行Gmail MCP服务器之前,请确保您拥有以下内容:
- Python 3.12或更高版本
- 启用Gmail API的谷歌云项目
- OAuth 2.0客户端ID凭据
- 必需的Python包(在pyproject.toml中指定)
安装
通过Smithery安装
通过以下方式自动安装适用于Claude Desktop的Gmail集成服务器 史密瑟里:
npx -y @smithery/cli install @Quantum-369/Gmail-mcp-server --client claude
- 克隆存储库:
git clone <your-repository-url>
cd gmail-mcp-server
- 创建并激活虚拟环境:
python -m venv venv
# On Windows
venv\Scripts\activate
# On Unix/MacOS
source venv/bin/activate
- 安装依赖项:
pip install .
在Ubuntu上运行
- 安装Python 3.12并创建一个虚拟环境(如果还没有):
sudo apt install python3.12 python3.12-venv -y python3.12 -m venv venv source venv/bin/activate - 放置您下载的
client_secret.json在项目根中。 - 为您要使用的Gmail帐户生成OAuth令牌。复制URL
将脚本打印到web浏览器中并完成登录过程:
python gmail_token_creator.py - 启动服务器:
python gmail_server.py
设置谷歌云项目
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 为您的项目启用Gmail API
- 创建OAuth 2.0凭据:
- 转到“API和服务”>“凭据”
- 点击“创建凭据”>“OAuth客户端ID”
- 选择“桌面应用程序”作为应用程序类型
- 下载客户端配置文件
- 将下载的文件重命名为
client_secret.json并将其放置在项目根目录中
配置
- 在中设置电子邮件标识符
gmail_token_creator.py:
email_identifier = 'your.email@gmail.com' # Change this for each account
- 运行令牌创建者以验证您的Gmail帐户:
python gmail_token_creator.py
脚本会打印一个授权URL。将此URL复制到您的web浏览器中,
完成谷歌同意流程,并将验证码复制回
终端(如果提示)。将在内部创建令牌文件 token_files/ 为了
未来使用。
- 对每个要集成的Gmail帐户重复此过程
服务器结构
gmail_server.py:主MCP服务器实现gmail_api.py:Gmail API交互功能google_apis.py:Google API身份验证实用程序- 支持文件:
read_emails.py:电子邮件阅读功能search_emails.py:电子邮件搜索功能send_emails.py:电子邮件发送功能
用法
启动服务器
python gmail_server.py
使用Docker运行
您还可以使用提供的 Dockerfile:
docker build -t gmail-mcp-server .
docker run -v $(pwd)/client_secret.json:/app/client_secret.json \
-v $(pwd)/token_files:/app/token_files gmail-mcp-server
容器运行相同的服务器,并将身份验证令牌存储在
token_files 主机上的目录,以便它们在运行之间保持不变。
可用工具
- 发送电子邮件:
await send_gmail(
email_identifier="your.email@gmail.com",
to="recipient@example.com",
subject="Test Subject",
body="Email body content",
attachment_paths=["path/to/attachment"]
)
- 搜索电子邮件:
await search_email_tool(
email_identifier="your.email@gmail.com",
query="from:someone@example.com",
max_results=30,
include_conversations=True
)
- 阅读最新电子邮件:
await read_latest_emails(
email_identifier="your.email@gmail.com",
max_results=5,
download_attachments=False
)
- 下载附件:
await download_email_attachments(
email_identifier="your.email@gmail.com",
msg_id="message_id",
download_all_in_thread=False
)
安全考虑
- 商店
client_secret.json安全,从不将其提交给版本控制 - 确保令牌文件的安全,并将其添加到
.gitignore - 对敏感信息使用环境变量
- 定期轮换OAuth凭据
- 监控API使用情况并设置适当的配额
错误处理
服务器包括全面的错误处理和日志记录:
- 日志被写入
gmail_mcp.log - 文件和控制台日志都已启用
- 调试的详细错误消息
贡献
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建拉取请求
许可证
塞舌尔2.0
支持
对于问题和功能请求,请使用GitHub问题跟踪器。