项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于集成 Google Sheets。它允许大型语言模型 (LLM) 客户端通过标准化的 MCP 协议,安全、便捷地访问和操作 Google Sheets 中的电子表格数据。该服务器提供了一系列工具,使 LLM 能够创建、读取、更新和管理电子表格,从而扩展 LLM 在数据处理和分析方面的能力。

主要功能点

  • 数据读取与写入: 支持从 Google Sheets 中读取指定范围的数据,并将数据更新回电子表格。
  • 批量操作: 支持批量更新多个单元格区域,以及批量获取多个表格数据,提高数据处理效率。
  • 电子表格管理: 提供创建新的电子表格和工作表,列出电子表格和工作表,复制和重命名工作表等管理功能。
  • 权限管理: 支持通过邮件分享电子表格给指定用户,并分配不同的访问权限(读者、评论者、作者)。
  • 多种认证方式: 支持服务账号和 OAuth 2.0 两种认证方式,适应不同场景的需求。服务账号认证适合服务器环境,OAuth 2.0 适合个人开发和交互式使用。
  • 资源访问: 提供资源接口,可以获取电子表格的基本信息。

安装步骤

  1. Google Cloud Platform 设置 (所有方法都需要):

    • 访问 Google Cloud Console,创建一个新的 GCP 项目或选择现有项目。
    • 在项目中启用 Google Sheets APIGoogle Drive API
  2. 选择认证方式 (二选一):

    方法 1: 服务账号认证 (推荐)

    • 访问 Google Cloud Console -> IAM & 管理 -> 服务账号。
    • 创建一个新的服务账号,并授予适当的角色(例如 Google Sheets 的访问权限)。
    • 创建并下载 JSON 密钥文件
    • 在 Google Drive 中创建一个专门的文件夹,用于存放由该 MCP 服务器管理的电子表格(例如 "LLM Sheets")。
    • 记录该文件夹的 文件夹 ID (URL 中 'folders/' 后面的部分)。
    • 将该文件夹 共享 给服务账号的邮件地址(在 JSON 密钥文件中 'client_email' 字段)。授予 "编辑者" 权限。

    方法 2: OAuth 2.0 认证 (交互式)

    • 配置 OAuth 同意屏幕。
    • 创建 OAuth 2.0 客户端 ID 凭据 (应用类型选择 桌面应用)。
    • 下载凭据 JSON 文件,并保存为 'credentials.json' (默认文件名)。
  3. 设置环境变量:

    根据选择的认证方式,设置以下环境变量。

    服务账号认证:

    export SERVICE_ACCOUNT_PATH=/path/to/your/service-account-key.json  # 替换为您的服务账号密钥文件路径
    export DRIVE_FOLDER_ID=your_shared_folder_id_here       # 替换为您共享文件夹的 ID

    OAuth 2.0 认证:

    export CREDENTIALS_PATH=/path/to/your/credentials.json   # 替换为您的 OAuth 凭据文件路径
    export TOKEN_PATH=token.json                          # (可选) 令牌文件保存路径,默认为 token.json

    注意: 请将 '/path/to/your/...' 和 'your_shared_folder_id_here' 替换为实际的文件路径和文件夹 ID。

服务器配置

将以下 JSON 配置添加到您的 MCP 客户端配置文件(例如 'claude_desktop_config.json')的 'mcpServers' 字段中。根据您的认证方式选择相应的配置:

使用 uvx 运行 (推荐,服务账号认证):

"google-sheets": {
  "command": "uvx",
  "args": ["mcp-google-sheets"],
  "env": {
    "SERVICE_ACCOUNT_PATH": "/path/to/your/service-account-key.json", // 替换为您的服务账号密钥文件路径
    "DRIVE_FOLDER_ID": "your_shared_folder_id_here"      // 替换为您共享文件夹的 ID
  }
}

使用 uvx 运行 (OAuth 认证):

"google-sheets": {
  "command": "uvx",
  "args": ["mcp-google-sheets"],
  "env": {
    "CREDENTIALS_PATH": "/path/to/your/credentials.json", // 替换为您的 OAuth 凭据文件路径
    "TOKEN_PATH": "token.json"                         // (可选) 令牌文件保存路径,默认为 token.json
  }
}

开发模式运行 (方便修改代码):

"mcp-google-sheets": {
  "command": "uv",
  "args": [
    "--directory",
    "/path/to/mcp-google-sheets", // 替换为 mcp-google-sheets 仓库的本地路径
    "run",
    "mcp-google-sheets"
  ],
  "env": {
    "SERVICE_ACCOUNT_PATH": "/path/to/mcp-google-sheets/service-account-key.json", // 替换为您的服务账号密钥文件路径 (或相对路径)
    "DRIVE_FOLDER_ID": "your_shared_folder_id_here"      // 替换为您共享文件夹的 ID
    // OR for OAuth:
    // "CREDENTIALS_PATH": "/path/to/mcp-google-sheets/credentials.json", // 替换为您的 OAuth 凭据文件路径 (或相对路径)
    // "TOKEN_PATH": "/path/to/mcp-google-sheets/token.json"         // (可选) 令牌文件保存路径,默认为 token.json (或相对路径)
  },
  "disabled": false
}

基本使用方法

配置完成后,在支持 MCP 协议的 LLM 客户端中,即可通过自然语言指令调用 Google Sheets 的功能。以下是一些示例指令:

  • "列出我共享文件夹中的所有电子表格"
  • "创建一个名为 '2024年预算' 的新电子表格"
  • "获取 ID 为 1A2B3C4D5E6F7G8H 的电子表格中 Sheet1 的数据"
  • "在我的预算电子表格中 Sheet2 的开头添加 3 行"
  • "将我的电子表格中 A1:B2 单元格更新为 [[1, 2], [3, 4]]"
  • "列出我的预算电子表格中的所有工作表"
  • "获取我的 '项目跟踪' 和 '团队名册' 电子表格的摘要"
  • "从电子表格 'proj-abc' 的 'Tasks!A1:E10' 范围和电子表格 'roster-xyz' 的 'Sheet1!B2:B' 范围获取数据"
  • "将我的 'Q3 计划' 电子表格以写入者身份分享给 [email protected],以读者身份分享给 [email protected]"

信息

分类

生产力应用