使用说明
Gmail和日历多帐户MCP服务器
本地人 模型上下文协议(MCP) 将多个Gmail帐户和谷歌日历连接到克劳德桌面的服务器。完全在您的计算机上运行,无需云托管。
特性
- 多个账户 --根据需要连接尽可能多的Gmail或Google Workspace帐户
- 统一电子邮件搜索 --使用Gmail的完整查询语法同时搜索所有帐户
- 完全读取权限 --读取单个消息和整个线程
- 发送并起草 --从任何帐户撰写和发送电子邮件,或保存草稿
- 标签管理 --列出标签、标记为已读/未读、星号消息
- 谷歌日历 --列出日历、浏览即将举行的活动、按关键字搜索
需求
- macOS(在macOS 14+上测试)
- Python 3.11+
- 启用Gmail API和日历API的谷歌云项目(免费)
- 克劳德桌面版
安装
1.克隆存储库
git clone https://github.com/DiegoMaldonadoRosas/gmail-mcp.git
cd gmail-mcp
2.运行安装脚本
bash setup.sh
这将创建一个虚拟环境并安装所有Python依赖项。
3.配置您的帐户
复制示例配置并填写您的帐户:
cp config.json.example config.json
编辑 config.json:
{
"accounts": {
"personal": {
"email": "you@gmail.com",
"description": "Personal Gmail"
},
"work": {
"email": "you@company.com",
"description": "Work account"
}
},
"credentials_dir": "./credentials"
}
帐户密钥(personal, work)是您在要求Claude与特定帐户交互时将使用的名称。
4.获取Google OAuth凭据
- 首选 谷歌云控制台
- 创建一个项目并启用 Gmail API 和那个 谷歌日历API
- 首选 API和服务→ 凭证→ + 创建凭据→ OAuth 2.0客户端ID
- 选择 桌面应用程序 作为应用程序类型
- 下载JSON文件并将其另存为
credentials/client_secret.json - 首选 API和服务→ OAuth同意屏幕→ 测试用户 并添加您在中配置的每个电子邮件地址
config.json
5.验证您的帐户
source .venv/bin/activate
python setup_auth.py
每个帐户都将打开一个浏览器窗口。使用正确的Google帐户登录。令牌保存在本地并自动刷新——每个帐户只需要执行一次。
注: 如果您之前仅通过Gmail身份验证,则必须重新运行
setup_auth.py添加日历支持后,令牌将包含新的日历权限。
6.将服务器添加到Claude Desktop
打开 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加:
{
"mcpServers": {
"gmail": {
"command": "/absolute/path/to/gmail-mcp/.venv/bin/python",
"args": ["/absolute/path/to/gmail-mcp/server.py"]
}
}
}
替换 /absolute/path/to/gmail-mcp 使用克隆仓库的实际路径。
7.重新启动克劳德桌面
所有工具将自动显示。
可用工具
Gmail
| 工具 | 说明 |
|---|---|
list_accounts |
列出所有已配置的帐户及其身份验证状态 |
gmail_get_profile |
获取帐户配置文件和邮箱统计信息 |
gmail_search |
使用Gmail查询语法搜索电子邮件(一个或所有帐户) |
gmail_read_message |
阅读消息的全部内容 |
gmail_read_thread |
阅读一个线程中的所有消息 |
gmail_send |
从特定帐户发送电子邮件 |
gmail_create_draft |
将电子邮件另存为草稿 |
gmail_list_drafts |
列出帐户中的草稿 |
gmail_list_labels |
列出所有标签和文件夹 |
gmail_modify_labels |
添加或删除标签(标记已读/未读、星号等) |
gmail_trash |
将邮件移至垃圾箱 |
谷歌日历
| 工具 | 说明 |
|---|---|
calendar_list_calendars |
列出帐户的所有日历(主日历、工作日历、共享日历等) |
calendar_list_events |
列出即将发生的事件,可选择按日期范围筛选 |
calendar_search |
按关键字(标题、描述、位置、与会者)搜索事件 |
calendar_get_event |
获取特定事件的完整详细信息 |
使用示例
连接后,您可以问Claude以下问题:
电子邮件:
- “我的工作帐户中有未读的电子邮件吗?”
- “在我的所有账户中搜索上个月收到的发票”
- “阅读我个人帐户中约翰的最后一封电子邮件”
- “在我的工作帐户中起草预算电子邮件的回复”
- “标记来自的所有电子邮件newsletter@example.com如读“
日历:
- “我的工作账户本周有哪些会议?”
- “在我的个人日历中搜索与‘产品发布’相关的活动”
- “列出我工作帐户中的所有日历”
- “明天脱口秀的细节是什么?”
添加新帐户
- 将帐户添加到
config.json - 将电子邮件添加为Google Cloud Console中的测试用户(OAuth同意屏幕)
- 跑
python setup_auth.py--它只会提示输入新帐户 - 重新启动克劳德桌面
安全
- OAuth令牌存储在本地
credentials/tokens/并通过以下方式排除在版本控制之外.gitignore config.json(包含您的电子邮件地址)也被排除在版本控制之外- 不会向任何第三方服务器发送任何内容,所有通信都直接在您的Mac和Google的API之间进行
- 要随时撤销访问权限,请访问 myaccount.google.com/permissions
项目结构
gmail-mcp/
├── server.py # MCP server — exposes 15 tools to Claude
├── auth.py # OAuth2 token manager (per account)
├── gmail.py # Gmail API wrapper
├── gcalendar.py # Google Calendar API wrapper
├── config.py # Configuration loader
├── setup_auth.py # One-time authentication script
├── setup.sh # First-time installer
├── requirements.txt # Python dependencies
├── config.json.example # Account configuration template
└── .gitignore # Excludes credentials and config.json
许可证
麻省理工学院
