Google Workspace工具集成服务器

基于Model Context Protocol的Google Workspace集成服务器,提供Gmail、Drive、Docs、Slides、Sheets、Calendar、Contacts和Tasks等240种工具功能,适用于企业办公自动化和开发集成场景。

  • by salviz
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 salviz/google-mcp-server

使用说明

谷歌工作区MCP服务器

A. 模型上下文协议 (MCP)服务器提供 240工具 对于Google工作区: Gmail, 驾驶, 文档, 幻灯片, 表格, 日历, 联系人,以及 任务.

内置于 googleapis 和 @modelcontextprotocol/sdk.

特性

服务 工具 亮点
Gmail 75 发送/读取/回复/转发、草稿、标签、线程、附件、过滤器、设置、S/MIME、CSE、委托、监视、HTML链接提取
驾驶 47 搜索、CRUD、上传/下载、导出、回收、共享、权限、修订、评论、回复、共享驱动器、标签、访问建议
日历 30 事件CRUD、搜索、快速添加、导入、重复实例、忙/闲、ACL、日历管理、监视、设置
表格 17 读取、写入、创建、追加、清除、批处理操作、数据过滤器、开发人员元数据、复制表
联系人 22 CRUD、批量操作、照片、联系人组、其他联系人、目录搜索
任务 14 任务和任务列表CRUD、完成、移动/重新排序、清除
文档 7 创建、读取、插入文本/表格/图像、批量更新、查找和替换
幻灯片 8 创建、阅读、添加幻灯片、获取页面、缩略图、插入文本、替换文本、批量更新

先决条件

  • Node.js 18+
  • A. 谷歌云平台 具有OAuth 2.0凭据的项目(桌面应用程序类型)
  • 以下 API已启用:
    • Gmail API
    • Google Drive API
    • 谷歌文档API
    • 谷歌幻灯片API
    • 谷歌网页API
    • 谷歌日历API
    • 人民API(联系人)
    • 任务API

快速安装

git clone https://github.com/salviz/google-mcp-server.git
cd google-mcp-server
npm install

使用克劳德代码注册

CLI:

claude mcp add google-workspace -- node /path/to/google-mcp-server/index.js

或者添加到您的MCP配置中(~/.claude/claude_desktop_config.json 或 .mcp.json):

{
  "mcpServers": {
    "google-workspace": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/google-mcp-server/index.js"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_TOKEN_PATH": "/path/to/credentials.json"
      }
    }
  }
}

环境变量

变量 必填 描述
GOOGLE_CLIENT_ID 是 OAuth 2.0客户端ID
GOOGLE_CLIENT_SECRET 是 OAuth 2.0客户端密钥
GOOGLE_TOKEN_PATH 否 令牌JSON文件的路径(默认: ~/.google-mcp/credentials.json)
GOOGLE_TOKEN_SECRET 否 用于令牌回退的Google Secret Manager秘密名称(默认值: google-mcp-oauth-tokens)

令牌文件格式

{
  "access_token": "ya29...",
  "refresh_token": "1//...",
  "token_type": "Bearer",
  "expiry_date": 1700000000000
}

服务器会自动刷新过期的令牌并将更新持久化到磁盘。如果Google Cloud Secret Manager可用,令牌也会作为跨会话回退存储在那里。

工具(240)

Gmail(75)

