返回市场
谷歌-mcp

谷歌-mcp

作者:vakharwalad2313 星标更新:2025-09-15

项目介绍

Google MCP 工具

smithery 徽章

这是一组针对MCP 协议的 Google 原生工具(例如,Gmail、日历),旨在无缝集成到像 Claude 或 Cursor 这样的 AI 客户端中。

<a href="https://glama.ai/mcp/servers/@vakharwalad23/google-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=3829102688,2709859161&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Google MCP 服务器" /> </a>

快速安装

点击下方进行一键安装(使用 .mcpb):

<a href="https://github.com/vakharwalad23/google-mcp/releases/download/v1.1.0/google-mcp.mcpb"> <img width="280" alt="使用 Claude MCPB 安装" src="https://github.com/user-attachments/assets/dfcf4fe2-d94d-4b6b-86e4-2794fea74fff" /> </a> <details> <summary>JSON 配置</summary>
{
  "mcpServers": {
    "google-mcp": {
      "command": "bunx",
      "args": ["--no-cache", "google-mcp@latest"],
      "env": {
        // 可以选择使用其中一种,但不能同时使用两种
        // 使用 OAuth
        "GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS> 可以是系统中的任意位置",
        // 使用服务账户
        "GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
        "GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
        "GMAIL_USER_TO_IMPERSONATE": "<USER_TO_IMPERSONATE>"
      }
    }
  }
}
</details>

v1.1.0 新特性

🆕 主要功能

  • 完整的邮件附件支持
    • ✉️ 从本地文件或 Google Drive 发送带有附件的邮件
    • 📥 下载所有邮件附件 到本地存储
    • 🔄 双附件来源:本地文件路径或 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 查看特定邮件及其附件信息。
    • 管理标签(添加、删除、列出)。
    • 草稿和删除邮件。
  • 日历

    • 列出日历并设置默认日历。
    • 创建事件详情(摘要、开始/结束时间、参会者等)。
    • 列出即将到来的事件,可自定义过滤器。
    • 更新或删除现有事件。
    • 查找可用于安排的时间段。
  • Drive

    • 使用搜索查询进行筛选
    • 按修改日期或其他标准排序
    • 自定义显示数量
    • 查看详细的文件元数据
    • 读取文件内容(文本、文档、电子表格)
    • 创建具有指定内容的新文件
    • 更新现有文件
    • 删除文件(放入回收站或永久删除)
    • 分享文件并设置权限
  • 任务

    • 查看所有任务列表
    • 创建新的任务列表
    • 删除现有的任务列表
    • 设置默认任务列表
    • 根据过滤器列出任务
    • 查看任务详情
    • 创建具有标题、备注和截止日期的任务
    • 更新任务属性
    • 标记任务为完成
    • 删除任务
  • 待办事项计划

    • Google 联系人:搜索和管理联系人。
    • 更多功能...

您可以链式命令来实现工作流,例如:

“列出我的未读邮件,对最新的邮件草拟回复,并安排明天下午 2 点的跟进会议。”

OAuth 令牌管理

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

  • 自动令牌刷新:当访问令牌过期时,您可以通过刷新令牌而无需再次经历完整的 OAuth 流程
  • 完整的重新认证:自动处理刷新令牌无效或已过期的情况
  • 持久存储:刷新后的令牌会自动保存到您配置的令牌文件路径
  • 会话连续性:所有 Google 服务在刷新后都会使用新鲜的令牌重新初始化

刷新令牌

如果您遇到身份验证错误或希望主动刷新令牌,只需请求:

刷新我的 Google OAuth 令牌

这将:

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

完整的重新认证

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

重新认证我的 Google 账户

这个自动化过程将:

  1. 从令牌文件中删除现有令牌
  2. 启动 OAuth 服务器 来处理回调
  3. 打开浏览器 进行新的身份验证
  4. 自动保存新令牌
  5. 使用新鲜凭据重新初始化服务

您只需要在浏览器中点击“允许”——其余步骤都是自动化的!

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

手动安装

  1. 先决条件:

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

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

{
  "mcpServers": {
    "google-mcp": {
      "command": "bunx",
      "args": ["--no-cache", "google-mcp@latest"],
      "env": {
        // 可以选择使用其中一种,但不能同时使用两种
        // 使用 OAuth
        "GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS>",
        // 使用服务账户
        "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。

使用方法

现在,让 Claude 使用 google-mcp 工具。

向 jane.doe@example.com 发送一封主题为“会议记录”的邮件,正文为“这是今天的笔记。”
列出我接下来三天的日历事件。
创建一个名为“团队同步”的日历事件,定于明天上午 10 点,持续 1 小时。
刷新我的 Google OAuth 令牌
重新认证我的 Google 账户

传输支持

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

Stdio 传输(默认)

# 默认模式 - 使用 stdio 传输
bun run dev
# 或显式
MCP_TRANSPORT=stdio bun run index.ts

HTTP 传输(可流式传输的 HTTP)

# 支持可流式传输的 HTTP 的 HTTP 模式
MCP_TRANSPORT=http bun run index.ts
# 或自定义端口
MCP_TRANSPORT=http PORT=3000 bun run index.ts

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

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

会话管理

可流式传输的 HTTP 传输使用官方 MCP SDK 并具有自动会话管理:

  1. 自动会话:服务器自动生成安全的会话 ID
  2. SSE 流式传输:支持 Server-Sent Events 用于实时通信
  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

# 在 stdio 模式下运行(默认)
bun run dev:stdio

# 在 HTTP 模式下运行
b
bun run dev:http

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

尽情尝试这些工具吧!