🔧 MCP谷歌工具服务器
功能齐全 模型上下文协议 谷歌工作区服务器。\ 让您的AI助手实时访问Drive、Gmail、日历、表格、文档和应用程序脚本。
   
______________________________________________________________________
✨ 它能做什么
| 服务 | 能力 |
|---|---|
| 📁 Google 云端硬盘 | 搜索、复制、移动、共享、管理权限 |
| 📊 谷歌表格 | 读/写范围、命名范围、过滤视图、查找和替换、CSV导出 |
| 📄 谷歌文件 | 读取、创建、附加文本、填写模板、导出为PDF |
| 📧 Gmail | 起草、发送、搜索、存档、标记、删除并确认 |
| 📅 Google 日历 | 列出活动、查找空闲时段、创建与与会者的会议 |
| ⚙️ 应用程序脚本 | 读取、分阶段更新、自动备份、回滚 |
| 🔗 资源 | 将实时驱动器/Gmail/日历/表格/文档快照附加到AI上下文 |
| 💬 提示 | 现成的人工智能模板:汇总收件箱、分析电子表格、计划周、搜索文件 |
______________________________________________________________________
🧩 MCP图元
此服务器公开了所有三种MCP基元类型:
🛠 工具
50+可执行操作
由AI按需调用。
每个工具都有注释
readOnlyHint / destructiveHint
因此,客户可以在采取危险行动之前发出警告。
📦 资源
只读数据快照
直接附加实时谷歌数据
转到AI上下文窗口
无需调用工具。
支持静态URI和模板。
💬 提示
可重复使用的AI模板
在MCP客户端中选择提示
获取实时数据并开始
有条理的谈话
只需单击一下。
______________________________________________________________________
🚀 快速开始
1--安装依赖项
pip install -r requirements.txt2--设置谷歌OAuth
在中创建OAuth 2.0客户端ID 谷歌云控制台,下载JSON,并记下其路径。
完整的分步指南: docs/AUTH_SETUP.md · docs/ru/AUTH_SETUP.md
3--配置服务器
cp config.example.yaml config.yaml
# then edit config.yaml — set paths and choose MCP_AUTH_TOKEN💡 How to create MCP_AUTH_TOKEN
MCP_AUTH_TOKEN 是您选择的秘密字符串。你可以把它看作是 此MCP服务器的本地激活密钥,而不是作为网络安全层或身份验证机制。
- 服务器在开始处理工具之前只检查此令牌是否已配置——这是一个额外的安全步骤,可以避免在没有明确设置的情况下意外运行。
- 发明任何随机字符串,例如。
MySecretToken_2026!或者使用密码生成器。 - 建议长度:16+个字符。避免重复使用密码。
- 设置它
config.yaml→mcp_auth_token: "your_token"或 作为env变量MCP_AUTH_TOKEN.
令牌从不发送到任何地方——它只在服务器进程内部进行本地检查。确实如此 不 限制服务器运行后AI代理可以执行的操作。有关更多详细信息,请参阅 docs/SECURITY.md / docs/ru/SECURITY.md.
4--连接IDE
替换 具有此存储库的绝对路径,以及 your_token_here 用你的代币。
Cursor — .cursor/mcp.json or ~/.cursor/mcp.json
{
"mcpServers": {
"google-tools": {
"command": "python",
"args": ["
\\server.py"],
"env": {
"MCP_AUTH_TOKEN": "your_token_here",
"MCP_CONFIG_FILE": "
\\config.yaml"
}
}
}
}Windsurf — %APPDATA%\Codeium\Windsurf\mcp_config.json (Windows)
{
"mcpServers": {
"google-tools": {
"command": "python",
"args": ["
\\server.py"],
"env": {
"MCP_AUTH_TOKEN": "your_token_here",
"MCP_CONFIG_FILE": "
\\config.yaml"
}
}
}
}VS Code (Copilot MCP) — .vscode/mcp.json or MCP: Open User Configuration
用途servers(不是mcpServers).需要VS代码1.102+和启用副驾驶。
{
"servers": {
"google-tools": {
"type": "stdio",
"command": "python",
"args": ["
\\server.py"],
"env": {
"MCP_AUTH_TOKEN": "your_token_here",
"MCP_CONFIG_FILE": "
\\config.yaml"
}
}
}
}Other IDEs — generic MCP stdio config
使用相同的 command / args / env根密钥可能是 mcpServers 或 servers.
{
"mcpServers": {
"google-tools": {
"command": "python",
"args": ["
\\server.py"],
"env": {
"MCP_AUTH_TOKEN": "your_token_here",
"MCP_CONFIG_FILE": "
\\config.yaml"
}
}
}
}5--烟雾检查
连接后,呼叫 get_gmail_profile() 在您的AI客户端中。\ 如果OAuth配置正确,它应该返回经过身份验证的Gmail地址。
______________________________________________________________________
📖 使用示例
Basic operations
# Verify authentication
Tool: get_gmail_profile
→ Authenticated Gmail address: user@example.com
# Search for files in Drive
Tool: find_files
Arguments: {"query": "name contains 'budget'"}
→ - Budget_2026.xlsx (ID: 1a2b3c...) [spreadsheet]
# Read a Google Sheet
Tool: read_sheet
Arguments: {"spreadsheet_id": "1a2b3c4d5e...", "range_name": "Sheet1!A1:C10"}
→ | Name | Email | Status |
| John | j@corp.io | Active |
# Create a draft email (safe by default — never sends without draft_mode=false)
Tool: send_email
Arguments: {"to": "colleague@example.com", "subject": "Notes", "body_text": "...", "draft_mode": true}
→ EMAIL DRAFT CREATED (ID: r1234...) — saved as draft, not sent.Resources — attach live data to context
# Recent Drive files (no arguments needed)
Resource URI: gdrive://recent
# Unread inbox snapshot
Resource URI: gmail://inbox
# This week's calendar
Resource URI: gcalendar://upcoming
# Specific spreadsheet range
Resource URI: gsheets://1a2b3c4d5e.../Sheet1!A1:D20
# Specific Google Doc
Resource URI: gdocs://1a2b3c4d5e...Prompts — one-click AI workflows
| 提示 | 它做什么 |
|---|---|
summarize_inbox | 获取最近的Gmail邮件→ 已准备好进行AI总结 |
analyze_spreadsheet | 读取图纸范围→ 为AI分析/图表做好准备 |
plan_week | 加载日历事件→ 准备好日程安排建议 |
search_drive | 搜索驱动器文件→ 随时准备提供组织建议 |
______________________________________________________________________
🛡 安全特性
| 功能 | 受影响的工具 |
|---|---|
confirm=true 必填项 | delete_email, gmail_archive, calendar_create_meeting, drive_revoke_public, doc_fill_template |
dry_run=true 默认情况下 | batch_delete_emails, sheet_find_replace |
| 大范围自动干运行 | clear_range (提示确认高于阈值) |
| 默认情况下为草稿模式 | send_email (除非 draft_mode=false) |
| 公共共享被阻止 | share_file 块 type=anyone 除非 allow_public=true |
| 工具注释 | 每个工具都带有 readOnlyHint / destructiveHint 用于客户端警告 |
⚠️ 您的AI代理可以访问您通过OAuth授权的所有数据。 对敏感帐户使用只读范围。看 docs/SECURITY.md.
______________________________________________________________________
⚙️ 配置参考
config.yaml 钥匙
| 关键 | 环境覆盖 | 默认 | 描述 |
|---|---|---|---|
client_secrets_file | GOOGLE_CLIENT_SECRETS_FILE | -- | 从Google Cloud下载OAuth JSON的路径 |
token_file | GOOGLE_TOKEN_FILE | ~/.google/token.json | 首次登录后保存OAuth令牌的位置 |
mcp_auth_token | MCP_AUTH_TOKEN | — | 必修的。 激活服务器的令牌 |
log_file | GOOGLE_LOG_FILE | stderr only | 日志文件的路径(可选) |
log_level | GOOGLE_LOG_LEVEL | INFO | 日志冗长: DEBUG / INFO / WARNING / ERROR |
backup_dir | GOOGLE_BACKUP_DIR | -- | 应用程序脚本自动备份目录 |
scopes | -- | 完全访问 | OAuth作用域列表(请参阅安全文档) |
MCP_CONFIG_FILE--指向您的config.yaml。在IDE中设置此项env块。\ 环境变量始终覆盖配置文件值。
Minimal config.yaml example
client_secrets_file: "C:\\Users\\you\\.google\\oauth.keys.json"
token_file: "C:\\Users\\you\\.google\\token.json"
mcp_auth_token: "MySecretToken_2026!"
log_level: "INFO"______________________________________________________________________
📦 完整工具列表
📁 Drive (8 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
find_files | read | 按名称或驱动器查询搜索 |
drive_search_advanced | read | 带结果限制的Full Drive查询语法 |
drive_list_permissions | read | 列出文件权限 |
create_folder | write | 创建文件夹 |
move_file | write | 将文件移动到文件夹 |
drive_copy_file | write | 复制文件 |
share_file | write | 与用户/组/域/任何人共享 |
drive_revoke_public | 破坏性 | 撤销公共访问(confirm=true) |
📊 Sheets (11 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
read_sheet | read | 读取单元格范围 |
get_spreadsheet_meta | read | 电子表格元数据 |
sheet_export_csv | read | 将范围导出到CSV |
append_row | write | 追加一行 |
update_sheet | write | 将行写入某个范围 |
create_spreadsheet | write | 创建新的电子表格 |
add_sheet | write | 添加新选项卡/工作表 |
sheet_create_filter_view | write | 创建筛选器视图 |
sheet_create_named_range | write | 创建命名范围 |
sheet_find_replace | write | 查找并替换(dry_run=true 默认情况下) |
clear_range | 破坏性 | 清除范围(大范围自动干运行) |
📄 Docs (5 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
read_doc | read | 读取文档文本 |
doc_export_pdf | read | 将文档导出为二进制PDF |
create_doc | write | 创建新文档 |
append_to_doc | write | 附加文本 |
doc_fill_template | 破坏性 | 填充模板占位符(confirm=true) |
📧 Gmail (11 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
get_gmail_profile | read | 获取经过身份验证的电子邮件地址 |
list_emails | read | 列出电子邮件(可选搜索查询) |
read_email | 阅读 | 阅读一封电子邮件 |
gmail_search_and_summarize | read | 搜索并返回简要摘要 |
create_draft | 写 | 创建草稿 |
send_email | 写 | 发送或起草电子邮件(draft_mode=true 默认情况下) |
send_draft | 写 | 发送现有草稿 |
gmail_label_apply | 书写 | 应用标签(dry_run=true 默认情况下) |
gmail_archive | 写 | 存档邮件(confirm=true) |
delete_email | 破坏性 | 删除电子邮件(confirm=true) |
batch_delete_emails | 破坏性 | 删除多封电子邮件(dry_run=true 默认情况下) |
📅 Calendar (4 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
list_events | read | 列出即将发生的事件 |
calendar_find_free_slots | read | 查找空闲时段 |
create_event | write | 创建事件 |
calendar_create_meeting | 编写 | 创建与与会者的会议(confirm=true) |
⚙️ Apps Script (6 tools)
| 工具 | 类型 | 描述 |
|---|---|---|
get_script_content | read | 读取项目文件 |
create_script_project | write | 创建新项目 |
prepare_script_update | write | 进行更新,获取 operation_id |
execute_operation | write | 执行分阶段更新(带自动备份) |
cancel_operation | write | 取消挂起的分段更新 |
restore_script_backup | write | 从自动备份还原 |
______________________________________________________________________
📚 文档
🇬🇧 英语
| 文档 | 描述 |
|---|---|
| AUTH_SETUP.md | Google OAuth安装指南 |
| 工具_参考.md | 完整的工具、资源和提示参考 |
| 安全.md | OAuth范围、安全功能、最佳实践 |
| IDE_SETUP.md | 游标、Windsurf、VS代码和其他IDE设置 |
| 学习.md | 如何构建此MCP服务器(分步教程) |
🇷🇺 俄语
文档描述 |----------|----------| | AUTH_SETUP.md Google OAuth的一步一步 | 工具_参考.md –工具、资源和插件的完整目录→ | 安全.md –Oauth scopes,保护,推荐→ | IDE_SETUP.md –配置Cursor、Windsurf、VS Code和其他IDE→
______________________________________________________________________
⚠️ 责任通知
您有责任了解此服务器执行操作的风险和后果。\ 您可以自行决定使用它,并遵循您组织的安全策略。
______________________________________________________________________