工具 说明
gmail_profile 获取Gmail个人资料信息(电子邮件、消息/线程总数、历史ID)
gmail_send 发送新电子邮件(纯文本或HTML)
gmail_read 阅读包含全文、HTML链接提取和附件信息的邮件
gmail_reply 回复消息(保持线程)
gmail_forward 将邮件转发给其他收件人
gmail_list 列出最近的消息
gmail_search 使用Gmail查询语法搜索邮件
gmail_mark_read 将邮件标记为已读
gmail_mark_unread 将邮件标记为未读
gmail_modify_labels 在邮件中添加或删除标签
gmail_trash 将邮件移至垃圾箱
gmail_untrash 从垃圾箱中删除邮件
gmail_delete 永久删除邮件
gmail_batch_modify 一次修改多封邮件上的标签
gmail_batch_delete 永久删除多条消息
gmail_insert_message 将邮件直接插入邮箱
gmail_import_message 导入邮件(类似于通过SMTP接收)
gmail_get_attachment 从邮件中下载附件
gmail_list_threads 列出消息线程
gmail_get_thread 获取一个线程中的所有消息
gmail_thread_modify 修改螺纹上的标签
gmail_thread_trash 将线程移到垃圾桶
gmail_thread_untrash 从回收站还原线程
gmail_thread_delete 永久删除一个线程
gmail_create_draft 创建新草稿
gmail_list_drafts 列出所有草稿
gmail_get_draft 获取特定草稿
gmail_update_draft 更新现有草稿
gmail_delete_draft 删除草稿
gmail_send_draft 发送草稿
gmail_list_labels 列出所有标签
gmail_get_label 获取特定标签
gmail_create_label 创建新标签
gmail_update_label 更新标签
gmail_delete_label 删除标签
gmail_list_history 列出自历史ID以来的邮箱更改
gmail_get_auto_forwarding 获取自动转发设置
gmail_update_auto_forwarding 更新自动转发设置
gmail_get_imap 获取IMAP设置
gmail_update_imap 更新IMAP设置
gmail_get_pop 获取POP设置
gmail_update_pop 更新POP设置
gmail_get_language 获取语言设置
gmail_update_language 更新语言设置
gmail_get_vacation 获取假期回复设置
gmail_update_vacation 更新假期回复设置
gmail_list_send_as 以别名发送列表
gmail_get_send_as 获取别名发送
gmail_create_send_as 创建发送别名
gmail_update_send_as 更新以别名发送
gmail_delete_send_as 删除以别名发送
gmail_verify_send_as 以别名发送验证
gmail_list_filters 列出电子邮件过滤器
gmail_get_filter 获取特定筛选器
gmail_create_filter 创建新筛选器
gmail_delete_filter 删除筛选器
gmail_list_forwarding_addresses 列出转发地址
gmail_get_forwarding_address 获取转发地址
gmail_create_forwarding_address 创建转发地址
gmail_delete_forwarding_address 删除转发地址
gmail_list_delegates 列出邮件代理
gmail_get_delegate 获取邮件代理
gmail_create_delegate 创建邮件代理
gmail_delete_delegate 删除邮件代理
gmail_list_smime 列出S/MIME证书
gmail_get_smime 获取S/MIME证书
gmail_insert_smime 插入S/MIME证书
gmail_delete_smime 删除S/MIME证书
gmail_set_default_smime 设置默认S/MIME证书
gmail_list_cse_identities 列出CSE身份
gmail_get_cse_identity 获取CSE身份
gmail_create_cse_identity 创建CSE身份
gmail_patch_cse_identity 修补CSE身份
gmail_delete_cse_identity 删除CSE标识
gmail_list_cse_keypairs 列出CSE密钥对
gmail_get_cse_keypair 获取CSE密钥对
gmail_create_cse_keypair 创建CSE密钥对
gmail_enable_cse_keypair 启用CSE密钥对
gmail_disable_cse_keypair 禁用CSE密钥对
gmail_obliterate_cse_keypair 永久删除CSE密钥对
gmail_watch 通过发布/订阅设置推送通知
gmail_stop_watch 停止推送通知

谷歌云端硬盘(47)

工具 说明
drive_search 使用驱动器查询语法搜索文件
drive_read 读取文件内容(检测二进制文件,建议下载)
drive_list 列出文件夹中的文件
drive_file_info 获取详细的文件元数据
drive_create_folder 创建新文件夹
drive_create_file 创建新的文本文件
drive_update_file 更新文件名、内容或描述
drive_delete 永久删除文件
drive_trash 将文件移至回收站
drive_untrash 从回收站还原文件
drive_copy 复制文件
drive_move 将文件移动到其他文件夹
drive_share 共享文件(用户、组、域或任何人)
drive_list_permissions 列表共享权限
drive_get_permission 获取特定权限
drive_update_permission 更新共享权限
drive_remove_permission 删除共享权限
drive_about 获取存储配额和用户信息
drive_upload_file 从本地文件系统上传二进制文件
drive_download_file 将文件下载到本地文件系统
drive_get_comments 列出文件的评论
drive_get_comment 获取具体评论
drive_add_comment 向文件添加注释
drive_update_comment 更新评论
drive_delete_comment 删除评论
drive_create_reply 对评论的回复
drive_list_replies 列出对评论的回复
drive_get_reply 获得具体回复
drive_update_reply 更新回复
drive_delete_reply 删除回复
drive_export_file 导出谷歌工作区文件(PDF、DOCX、CSV等)
drive_get_revisions 列出文件修订历史记录
drive_get_revision 获取特定修订
drive_update_revision 更新修订元数据
drive_delete_revision 删除修订
drive_empty_trash 永久清空所有垃圾
drive_get_changes_start_token 获取更改的起始页标记
drive_list_changes 列出自页面标记以来的文件更改
drive_watch_file 监视文件的更改(webhook)
drive_watch_changes 注意文件更改(webhook)
drive_stop_channel 停止观看频道
drive_generate_ids 为上传生成文件ID
drive_list_labels 列出文件上的标签
drive_modify_labels 修改文件上的标签
drive_list_access_proposals 列出文件的访问建议
drive_get_access_proposal 获取特定的访问建议
drive_resolve_access_proposal 接受或拒绝访问提议
drive_list_apps 列出已安装的Drive应用程序
drive_get_app 获取特定的Drive应用程序
drive_get_operation 获取长时间运行的操作状态
drive_create_shared_drive 创建共享驱动器
drive_list_shared_drives 列出共享驱动器
drive_get_shared_drive 获取共享驱动器
drive_update_shared_drive 更新共享驱动器
drive_hide_shared_drive 隐藏共享驱动器
drive_unhide_shared_drive 取消隐藏共享驱动器
drive_delete_shared_drive 删除共享驱动器

