Google MCP 工具集

Google MCP 工具集是一套基于MCP协议的Google原生工具(如Gmail、日历等),旨在与AI客户端(如Claude或Cursor)无缝集成,提供邮件、日历、任务管理等服务。

  • by vakharwalad23
  • TypeScript
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 vakharwalad23/google-mcp

使用说明

谷歌MCP工具

这是谷歌原生工具(如Gmail、日历)的集合,用于 MCP协议,旨在与Claude或Cursor等AI客户端无缝集成。

快速安装

点击下方,一键安装 .mcpb:

JSON configs
{
  "mcpServers": {
    "google-mcp": {
      "command": "bunx",
      "args": ["--no-cache", "google-mcp@latest"],
      "env": {
        // Either can be used, but not both
        // Use OAuth
        "GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS> CAN_BE_ANYWHERE_ON_YOUR_SYSTEM",
        // Use Service Account
        "GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
        "GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
        "GMAIL_USER_TO_IMPERSONATE": "<USER_TO_IMPERSONATE>"
      }
    }
  }
}

v1.1.0的新增功能

🆕 主要功能

  • 完整的电子邮件附件支持:
    • ✉️ 发送带有附件的电子邮件 从本地文件或Google云端硬盘
    • 📥 下载所有电子邮件附件 到本地存储
    • 🔄 双附件来源:本地文件路径或Google Drive文件ID
    • 📁 智能文件处理:自动MIME类型检测和文件名净化

🔧 增强的电子邮件功能

  • 多源附件:将本地存储或Google Drive中的文件附加到同一电子邮件中
  • 自定义文件名:覆盖附件的原始文件名
  • 文件大小验证:自动执行25MB Gmail限制
  • 跨平台下载:自动检测Windows、macOS和Linux上的下载文件夹
  • 冲突解决:自动重命名文件以防止覆盖

📁 新工具和增强工具

  • google_gmail_send_email:现在支持来自本地文件和Google Drive的附件
  • google_gmail_draft_email:创建带有附件的草稿
  • google_gmail_download_attachments:下载所有具有可自定义路径的电子邮件附件

特性

  • OAuth管理:

    • 自动刷新过期的访问令牌
    • 更新令牌文件中的令牌,无需重新身份验证
    • 通过自动令牌清理完成重新身份验证
    • 在长时间运行的操作中保持会话连续性
  • Gmail:

    • 发送多个收件人的电子邮件(收件人、抄送、密件抄送)和 来自本地文件或Google Drive的附件.
    • 下载所有电子邮件附件 支持跨平台的本地存储。
    • 列出带有自定义查询、标签和结果限制的电子邮件。
    • 按ID读取带有附件信息的特定电子邮件。
    • 管理标签(添加、删除、列出)。
    • 起草和删除电子邮件。
  • 日历:

    • 列出日历并设置默认日历。
    • 创建包含详细信息(摘要、开始/结束时间、与会者等)的活动。
    • 使用可定制的过滤器列出即将发生的事件。
    • 更新或删除现有事件。
    • 寻找空闲时间段进行日程安排。
  • 驾驶:

    • 使用搜索查询进行筛选
    • 按修改日期或其他条件排序
    • 自定义显示计数
    • 查看详细的文件元数据
    • 读取文件内容(文本、文档、电子表格)
    • 使用指定内容创建新文件
    • 更新现有文件
    • 删除文件(垃圾或永久)
    • 共享具有特定权限的文件
  • 任务:

    • 查看所有任务列表
    • 创建新任务列表
    • 删除现有任务列表
    • 设置默认任务列表
    • 使用筛选器列出任务
    • 查看任务详细信息
    • 创建带有标题、注释和截止日期的任务
    • 更新任务属性
    • 将任务标记为已完成
    • 删除任务
  • 所有计划:

    • 谷歌联系人:搜索和管理联系人。
    • 还有更多。..

您可以为工作流链接命令,例如:

“列出我未读的电子邮件,起草对最新电子邮件的回复,并安排明天下午2点的后续会议。”

托管部署

托管部署可在 Frontier AI.

OAuth令牌管理

服务器包括内置的OAuth令牌管理,可以优雅地处理过期的访问令牌:

  • 自动令牌刷新:当访问令牌过期时,您可以刷新它们,而无需再次执行完整的OAuth流程
  • 完成重新身份验证:自动处理刷新令牌无效或过期的情况
  • 永久存储:刷新的令牌会自动保存到配置的令牌文件路径中
  • 会话连续性:刷新后,所有谷歌服务都会用新的令牌重新初始化

