/ 目录 / 演练场 / mcp-google-sheets
● 社区 xing5 ⚡ 即开即用

mcp-google-sheets

作者 xing5 · xing5/mcp-google-sheets

让 Claude 能读写 Google Sheets — 19 个工具覆盖单元格、行、工作表、图表、公式和跨表搜索。

mcp-google-sheets 把 Sheets 和 Drive API 包装成约 19 个 MCP 工具。涵盖创建电子表格、批量更新单元格、添加图表、跨多个文件搜索和共享。支持 Google 服务账户(推荐用于无头环境)或 OAuth 2.0 认证。

为什么要用

核心特性

实时演示

实际使用效果

google-sheets.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "google-sheets",
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "google-sheets": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-google-sheets"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add google-sheets -- uvx mcp-google-sheets

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: mcp-google-sheets

从任意数据源追加日指标到 Google Sheet

👤 运维 / 增长工程师 ⏱ ~20 min intermediate

何时使用: 你想在 Sheets 中构建轻量级仪表盘,由代理能访问的任何数据源(Sentry、Stripe、数据库等)驱动。

前置条件
  • 启用了 Sheets + Drive API 的 Google 服务账户 — console.cloud.google.com → 创建服务账户 → 下载 JSON → 设置 SERVICE_ACCOUNT_PATH
  • 与服务账户邮箱共享的工作表 — Sheets UI → Share → 将 [email protected] 添加为编辑者
步骤
  1. 确定目标工作表
    使用 mcp-google-sheets 查找标题为 'Daily KPIs' 的电子表格。返回其 ID。✓ 已复制
    → Spreadsheet ID
  2. 追加今天的行
    向 'summary' 工作表追加一行,包含列 [date, signups, mrr, errors]。使用来自 [你的数据源] 的今天数据。✓ 已复制
    → add_rows 确认行已追加到底部
  3. 如需更新图表
    验证 trailing-30d 图表是否包含新行;如果没有,刷新它。✓ 已复制
    → 图表显示今天的数据

结果: 一个实时 Sheets 仪表盘,无需打开文件即可更新。

注意事项
  • 多次单元格更新后触发速率限制 (429) — 使用 batch_update_cells — 一次调用可以修改数百个单元格
  • 服务账户无法访问工作表 — 你必须显式与服务账户邮箱共享工作表 — 服务账户没有隐式访问权限
搭配使用: sentry · postgres

跨多个 Google Sheets 去重

👤 数据运维、CRM 管理员 ⏱ ~25 min intermediate

何时使用: 团队成员维护各自的 Sheets,你需要一份整合的干净列表。

步骤
  1. 列举源工作表
    使用 list_spreadsheets 列出 'Leads 2026' Drive 文件夹中的所有电子表格。✓ 已复制
    → 5-20 个工作表的列表
  2. 将所有行加载到内存
    使用 get_multiple_sheet_data 从每个工作表中提取 'Leads' 标签页。按邮箱合并。✓ 已复制
    → 合并数据集及重复计数
  3. 写入合并工作表
    创建新电子表格 'Leads 2026 - Consolidated',包含去重行并按最近接触时间排序。✓ 已复制
    → 干净的目标工作表

结果: 一个规范工作表;原始工作表保持不变以供审计。

生成包含公式而非冻结值的 Sheets 报告

👤 财务分析师 ⏱ ~30 min advanced

何时使用: 你希望源标签页更新时工作表自动重新计算。

步骤
  1. 创建结构
    创建工作表 'Q1 Report',包含标签页 [summary, by_region, by_product]。✓ 已复制
    → 工作表及标签页已创建
  2. 注入引用源的公式
    在 summary!B2 中写入 =SUMIFS('source'!C:C, 'source'!A:A, ">=2026-01-01")。使用 batch_update 更新公式值。✓ 已复制
    → 动态计算的单元格

结果: 一个自更新报告 — 改变源数据,数字自动更新。