谷歌日历(30)

工具 说明
calendar_list_events 列出即将发生的事件,并提供可选的时间范围
calendar_search_events 按文本搜索事件
calendar_create_event 创建活动(支持全天)
calendar_update_event 更新现有事件
calendar_delete_event 删除事件
calendar_get_event 获取详细的事件信息
calendar_move_event 在日历之间移动事件
calendar_quick_add 从自然语言创建事件
calendar_import_event 通过iCal UID导入事件
calendar_recurring_instances 列出重复事件的实例
calendar_freebusy 查看日历的忙/闲时间
calendar_list_calendars 列出所有可访问的日历
calendar_create_calendar 创建新日历
calendar_get_calendar 获取日历详细信息
calendar_update_calendar 更新日历属性
calendar_delete_calendar 删除日历
calendar_clear 清除日历中的所有事件
calendar_list_get 获取日历列表条目
calendar_list_update 更新日历列表条目
calendar_list_insert 订阅日历
calendar_list_delete 取消订阅日历
calendar_acl_list 列出日历访问控制规则
calendar_acl_get 获取特定的ACL规则
calendar_acl_insert 添加ACL规则
calendar_acl_update 更新ACL规则
calendar_acl_delete 删除ACL规则
calendar_get_colors 获取可用的日历/活动颜色
calendar_list_settings 列出所有用户设置
calendar_get_setting 获取特定设置
calendar_acl_watch 查看ACL更改(webhook)
calendar_watch_events 监视事件更改(webhook)
calendar_list_watch 查看日历列表更改(webhook)
calendar_watch_settings 监视设置更改(webhook)
calendar_stop_channel 停止观看频道

谷歌表格(17)

工具 说明
sheets_read 从电子表格区域读取数据
sheets_write 将数据写入范围
sheets_create 创建新的电子表格
sheets_append 在现有数据后追加行
sheets_clear 清除某个范围内的值
sheets_batch_clear 一次清除多个范围
sheets_batch_get 一次读取多个范围
sheets_batch_update 结构操作(添加图纸、合并单元格、图表)
sheets_batch_update_values 一次写入多个范围
sheets_get_info 获取电子表格元数据
sheets_copy_sheet 将工作表复制到另一个电子表格
sheets_get_by_data_filter 使用数据过滤器获取电子表格数据
sheets_batch_get_by_data_filter 使用数据过滤器获取值
sheets_batch_update_values_by_data_filter 使用数据过滤器更新值
sheets_batch_clear_by_data_filter 使用数据过滤器清除范围
sheets_developer_metadata_search 搜索开发人员元数据
sheets_developer_metadata_get 按ID获取开发人员元数据

谷歌联系人(22)

工具 说明
contacts_list 使用可选搜索列出联系人
contacts_get 获取特定联系人
contacts_create 创建新联系人
contacts_update 更新现有联系人
contacts_delete 删除联系人
contacts_batch_create 一次创建多个联系人
contacts_batch_update 一次更新多个联系人
contacts_batch_get 一次获取多个联系人
contacts_batch_delete 一次删除多个联系人
contacts_update_photo 上传联系人照片
contacts_delete_photo 删除联系人照片
contacts_groups_list 列出联系人组
contacts_group_create 创建联系人组
contacts_group_get 建立一个联络小组
contacts_group_update 更新联系人组
contacts_group_delete 删除联系人组
contacts_group_batch_get 获取多个联系人组
contacts_group_modify_members 在组中添加或删除成员
contacts_other_list 列出“其他联系人”(自动保存)
contacts_other_search 搜索其他联系人
contacts_other_copy 将其他联系人复制到我的联系人中
contacts_search_directory 搜索组织目录(工作区)
contacts_list_directory 列出目录联系人(工作区)