刷新令牌

如果您遇到身份验证错误或想主动刷新令牌,只需询问:

Refresh my Google OAuth tokens

这将:

  1. 使用您存储的刷新令牌获取新的访问令牌
  2. 用新凭据更新令牌文件
  3. 使用新的身份验证重新初始化所有Google服务
  4. 显示新的令牌过期时间

完成重新身份验证

如果你得到 invalid_grant 错误或刷新令牌已过期,您可以重新开始:

Re-authenticate my Google account

这个自动化过程将:

  1. 删除现有令牌 从您的令牌文件
  2. 启动OAuth服务器 处理回调
  3. 打开浏览器 用于新身份验证
  4. 保存新令牌 自动地
  5. 重新初始化服务 持有新证书

您只需在浏览器中单击“允许”-其他一切都是自动化的!

备注:如果您没有有效的刷新令牌,则需要再次执行初始OAuth身份验证流程。

手动安装

  1. 先决条件:

    • 安装Bun:
    brew install oven-sh/bun/bun  # macOS/Linux with Homebrew
    
  2. 设置OAuth:

    • 在中创建Google Cloud项目 谷歌云控制台.
    • 设置OAuth 2.0凭据(客户端ID、客户端密码)。
    • 选择桌面应用程序类型。
    • 如果使用测试模式,请将您的电子邮件添加到测试用户列表中。
    • 确保启用API访问所需的服务(Gmail、日历、驱动器等)。
  3. 配置您的客户端:编辑claude_desktop_config.json(或客户端的等效配置文件):

{
  "mcpServers": {
    "google-mcp": {
      "command": "bunx",
      "args": ["--no-cache", "google-mcp@latest"],
      "env": {
        // Either can be used, but not both
        // Use OAuth
        "GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS>",
        // Use Service Account
        "GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
        "GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
        "GMAIL_USER_TO_IMPERSONATE": "<USER_TO_IMPERSONATE>"
      }
    }
  }
}
  1. 身份验证:
    • 第一次运行服务器时,它将打开一个浏览器进行OAuth身份验证。按照提示授予访问权限,令牌将保存到GOOGLE_OAUTH_TOKEN_PATH。

用法

现在,让克劳德使用 google-mcp 工具。

Send an email to jane.doe@example.com with the subject "Meeting Notes" and body "Here are the notes from today."
List my upcoming calendar events for the next 3 days.
Create a calendar event titled "Team Sync" tomorrow at 10 AM for 1 hour.
Refresh my Google OAuth tokens
Re-authenticate my Google account

运输支持

此MCP服务器通过环境变量支持stdio和HTTP传输:

标准传输(默认)

# Default mode - uses stdio transport
bun run dev
# Or explicitly
MCP_TRANSPORT=stdio bun run index.ts

HTTP传输(流式HTTP)

# HTTP mode with Streamable HTTP support
MCP_TRANSPORT=http bun run index.ts
# Or with custom port
MCP_TRANSPORT=http PORT=3000 bun run index.ts

在HTTP模式下运行时,服务器提供以下端点:

  • GET /health -带有会话计数的健康检查端点
  • GET /mcp -会话信息和服务器状态
  • POST /mcp -用于发送请求的主MCP JSON-RPC端点
  • DELETE /mcp -结束会话端点

会话管理

Streamable HTTP传输使用带有自动会话管理的官方MCP SDK:

  1. 自动会话:服务器自动生成安全会话ID
  2. SSE流媒体:支持服务器发送事件进行实时通信
  3. JSON响应:当SSE不可用时,返回JSON响应
  4. DNS保护:用于生产部署的内置安全功能

HTTP传输配置

对于HTTP传输,请使用服务器URL配置客户端:

{
  "mcpServers": {
    "google-mcp-http": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

本地开发

git clone https://github.com/vakharwalad23/google-mcp.git
cd google-mcp
bun install

# Run in stdio mode (default)
bun run dev:stdio

# Run in HTTP mode
bun run dev:http

感谢您使用谷歌MCP工具!如果您有任何问题或建议,请随时提出问题或为项目做出贡献。

玩这些工具,享受吧!!