返回市场
谷歌工具箱PyMCP

谷歌工具箱PyMCP

作者:jikime10 星标更新:2025-05-06

项目介绍

py-mcp-google-toolbox

smithery 徽章 版本 许可证

这是一个提供与 Google 服务(包括 Gmail、Google 日历、Google 驱动器和 Google 搜索)交互的强大工具的 MCP 服务器。

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

概述

py-mcp-google-toolbox 提供以下与 Google 相关的功能:

  • Gmail 操作(读取、搜索、发送、修改)
  • Google 日历管理(事件创建、列出、更新、删除)
  • Google 驱动器交互(搜索、读取文件)
  • Google 搜索集成(网络搜索)

目录

先决条件

  1. Python:安装 Python 3.12 或更高版本
  2. Google Cloud 控制台设置
    • 访问 Google Cloud 控制台
    • 创建新项目或选择现有项目
    • 启用服务 API:
      1. 转到“API 和服务”>“库”
      2. 搜索并启用“Gmail API”
      3. 搜索并启用“Google 日历 API”
      4. 搜索并启用“Google 驱动器 API”
      5. 搜索并启用“自定义搜索 API”
    • 从 GCP 设置 OAuth 2.0 凭据:
      1. 转到“API 和服务”>“凭据”
      2. 点击“创建凭据”>“OAuth 客户端 ID”
      3. 选择“Web 应用程序”
      4. 记下客户端 ID 和客户端密钥
        • 客户端 ID
        • 客户端密钥
      5. 下载密钥 JSON 并重命名为 credentials.json
    • 生成 API 密钥
  3. 访问 自定义搜索引擎 并获取其 ID

安装

Git 克隆

git clone https://github.com/jikime/py-mcp-google-toolbox.git
cd py-mcp-google-toolbox

配置

  1. 安装 UV 包管理器:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 创建并激活虚拟环境:
uv venv -p 3.12
source .venv/bin/activate  # 在 MacOS/Linux 上
# 或
.venv\Scripts\activate  # 在 Windows 上
  1. 安装依赖项:
uv pip install -r requirements.txt
  1. 获取刷新令牌(如果令牌已过期,可以运行此命令)
uv run get_refresh_token.py

这将:

  • 打开浏览器进行 Google OAuth 认证
  • 请求以下权限:
    • https://www.googleapis.com/auth/gmail.modify
    • https://www.googleapis.com/auth/calendar
    • https://www.googleapis.com/auth/gmail.send
    • https://www.googleapis.com/auth/gmail.readonly
    • https://www.googleapis.com/auth/drive
    • https://www.googleapis.com/auth/drive.file
    • https://www.googleapis.com/auth/drive.readonly
  • 将凭据保存到 token.json
  • 在控制台上显示刷新令牌
  1. 环境变量:
cp env.example .env
vi .env
# 更换为你自己的密钥
GOOGLE_API_KEY=your_google_api_key
GOOGLE_CSE_ID=your_custom_search_engine_id
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REFRESH_TOKEN=your_google_refresh_token
  1. 将 credentials.json 复制到项目根目录(py-mcp-google-toolbox)

使用 Docker

  1. 构建 Docker 镜像:
docker build -t py-mcp-google-toolbox .
  1. 运行容器:
docker run py-mcp-google-toolbox

使用本地

  1. 运行服务器:
mcp run server.py
  1. 运行 MCP Inspector
mcp dev server.py

配置 MCP 设置

在你的 MCP 设置文件中添加服务器配置:

Claude 桌面应用

  1. 通过 Smithery 自动安装:
npx -y @smithery/cli install @jikime/py-mcp-google-toolbox --client claude
  1. 手动安装 打开 ~/Library/Application Support/Claude/claude_desktop_config.json

mcpServers 对象中添加以下内容:

{
  "mcpServers": {
    "Google Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-google-toolbox",
        "run",
        "server.py"
      ]
    }
  }
}

Cursor IDE

打开 ~/.cursor/mcp.json

mcpServers 对象中添加以下内容:

{
  "mcpServers": {
    "Google Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-google-toolbox",
        "run",
        "server.py"
      ]
    }
  }
}

对于 Docker

{
  "mcpServers": {
    "Google Toolbox": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "py-mcp-google-toolbox"
      ]
    }
  }
}

工具文档

Gmail 工具

  • list_emails:列出 Gmail 收件箱中的最近邮件,并带有过滤选项
  • search_emails:执行高级 Gmail 搜索,并详细检索电子邮件内容
  • send_email:编写并发送电子邮件,支持 CC、BCC 收件人
  • modify_email:通过修改标签来更改邮件状态(已读/未读、归档、删除)

日历工具

  • list_events:检索指定时间范围内的即将发生的日历事件
  • create_event:创建新的日历事件,包括参与者、地点和描述
  • update_event:通过灵活的参数更新现有的日历事件
  • delete_event:通过事件 ID 删除日历事件

驱动器工具

  • read_gdrive_file:读取并检索 Google 驱动器文件的内容
  • search_gdrive:使用可定制查询搜索 Google 驱动器中的文件

搜索工具

  • search_google:执行 Google 搜索并返回格式化的结果

开发

对于本地测试,你可以使用包含的客户端脚本:

# 示例:列出邮件
uv run client.py list_emails max_results=5 query="is:unread"

# 示例:搜索邮件
uv run client.py search_emails query="from:test@example.com"

# 示例:发送邮件
uv run client.py send_email to="test@example.com" subject="test mail" body="Hello"

# 示例:修改邮件
uv run client.py modify_email id=MESSAGE_ID remove_labels=INBOX add_labels=ARCHIVED

# 示例:列出事件
uv run client.py list_events time_min=2025-05-01T00:00:00+09:00 time_max=2025-05-02T23:59:59+09:00 max_results=5

# 示例:创建事件
uv run client.py create_event summary="new event" start=2025-05-02T10:00:00+09:00 end=2025-05-02T11:00:00+09:00 attendees="user1@example.com,user2@example.com"

# 示例:更新事件
uv run client.py update_event event_id=EVENT_ID summary="update event" start=2025-05-02T10:00:00+09:00 end=2025-05-02T11:00:00+09:00 attendees="user1@example.com,user2@example.com"

# 示例:删除事件
uv run client.py delete_event event_id=EVENT_ID

# 示例:搜索 Google
uv run client.py search_google query="什么是 MCP?"

# 示例:搜索 Google 驱动器
uv run client.py search_gdrive query=mcp

# 示例:读取文件
uv run client.py read_gdrive_file file_id=1234567890

许可证

MIT 许可证