谷歌任务(14)

工具 说明
tasks_list 列出所有任务列表
tasks_get_list 获取特定任务列表
tasks_create_list 创建新任务列表
tasks_delete_list 删除任务列表
tasks_list_tasks 在任务列表中列出任务
tasks_get 获取特定任务
tasks_create 创建新任务
tasks_update 更新任务
tasks_complete 将任务标记为已完成
tasks_delete 删除任务
tasks_move 移动或重新排序任务
tasks_clear 从列表中清除已完成的任务

谷歌文档(7)

工具 说明
docs_create 使用可选内容和文件夹创建新文档
docs_read 以纯文本形式读取完整文档内容
docs_insert_text 在某个位置插入文本
docs_batch_update 应用批量更新请求
docs_insert_table 插入表格
docs_insert_image 从URL插入内联图像
docs_find_replace 查找和替换文本

谷歌幻灯片(8)

工具 说明
slides_create 创建新演示文稿
slides_read 阅读所有幻灯片内容
slides_add_slide 添加新幻灯片
slides_get_page 获取特定幻灯片的详细信息
slides_get_thumbnail 为幻灯片生成缩略图URL
slides_insert_text 在形状或文本框中插入文本
slides_replace_all_text 查找并替换所有幻灯片中的文本
slides_batch_update 应用批量更新请求

安装指南

1.创建谷歌云项目

去 谷歌云控制台 并创建或选择一个项目。

2.启用API

在 API和服务>库,启用:Gmail、驱动器、文档、幻灯片、表格、日历、人员和任务API。

3.创建OAuth 2.0凭据

  1. 导航至 API和服务>凭据
  2. 点击 创建凭据>OAuth客户端ID
  3. 选择 桌面应用
  4. 注意 client_id 和 client_secret

4.获取代币

使用附带的重新授权助手:

GOOGLE_CLIENT_ID=your-client-id GOOGLE_CLIENT_SECRET=your-client-secret node reauth.js

这将启动一个本地服务器,打开一个身份验证URL,并在您授权后保存令牌。

所需的OAuth作用域:

  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.settings.basic
  • https://www.googleapis.com/auth/gmail.settings.sharing
  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/contacts
  • https://www.googleapis.com/auth/tasks
  • https://www.googleapis.com/auth/documents
  • https://www.googleapis.com/auth/spreadsheets
  • https://www.googleapis.com/auth/presentations

5.保存代币

mkdir -p ~/.google-mcp
# Tokens are automatically saved to ~/.google-mcp/credentials.json by reauth.js

测试

运行全面的测试套件(测试所有240个工具):

GOOGLE_CLIENT_ID=your-id GOOGLE_CLIENT_SECRET=your-secret node test-all.js

项目结构

google-mcp-server/
  index.js              # Server entry point, registers all tool modules
  auth.js               # OAuth 2.0 client, token management, Secret Manager fallback
  reauth.js             # OAuth re-authorization helper
  test-all.js           # Comprehensive test suite for all 240 tools
  tools/
    gmail.js            # 75 Gmail tools
    drive.js            # 47 Google Drive tools
    docs.js             # 7 Google Docs tools
    slides.js           # 8 Google Slides tools
    calendar.js         # 30 Google Calendar tools
    extras.js           # 36 tools: Contacts (22), Tasks (14), Sheets (17 - in sheets section)
  package.json

安全

  • 没有硬编码凭据 --所有秘密都通过环境变量
  • 本地存储的令牌 --除了谷歌的OAuth API,从未传输过
  • 自动令牌刷新 --过期的令牌以静默方式刷新
  • 秘密管理员回退 --可选择将令牌存储在Google Cloud Secret Manager中以增强弹性
  • 仅限标准运输 --没有暴露的网络服务器
  • 令牌文件解析 包裹在试抓中,增强韧性

依赖项

包装 用途
@modelcontextprotocol/sdk MCP服务器框架
googleapis 官方Google API客户端
zod 工具参数的模式验证

许可证

麻省理工学院