
Google Workspace Mcp
一个提供对 Google Workspace API 身份验证访问的模型上下文协议 (MCP) 服务器,提供集成的身份验证、Gmail、日历和驱动器功能。
Google Workspace MCP 服务器

这个模型上下文协议 (MCP) 服务器让你掌控你的 Google Workspace。一旦连接你的账户——一个简单且安全的过程,只需一分钟即可完成——你就可以开始使用了。在幕后,它会保持你的连接安全和活跃,这样你就可以专注于完成工作,而不是管理登录和权限。
你可以以从未想过的方式掌控你的 Gmail 收件箱。想找到上个季度的提案吗?几秒钟内就能找到。被新闻通讯淹没了吗?它们会自动分类到文件夹中。需要跟踪重要线程的回复吗?标签和过滤器会为你完成这项工作。从起草完美的电子邮件到管理与团队的对话,一切都井然有序。通过流线型的附件处理,你可以轻松查找和管理电子邮件附件,同时系统会在后台处理所有复杂的元数据。
你的日历将成为日常事务中的可靠盟友。不再有重复预订的会议或时区混淆。计划团队同步吗?它会发现最佳的时间段。举办定期研讨会吗?设置一次即可,一劳永逸。即使计划发生变化,也能快速而无痛地找到适合每个人的新时间。那些无穷无尽的“你什么时候有空?”邮件时代已经结束了。
将 Google Drive 从文件存储变成你的数字指挥中心。每个文档都能找到自己的位置,每个文件夹都讲述着一个故事。与正确的人员共享文件——不再有“谁能编辑这个?”的困惑。寻找上周会议的演示文稿吗?不仅搜索文件名,还可以搜索文件内容。无论是组织一个小项目还是管理大量的文档,一切都保持在你需要的地方。
简短安装指南
注意:对于像 Cline 这样的 AI 助手,请参阅 llms-install.md 获取专门的安装指导。
-
创建 Google Cloud 项目:
bash# 前往 Google Cloud 控制台 https://console.cloud.google.com → 创建项目 → 启用 Gmail API 和 Calendar API → 配置 OAuth 同意屏幕(外部) → 创建 OAuth 桌面客户端 ID 和密钥
-
添加到 Cline 设置中(例如,
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
):json{ "mcpServers": { "google-workspace-mcp": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/home/aaron/.mcp/google-workspace-mcp:/app/config", "-v", "/home/aaron/Documents/workspace-mcp-files:/app/workspace", "-e", "GOOGLE_CLIENT_ID", "-e", "GOOGLE_CLIENT_SECRET", "-e", "LOG_MODE=strict", "ghcr.io/aaronsb/google-workspace-mcp:latest" ], "env": { "GOOGLE_CLIENT_ID": "123456789012-abcdef3gh1jklmn2pqrs4uvw5xyz6789.apps.googleusercontent.com", "GOOGLE_CLIENT_SECRET": "GOCSPX-abcdefghijklmnopqrstuvwxyz1234" }, "autoApprove": [], "disabled": false } } }
日志模式:
normal
(默认值):根据每个日志级别使用适当的控制台方法。strict
:将所有非 JSON-RPC 消息路由到 stderr(推荐用于 Claude 桌面)。
-
重启 Cline/Claude
-
只需让 AI 提示“添加我的 Google 账户”,它将通过对话引导你完成认证过程。
有关更多信息,请参见 详细设置指南。
必备条件
在使用此 MCP 服务器之前,您必须设置自己的 Google Cloud 项目并启用 Google Workspace API:
- 在 Google Cloud 控制台 中创建新项目。
- 启用所需的 API:
- Gmail API
- Google Calendar API
- Google Drive API
- 配置 OAuth 同意屏幕:
- 设置为“外部”
- 将自己添加为测试用户
- 添加 Gmail、日历和驱动器所需的范围
- 创建 OAuth 2.0 凭据:
- 选择“桌面应用”类型
- 记下您的客户端 ID 和客户端密钥
- 使用“urn:ietf:wg:oauth:2.0:oob”作为重定向 URI(这启用了外带认证)
MCP 服务器需要以下内容:
- 上述步骤中的 Google OAuth 客户端 ID 和密钥
- 本地目录路径以存储配置(推荐:
~/.mcp/google-workspace-mcp
)
注意:该服务器使用外带 (OOB) 认证流程,这意味着在为每个帐户进行初始设置时,您需要手动复制粘贴授权码。
与 Cline 结合使用
在您的 Cline MCP 设置中添加以下配置:
json
{
"mcpServers": {
"google-workspace-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v", "/home/aaron/.mcp/google-workspace-mcp:/app/config",
"-e", "GOOGLE_CLIENT_ID",
"-e", "GOOGLE_CLIENT_SECRET",
"-e", "LOG_MODE=strict",
"ghcr.io/aaronsb/google-workspace-mcp:latest"
],
"env": {
"GOOGLE_CLIENT_ID": "123456789012-abcdef3gh1jklmn2pqrs4uvw5xyz6789.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "GOCSPX-abcdefghijklmnopqrstuvwxyz1234"
},
"autoApprove": [],
"disabled": false
}
}
}
文件管理
服务器会以结构化的方式自动管理文件:
~/Documents/workspace-mcp-files/
├── [email_1@domain.com]/
│ ├── downloads/ # 从 Drive 下载的文件
│ └── uploads/ # 准备上传的文件
├── [email_2@domain.com]/
│ ├── downloads/
│ └── uploads/
└── shared/
└── temp/ # 临时文件(自动清理)
WorkspaceManager 自动创建并维护此结构:
- 在下载/上传文件时按需创建目录
- 按用户电子邮件组织文件
- 处理临时文件清理
- 维护适当权限
您可以自定义工作区位置,通过设置 WORKSPACE_BASE_PATH
环境变量。
手动使用
重要提示:服务器需要在挂载的配置目录中有一个
accounts.json
文件。首次设置时,在启动容器之前,请将accounts.example.json
复制到您的配置目录中的accounts.json
。
您可以直接运行容器:
bash
docker run -i --rm \
-v ~/.mcp/google-workspace-mcp:/app/config \
-v ~/Documents/workspace-mcp-files:/app/workspace \
-e GOOGLE_CLIENT_ID=123456789012-abcdef3gh1jklmn2pqrs4uvw5xyz6789.apps.googleusercontent.com \
-e GOOGLE_CLIENT_SECRET=GOCSPX-abcdefghijklmnopqrstuvwxyz1234 \
-e LOG_MODE=strict \
ghcr.io/aaronsb/google-workspace-mcp:latest
服务器会自动:
- 创建和管理所有必要的配置文件
- 安全存储凭据和令牌
- 维护适当的文件权限
开发构建
本地构建脚本
为了快速、类似 CI 的本地构建和 Docker 镜像创建,请使用提供的脚本:
bash
# 运行本地构建管道(安装、检查、测试、构建和创建 Docker 镜像)
./scripts/build-local.sh
- 默认情况下,镜像标记为
google-workspace-mcp:local
。 - 要使用详细输出(将所有日志打印到控制台),请添加
--verbose
:bash./scripts/build-local.sh --verbose
- 要更改 Docker 镜像标记:
bash
./scripts/build-local.sh --tag my-custom-tag
- 日志文件写入
/tmp/google-workspace-mcp/
供审查。
构建脚本使用 Dockerfile.local
,它是针对本地开发优化的,没有平台特定的设置或 BuildKit 特性。这确保了不同开发环境之间的兼容性。
手动 Docker 构建
您也可以手动构建和运行容器:
bash
# 使用标准 Dockerfile 构建镜像
docker build -t google-workspace-mcp:local .
# 或使用本地开发 Dockerfile(推荐用于本地开发)
docker build -t google-workspace-mcp:local -f Dockerfile.local .
# 使用所需环境变量运行
docker run -i --rm \
-v ~/.mcp/google-workspace-mcp:/app/config \
-v ~/Documents/workspace-mcp-files:/app/workspace \
-e GOOGLE_CLIENT_ID=123456789012-abcdef3gh1jklmn2pqrs4uvw5xyz6789.apps.googleusercontent.com \
-e GOOGLE_CLIENT_SECRET=GOCSPX-abcdefghijklmnopqrstuvwxyz1234 \
-e LOG_MODE=strict \
google-workspace-mcp:local
功能
- 简化的附件处理,具有自动元数据管理功能
- 集中于关键信息的流线型电子邮件回复
- 强大的附件索引和检索系统
- 高效的 Gmail 和日历文件管理
- 自动清理过期附件
可用工具
帐户管理
-
list_workspace_accounts
(别名:list_accounts, get_accounts, show_accounts)- 列出所有已配置的 Google 帐户及其身份验证状态
- 在执行其他操作之前必须先调用此命令
- 验证所需 API 范围
- 处理多个帐户选择
-
authenticate_workspace_account
(别名:auth_account, add_account, connect_account)- 为 API 访问添加和认证 Google 帐户
- 支持帐户分类(工作、个人)
- 处理带有用户交互的 OAuth 流程
- 自动管理令牌刷新
-
remove_workspace_account
(别名:delete_account, disconnect_account, remove_account)- 删除 Google 帐户及其关联的令牌
- 清理存储的凭据
Gmail 操作
消息和搜索
-
search_workspace_emails
(别名:search_emails, find_emails, query_emails)- 高级电子邮件筛选功能:
- 发件人/收件人筛选
- 主题和内容搜索
- 日期范围筛选
- 是否包含附件
- 基于标签的筛选
- 支持复杂的 Gmail 查询语法
- 常见搜索模式:
- 会议电子邮件
- HR/行政通信
- 团队更新
- 新闻通讯
- 高级电子邮件筛选功能:
-
send_workspace_email
(别名:send_email, send_mail, create_email)- 发送带有完整格式的电子邮件
- 支持 CC/BCC 收件人
- 附件处理
- 电子邮件线程支持
设置和配置
get_workspace_gmail_settings
(别名:get_gmail_settings, gmail_settings, get_mail_settings)- 访问帐户设置
- 语言偏好
- 签名配置
- 自动回复状态
- 过滤器和转发规则
草稿管理
manage_workspace_draft
(别名:manage_draft, draft_operation, handle_draft)- 完整的草稿 CRUD 操作:
- 创建新草稿
- 读取现有草稿
- 更新草稿内容
- 删除草稿
- 发送草稿
- 支持:
- 新电子邮件草稿
- 带有线程的回复草稿
- 草稿修改
- 草稿发送
- 完整的草稿 CRUD 操作:
标签管理
-
manage_workspace_label
(别名:manage_label, label_operation, handle_label)- 完整的标签 CRUD 操作
- 支持嵌套标签
- 自定义颜色配置
- 可见性设置
-
manage_workspace_label_assignment
(别名:assign_label, modify_message_labels, change_message_labels)- 为消息应用/移除标签
- 批量标签修改
- 系统标签更新
-
manage_workspace_label_filter
(别名:manage_filter, handle_filter, filter_operation)- 创建和管理标签过滤器
- 复杂的过滤条件:
- 发件人/收件人模式
- 主题/内容匹配
- 是否包含附件
- 消息大小规则
- 自动化操作:
- 标签应用
- 重要性标记
- 已读状态
- 存档
日历操作
事件管理
-
list_workspace_calendar_events
(别名:list_events, get_events, show_events)- 带过滤的日历事件列表
- 日期范围指定
- 事件内的文本搜索
- 可定制的结果限制
-
get_workspace_calendar_event
(别名:get_event, view_event, show_event)- 详细的事件信息
- 与会者状态
- 事件设置
-
manage_workspace_calendar_event
(别名:manage_event, update_event, respond_to_event)- 事件响应管理:
- 接受/拒绝邀请
- 标记为暂定
- 提议新时间
- 更新事件时间
- 注释支持
- 时区处理
- 事件响应管理:
-
create_workspace_calendar_event
(别名:create_event, new_event, schedule_event)- 创建新的日历事件
- 支持:
- 单次事件
- 循环事件(RRULE 格式)
- 多个与会者
- 时区指定
- 事件描述
- 冲突检查
-
delete_workspace_calendar_event
(别名:delete_event, remove_event, cancel_event)- 删除日历事件
- 与会者的通知选项
Drive 操作
文件管理
-
list_drive_files
(别名:list_files, get_files, show_files)- 带可选过滤的文件列表
- 按文件夹过滤
- 自定义查询支持
- 排序和分页
- 字段选择
-
search_drive_files
(别名:search_files, find_files, query_files)- 全文搜索文件内容
- 按 MIME 类型过滤
- 按文件夹过滤
- 包括/排除已删除文件
- 高级查询选项
-
upload_drive_file
(别名:upload_file, create_file, add_file)- 上传新文件
- 设置文件元数据
- 指定父文件夹
- 支持各种文件类型
-
download_drive_file
(别名:download_file, get_file_content, fetch_file)- 下载任意类型的文件
- 导出 Google Workspace 文件
- 格式转换选项
- 自动 MIME 类型处理
-
delete_drive_file
(别名:delete_file, remove_file, trash_file)- 删除文件和文件夹
- 从 Drive 中干净地移除
文件夹操作
create_drive_folder
(别名:create_folder, new_folder, add_folder)- 创建新文件夹
- 支持嵌套文件夹
- 指定父文件夹
- 文件夹元数据
权限
update_drive_permissions
(别名:share_file, update_sharing, modify_permissions)- 更新共享设置
- 多种权限类型:
- 用户权限
- 组权限
- 域共享
- 公开访问
- 各种访问角色:
- 所有者
- 组织者
- 文件组织者
- 编辑者
- 评论者
- 读者
- 公共文件的发现设置
有关详细用法,请参见 API 文档。
即将推出
未来服务
- Admin SDK 支持
- 其他 Google 服务
测试策略
单元测试方法
-
简化模拟
- 使用静态模拟响应进行可预测的测试
- 在单元测试中避免复杂的端到端模拟
- 一次只测试一个功能模块
- 对外部依赖(OAuth、文件系统)使用简单的实现进行模拟
-
测试组织
- 按功能分组测试(例如,帐户操作、文件操作)
- 使用清晰、描述性的测试名称
- 保持测试专注和隔离
- 在每次测试之间重置模拟和模块
-
模拟管理
- 使用 jest.resetModules() 确保干净的状态
- 修改模拟后重新加载模块
- 明确跟踪模拟函数的调用
- 验证函数调用和结果
-
文件系统测试
- 使用简单的 JSON 结构
- 关注数据正确性而非格式
- 测试错误场景(缺失文件、无效 JSON)
- 验证文件操作而不涉及实现细节
-
令牌处理
- 使用静态响应模拟令牌验证
- 分别测试成功和失败场景
- 验证令牌操作而不涉及 OAuth 复杂性
- 关注帐户管理器的令牌处理逻辑
运行测试
bash
# 运行所有测试
npm test
# 运行特定测试文件
npm test path/to/test.ts
# 运行带有覆盖率的测试
npm test -- --coverage
# CI 构建运行所有测试并报告覆盖率
npm run test:ci
最佳实践
-
认证
- 在 MCP 设置中安全存储凭据
- 使用最小所需的范围
- 正确处理令牌刷新
-
错误处理
- 检查响应状态
- 适当地处理认证错误
- 实现适当的重试机制
-
配置与安全性
- 每个用户维护自己的 Google Cloud 项目
- 在 MCP 设置中配置 OAuth 凭据
- 在 ~/.mcp/google-workspace-mcp 中安全存储令牌
- 定期轮换令牌
- 不要将敏感文件提交到 git
- 为配置目录设置适当的文件权限
-
本地开发设置
- 在 MCP 设置中配置 OAuth 凭据
- 创建 ~/.mcp/google-workspace-mcp 目录
- 将敏感令牌从版本控制中移除
- 为每个帐户运行认证脚本
故障排除
常见设置问题
-
缺少配置
- 错误:“GOOGLE_CLIENT_ID 环境变量是必需的”
- 解决方案:在您的 MCP 设置文件中配置 OAuth 凭据(详见 docs/API.md)
-
认证错误
- 错误:“无效的 OAuth 凭据”
- 解决方案:
- 确认您的 Google Cloud 项目已正确配置
- 确保您已在 OAuth 同意屏幕上添加自己为测试用户
- 检查是否已启用 Gmail API 和 Google Calendar API
- 确认 MCP 设置中的凭据与 OAuth 客户端配置一致
-
令牌问题
- 错误:“令牌刷新失败”
- 解决方案:使用
remove_workspace_account
删除帐户并重新认证 - 检查您的 Google Cloud 项目是否启用了必要的 API 范围
-
目录结构
- 错误:“目录未找到”
- 解决方案:确保 ~/.mcp/google-workspace-mcp 存在并具有适当权限
- 验证 Docker 是否可以挂载配置目录
如有更多帮助需求,请查阅 错误处理 文档。
许可证
MIT 许可证 - 请查看 LICENSE 文件以获取详细信息

Ai Cursor Scraping Assistant
一个强大的工具,利用 Cursor AI 和 MCP(模型上下文协议)轻松为各种类型的网站生成网络爬虫。
Ai Customer Support Bot Mcp Server
一个模型上下文协议(MCP)服务器,使用Cursor AI和Glama.ai集成提供由AI驱动的客户服务。
All In One Model Context Protocol
🚀 集成 AI 搜索、RAG 和多服务集成(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,用于增强开发工作流程
Arxiv Search Mcp
一个提供从 arXiv.org 搜索和获取论文工具的 MCP 服务器。