使用说明

项目简介

GSuite MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 客户端提供访问和操作 Google Workspace (Gmail 和 Calendar) 的能力。通过此服务器,LLM 可以安全、可控地读取邮件、发送邮件、管理日历事件等,从而扩展 LLM 的应用场景,例如:智能邮件处理、会议安排助手等。

主要功能点

  • Gmail 工具:
    • 'list_emails': 列出最近的邮件,支持按条件过滤。
    • 'search_emails': 根据关键词或Gmail搜索语法搜索邮件。
    • 'send_email': 发送新邮件,支持抄送和密送。
    • 'modify_email': 修改邮件标签,例如:存档、删除、标记已读/未读。
  • Calendar 工具:
    • 'list_events': 列出未来的日历事件,支持按时间范围过滤。
    • 'create_event': 创建新的日历事件,可以添加参与者。
    • 'update_event': 更新已有的日历事件。
    • 'delete_event': 删除日历事件。

安装步骤

  1. 安装 Node.js: 确保你的电脑上已安装 Node.js (版本 14 或更高)。
  2. 克隆仓库: 使用 git 命令克隆仓库到本地:
    git clone https://github.com/rishipradeep-think41/gsuite-mcp.git
    cd gsuite-mcp
  3. 安装依赖: 在仓库根目录下运行命令安装项目依赖:
    npm install
  4. 配置 OAuth 凭据:
    • 前往 Google Cloud Console 并创建一个项目或选择现有项目。
    • 启用 Gmail APIGoogle Calendar API
    • 创建 OAuth 2.0 客户端 ID,选择 "Web 应用程序" 类型。
    • 在 "已授权的重定向 URI" 中添加 'http://localhost:4100/code'。
    • 下载或记录 客户端 ID (client_id)客户端密钥 (client_secret),并将其填写到项目根目录下的 'credentials.json' 文件中,如下所示:
      {
          "web": {
              "client_id": "YOUR_CLIENT_ID",
              "client_secret": "YOUR_CLIENT_SECRET",
              "redirect_uris": ["http://localhost:4100/code"],
              "auth_uri": "https://accounts.google.com/o/oauth2/auth",
              "token_uri": "https://oauth2.googleapis.com/token"
          }
      }
  5. 获取 Refresh Token: 运行以下命令获取 Google OAuth 的 Refresh Token,并按照提示在浏览器中完成授权。授权成功后,Refresh Token 将会显示在控制台,并保存到 'token.json' 文件中。
    node get-refresh-token.js
    请确保授权以下 Google API 的权限:
    • 'https://www.googleapis.com/auth/gmail.modify'
    • 'https://www.googleapis.com/auth/calendar'
    • 'https://www.googleapis.com/auth/gmail.send'
  6. 构建项目: 运行以下命令构建项目:
    npm run build

服务器配置

要将 GSuite MCP Server 集成到 MCP 客户端(例如 Claude),你需要在客户端的 MCP 服务器配置中添加以下信息。以 JSON 格式配置服务器启动命令及其参数:

{
  "mcpServers": {
    "google-workspace": {  // 服务器名称,可以自定义
      "command": "node",  // 启动服务器的命令,这里使用 node
      "args": [          // 命令参数
        "/path/to/gsuite-mcp/build/index.js" //  index.js 文件的绝对路径,请替换为你的实际路径
      ],
      "env": {            // 环境变量
        "GOOGLE_CLIENT_ID": "YOUR_CLIENT_ID",        //  你的 Google OAuth 客户端 ID,请替换为实际值
        "GOOGLE_CLIENT_SECRET": "YOUR_CLIENT_SECRET",  //  你的 Google OAuth 客户端密钥,请替换为实际值
        "GOOGLE_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN"   //  你获取到的 Google OAuth Refresh Token,请替换为实际值
      }
    }
  }
}

注意:

  • 请将 '"/path/to/gsuite-mcp/build/index.js"' 替换为 'index.js' 文件在你电脑上的实际绝对路径。例如,如果你的项目克隆在用户目录下的 'gsuite-mcp' 文件夹中,那么路径可能类似于 '"/Users/你的用户名/gsuite-mcp/build/index.js"' (macOS/Linux) 或 '"C:\Users\你的用户名\gsuite-mcp\build\index.js"' (Windows)。
  • 请将 '"YOUR_CLIENT_ID"', '"YOUR_CLIENT_SECRET"', 和 '"YOUR_REFRESH_TOKEN"' 替换为你之前步骤中获取到的 客户端 ID客户端密钥Refresh Token 的实际值。

基本使用方法

  1. 启动服务器: 在 MCP 客户端中配置好服务器信息后,客户端通常会自动启动 MCP 服务器。如果需要手动启动,可以在仓库根目录下运行以下命令:

    npm run start

    或者直接运行编译后的 'index.js' 文件:

    node build/index.js

    服务器成功启动后,会在控制台输出 'Google Workspace MCP server running on stdio'。

  2. 通过 MCP 客户端调用工具: 在支持 MCP 协议的 LLM 客户端中,你可以通过自然语言指令或特定的界面操作来调用 GSuite MCP Server 提供的工具。例如,在 Claude 客户端中,你可以指示 Claude "列出我最近的 5 封未读邮件" 或 "创建一个明天上午 10 点的会议,主题是团队会议,参与者是 [email protected]"。 客户端会将这些指令转换为 MCP 请求发送给 GSuite MCP Server,服务器会调用相应的 Google API 并将结果返回给客户端。

    具体的工具调用参数和使用方式请参考仓库 README.md 文件中的 "Usage Examples" 部分,其中提供了各种工具的 JSON 参数示例。 例如,要列出最近的邮件,你可以使用如下 JSON 格式的参数:

    {
      "maxResults": 5,
      "query": "is:unread"
    }

    MCP 客户端会负责将这些参数传递给服务器,并将服务器返回的结果呈现给用户。

注意事项

  • 首次使用需要完成 Google OAuth 授权,确保授予必要的 API 权限。
  • 请妥善保管你的 OAuth 凭据 (客户端 ID、客户端密钥、Refresh Token),避免泄露。
  • 如果遇到 API 错误,请检查 Google Cloud Console 中 API 的配额和限制,以及确保 API 已正确启用。
  • 服务器默认使用 Stdio (标准输入输出) 作为传输协议与 MCP 客户端通信。

信息

分类

生产力应用