谷歌工作区MCP
一个模型上下文协议(MCP)服务器,用于通过统一界面与谷歌工作区服务(Gmail、日历、驱动器)进行交互。
特性
Gmail
- 电子邮件管理:发送、接收、列出、搜索和获取电子邮件
- 标签/文件夹:创建、更新、删除和组织带有标签的电子邮件
- 电子邮件操作:标记为已读/未读、星号/取消星号、存档、垃圾箱、删除
- 附件:下载电子邮件附件
- 过滤器:创建和管理电子邮件过滤器/规则
- 联系人:列出、搜索、创建、更新和删除联系人
- 多账户:支持多个Gmail帐户
日历
- 日历管理:列出、创建、更新和删除日历
- 活动操作:创建、更新、删除、搜索和快速添加事件
- 重复事件:创建重复事件、修改单个实例、删除未来事件
- 活动互动:回复邀请、管理提醒、添加Google Meet会议
- 可用性:检查忙/闲状态,查找多个与会者的可用时间段
驾驶
- 文件管理:列出文件和文件夹,获取文件元数据,浏览文件夹内容
- 创建并上传:创建文件夹、仅创建元数据文件和上传文件内容
- 文件传输:在文件夹之间移动文件以及下载/导出文件
安装
go install github.com/jingkaihe/google-workspace-mcp/cmd/google-workspace-mcp@latest
或者从源代码构建:
git clone https://github.com/jingkaihe/google-workspace-mcp
cd google-workspace-mcp
go build -o bin/google-workspace-mcp ./cmd/google-workspace-mcp
设置
1.获取Google OAuth凭据
- 去 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Gmail API、People API、Google Calendar API和Google Drive API
- 转到“凭据”→ “创建凭据”→ “OAuth客户端ID”
- 选择“桌面应用程序”作为应用程序类型
- 下载凭据并另存为
credentials.json
2.初始化帐户
放置 credentials.json 当前目录中的文件或 ~/.config/google-workspace-mcp/,然后运行:
google-workspace-mcp account add
这将:
- 显示授权URL
- 您在浏览器中打开它并授权应用程序
- 将重定向URL复制回CLI
- 存储刷新令牌以备将来使用
3.配置MCP客户端
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"google-workspace": {
"command": "google-workspace-mcp",
"args": []
}
}
}
CLI命令
| 命令 |
描述 |
google-workspace-mcp |
运行MCP服务器(启用所有功能) |
google-workspace-mcp --capabilities=gmail |
仅使用Gmail运行 |
google-workspace-mcp --capabilities=calendar |
仅使用日历运行 |
google-workspace-mcp --capabilities=gmail,calendar |
使用特定功能运行 |
google-workspace-mcp --capabilities=drive |
仅使用Drive运行 |
google-workspace-mcp --capabilities=gmail,calendar,drive |
使用特定功能运行 |
google-workspace-mcp account add |
通过OAuth添加新帐户 |
google-workspace-mcp account list |
列出已连接的帐户 |
google-workspace-mcp account remove <email> |
删除已连接的帐户 |
google-workspace-mcp help |
显示帮助消息 |
google-workspace-mcp version |
显示版本 |
能力标志
这 --capabilities 标志允许您启用特定功能:
# Default: all capabilities enabled
google-workspace-mcp
# Enable specific capabilities only
google-workspace-mcp --capabilities=gmail
google-workspace-mcp --capabilities=calendar
google-workspace-mcp --capabilities=drive
google-workspace-mcp --capabilities=gmail,calendar,drive
优点:
- 最小权限原则:只启用所需的功能
- 减少OAuth范围请求:授权过程中的权限占用较小
- 刀具表面更小:MCP客户端需要处理的工具更少
- 更容易调试:专注于特定功能
可用的MCP工具
电子邮件操作
| 工具 |
说明 |
gmail_list_accounts |
列出所有已连接的Gmail帐户 |
gmail_list_emails |
列出带有可选查询、标签和分页的电子邮件 |
gmail_get_email |
通过ID获取特定电子邮件 |
gmail_search_emails |
使用Gmail查询语法搜索电子邮件 |
gmail_send_email |
发送电子邮件(支持HTML、CC、BCC、附件) |
电子邮件操作
| 工具 |
说明 |
gmail_mark_read |
将电子邮件标记为已读 |
gmail_mark_unread |
将电子邮件标记为未读 |
gmail_star_email |
发送电子邮件 |
gmail_unstar_email |
从电子邮件中删除星号 |
gmail_archive_email |
存档电子邮件(从收件箱中删除) |
gmail_trash_email |
将电子邮件移至垃圾箱 |
gmail_delete_email |
永久删除电子邮件 |
gmail_modify_labels |
在电子邮件中添加/删除标签 |
标签
| 工具 |
说明 |
gmail_list_labels |
列出所有标签/文件夹 |
gmail_create_label |
创建新标签 |
gmail_update_label |
重命名标签 |
gmail_delete_label |
删除标签 |
附件
| 工具 |
说明 |
gmail_get_attachment |
下载电子邮件附件(返回base64) |
过滤器
| 工具 |
说明 |
gmail_list_filters |
列出电子邮件过滤器/规则 |
gmail_create_filter |
创建电子邮件筛选器 |
gmail_delete_filter |
删除电子邮件筛选器 |
联系人
| 工具 |
说明 |
gmail_list_contacts |
按页码列出联系人 |
gmail_search_contacts |
搜索联系人 |
gmail_create_contact |
创建新联系人 |
gmail_update_contact |
更新现有联系人 |
gmail_delete_contact |
删除联系人 |
日历管理
| 工具 |
说明 |
calendar_list_calendars |
列出所有日历 |
calendar_create_calendar |
创建新日历 |
calendar_update_calendar |
更新日历名称、描述、时区 |
calendar_delete_calendar |
删除日历 |
活动操作
| 工具 |
说明 |
calendar_list_events |
使用可选筛选器(日期范围、日历)列出事件 |
calendar_get_event |
获取特定事件的完整详细信息 |
calendar_create_event |
创建包含与会者、描述、位置、时间、重复次数的活动 |
calendar_update_event |
更新事件详细信息、时间、与会者、重复性 |
calendar_delete_event |
删除单个事件或整个重复系列 |
calendar_search_events |
按查询文本搜索事件 |
calendar_quick_add_event |
使用自然语言创建事件 |
calendar_move_event |
将事件移动到其他日历 |
活动互动
| 工具 |
说明 |
calendar_respond_to_event |
回复(接受、拒绝、暂定)活动邀请 |
calendar_update_reminders |
添加、更新或删除事件提醒 |
calendar_add_conferencing |
将Google Meet链接添加到活动中 |
重复事件
| 工具 |
说明 |
calendar_get_recurring_instances |
获取重复事件的实例 |
calendar_delete_future_events |
删除此事件和所有未来事件 |
可用性和调度
| 工具 |
说明 |
calendar_get_free_busy |
检查一个或多个用户的可用性 |
calendar_find_available_slots |
在与会者中查找常见的空闲时段 |
驾驶操作
| 工具 |
说明 |
drive_list_accounts |
列出所有已连接的Google Workspace帐户 |
drive_list_files |
列出文件/文件夹、浏览文件夹内容或搜索驱动器 |
drive_get_file |
获取特定文件或文件夹的元数据 |
drive_create_folder |
创建驱动器文件夹 |
drive_create_file |
创建仅包含元数据的文件,包括Google文档/表格/幻灯片类型 |
drive_upload_file |
使用base64编码内容上传文件 |
drive_move_file |
将文件或文件夹移动到另一个父文件夹 |
drive_update_file |
更新文件或文件夹元数据,如名称或描述 |
drive_delete_file |
永久删除文件或文件夹 |
drive_download_file |
下载文件或导出Google Workspace文档 |
Gmail搜索查询语法
使用时 gmail_list_emails 或 gmail_search_emails,您可以使用Gmail的搜索运营商:
| 操作员 |
示例 |
描述 |
from: |
from:john@example.com |
发件人的电子邮件 |
to: |
to:jane@example.com |
给收件人的电子邮件 |
subject: |
subject:meeting |
主题包含以下内容的电子邮件 |
has:attachment |
has:attachment |
带附件的电子邮件 |
is:unread |
is:unread |
未读电子邮件 |
is:starred |
is:starred |
带星号的电子邮件 |
label: |
label:important |
带有标签的电子邮件 |
after: |
after:2024/01/01 |
日期后的电子邮件 |
before: |
before:2024/12/31 |
日期前的电子邮件 |
newer_than: |
newer_than:7d |
过去7天的电子邮件 |
older_than: |
older_than:1m |
超过1个月的电子邮件 |
联合操作员: from:boss@company.com is:unread has:attachment
配置
配置和令牌存储在:
~/.config/google-workspace-mcp/tokens.json -连接帐户的OAuth令牌
~/.config/google-workspace-mcp/credentials.json -(可选)OAuth凭据
需要OAuth作用域
gmail.GmailReadonlyScope -阅读电子邮件
gmail.GmailSendScope -发送电子邮件
gmail.GmailModifyScope -修改电子邮件(标签、已读/未读)
gmail.GmailLabelsScope -管理标签
gmail.GmailSettingsBasicScope -管理筛选器
people.ContactsScope -完整联系人访问权限
people.ContactsReadonlyScope -读取联系人
calendar.CalendarScope -完全访问日历
calendar.CalendarEventsScope -访问日历事件
drive.DriveScope -完全访问驱动器文件和文件夹
安全
- OAuth令牌以受限权限安全地存储在您的主目录中(0600)
- 刷新令牌用于保持持久访问,而不存储密码
- 应用程序仅请求启用功能所需的OAuth作用域
许可证
麻省理工学院