Google Workspace MCP

Google Workspace MCP是一个用于通过统一接口与Google Workspace服务(Gmail、Calendar、Drive)交互的模型上下文协议服务器。

  • by jingkaihe
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 jingkaihe/google-workspace-mcp

使用说明

谷歌工作区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凭据

  1. 去 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Gmail API、People API、Google Calendar API和Google Drive API
  4. 转到“凭据”→ “创建凭据”→ “OAuth客户端ID”
  5. 选择“桌面应用程序”作为应用程序类型
  6. 下载凭据并另存为 credentials.json

2.初始化帐户

放置 credentials.json 当前目录中的文件或 ~/.config/google-workspace-mcp/,然后运行:

google-workspace-mcp account add

这将:

  1. 显示授权URL
  2. 您在浏览器中打开它并授权应用程序
  3. 将重定向URL复制回CLI
  4. 存储刷新令牌以备将来使用

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作用域

许可证

麻省理工学院