导入 CSV 并用 AI 生成的列丰富每一行

👤 营销人员、销售运维 ⏱ ~30 min intermediate

何时使用: 你有一份 URL/公司列表,想为每一行生成 AI 描述或分类。

步骤
  1. 导入 CSV
    从这个 CSV 创建电子表格:[粘贴]。命名为 'Leads Enriched'。✓ 已复制
    → 包含 N 行的工作表
  2. 添加并填充衍生列
    添加列 'industry' 和 'one_line_pitch'。对每一行,从 url/company 推导它们,并通过 batch_update_cells 写回。✓ 已复制
    → 两个新的已填充列

结果: 已丰富的列表,准备外拓。

搭配使用: firecrawl

组合

与其他 MCP 搭配,撬动十倍杠杆

google-sheets + sentry

将每日无崩溃率记录到 KPI 工作表

每天从 Sentry 提取无崩溃会话百分比,并向我的 'Daily KPIs' 工作表追加一行。✓ 已复制
google-sheets + firecrawl

每周爬取竞争对手页面,将定价写入工作表

对这 5 个竞争对手定价页面运行 firecrawl_extract,并在 'Competitor Pricing' 中为每个计划写入一行。✓ 已复制
google-sheets + postgres

为非技术团队成员将日常数据库查询导出到 Sheets

SELECT * FROM signups WHERE day = CURRENT_DATE; 写入我的运维工作表中的 'Signups' 标签页。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
list_spreadsheets folder_id? 发现文件夹中的工作表 1 Drive API call
create_spreadsheet title: str, sheets?: str[] 创建新文档 1 API call
get_sheet_data spreadsheetId, sheet, range? 读取一个范围 1 API call
update_cells spreadsheetId, range, values 小规模写入 1 API call
batch_update_cells spreadsheetId, updates 任何超过 10 个单元格的写入 — 避免速率限制 1 API call
add_rows spreadsheetId, sheet, rows 仅追加式操作,如日志记录 1 API call
add_chart spreadsheetId, sheet, chart_spec 可视化一个范围 1 API call
share_spreadsheet spreadsheetId, email, role 授予协作访问权限 1 Drive call
search_spreadsheets query: str 在多个文件中查找值 N API calls

成本与限制

运行它的成本

API 配额
Sheets API:每分钟 300 个读取 + 300 个写入请求/项目、60/用户。Drive API:每 100 秒 1k 请求/用户
每次调用 Token 数
100–5000 取决于范围大小
费用
在 Google 默认配额内免费
提示
积极进行批量写入 — batch_update_cells 无论有多少个单元格都只算一次 API 调用

安全

权限、密钥、影响范围

最小权限: https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.file
凭据存储: 服务账户 JSON 位于 SERVICE_ACCOUNT_PATH,或 OAuth tokens 位于 TOKEN_PATH
数据出站: sheets.googleapis.com, drive.googleapis.com
切勿授予: https://www.googleapis.com/auth/drive (完全访问)

故障排查

常见错误与修复

403 The caller does not have permission

与服务账户邮箱共享工作表(JSON 中的 client_email)

验证: 打开工作表 → Share → 确认 SA 已列出
429 Quota exceeded

使用 batch_update 而非多次单个更新;Sheets API 限制为每分钟

Invalid range A1 notation

范围需要包含工作表名称:'Sheet1!A1:C10',而不是 'A1:C10'

gcloud auth works but mcp doesn't

显式设置 SERVICE_ACCOUNT_PATH 以避免歧义

验证: echo $SERVICE_ACCOUNT_PATH

替代方案

mcp-google-sheets 对比其他方案

替代方案何时用它替代权衡
Zapier MCP你已经付费使用 Zapier,想要无代码路由按任务计费;控制力较弱
Notion MCP (databases)你偏好 Notion 的数据库 UI 且不需要公式没有公式引擎

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills