mcp-google-sheets
mcp-google-sheets 是一款基于 Python 开发的开源工具,旨在充当 AI 助手与谷歌表格(Google Sheets)之间的智能桥梁。它通过模型上下文协议(MCP),让兼容的 AI 客户端(如 Claude Desktop)能够直接读取、创建和修改你的电子表格数据,将自然语言指令转化为具体的表格操作。
这一工具主要解决了 AI 无法直接访问或操作用户云端数据的痛点。以往用户需要手动在 AI 对话和表格软件间复制粘贴数据,流程繁琐且易错;而 mcp-google-sheets 实现了自动化闭环,让用户能通过简单的对话完成复杂的数据整理、报表生成及工作流自动化任务。
它特别适合希望提升办公效率的普通用户、需要处理大量数据的分析师,以及想要为 AI 应用集成表格功能的开发者。对于熟悉命令行操作的技术人员,它能快速嵌入现有工作流;对于非技术用户,配合支持 MCP 的 AI 桌面端,也能轻松享受“动口不动手”的数据管理体验。
其技术亮点在于轻量化的部署方式,仅需一行命令即可通过 uvx 启动最新服务,无需复杂的环境配置。同时,它支持多种认证模式,推荐使用谷歌云服务账号以确保企业级的数据安全与稳定连接,是构建本地化 AI 数据助手的理想选择。
使用场景
某电商运营团队需要每日从多个渠道汇总销售数据,并自动生成包含图表和公式的日报表格供管理层审阅。
没有 mcp-google-sheets 时
- 运营人员需手动登录 Google Sheets,逐个复制粘贴来自 CSV 或数据库的原始数据,耗时且极易出错。
- 每次更新数据后,必须人工重新拖拽填充公式、调整透视表范围,无法实现动态联动。
- 若需批量创建分地区的日报文件,只能重复机械操作或编写复杂的本地 Python 脚本并处理繁琐的 OAuth 认证。
- AI 助手虽能分析数据,但因无法直接读写云端表格,只能输出文本建议,无法直接落地为可编辑的电子表格。
使用 mcp-google-sheets 后
- 团队成员只需向 AI 助手发送指令,mcp-google-sheets 即可自动连接 Google Drive,将多源数据清洗后写入指定工作表。
- 工具支持直接调用 API 插入公式和图表,数据变动时表格内容实时自动更新,彻底解放双手。
- 通过自然语言即可让 AI 批量创建并按命名规则整理数十个地区日报,底层自动完成服务账号鉴权与文件夹管理。
- AI 助手结合 mcp-google-sheets 的能力,不仅能分析趋势,还能直接生成并分享带有完整计算逻辑的最终报表文件。
mcp-google-sheets 打通了 AI 思维与云端数据执行的最后一公里,让电子表格自动化从“人工辅助”跃升为“智能原生”。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
🤔 这是什么?
mcp-google-sheets 是一个基于 Python 的 MCP 服务器,充当任何兼容 MCP 的客户端(如 Claude Desktop)与 Google Sheets API 之间的桥梁。它允许您使用一组预定义的工具与 Google 表格进行交互,从而实现由 AI 驱动的强大自动化和数据处理工作流。
🚀 快速入门(使用 uvx)
本质上,服务器只需一行命令即可运行:uvx mcp-google-sheets@latest。
该命令会自动下载最新代码并运行。我们建议始终使用 @latest,以确保您拥有包含最新功能和错误修复的最新版本。
请参阅 ID 参考指南 以获取有关下方使用的 ID 的更多信息。
☁️ 前提条件:Google Cloud 设置
- 您必须先配置 Google Cloud Platform 凭据并启用必要的 API。我们强烈建议使用服务账号。
- ➡️ 请跳转至下方的 Google Cloud Platform 详细设置 指南。
🐍 安装
uvuvx是uv的一部分,uv是一个快速的 Python 包管理器和解析器。如果您尚未安装,请执行以下操作:
根据安装程序输出中的说明,将# macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 或者使用 pip: # pip install uvuv添加到您的 PATH 中(如果需要)。
🔑 设置必要的环境变量(推荐使用服务账号)
- 您需要告知服务器如何进行身份验证。在终端中设置以下变量:
- (Linux/macOS)
# 替换为您实际的路径和来自 Google 设置步骤的文件夹 ID export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json" export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID" - (Windows CMD)
set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json" set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID" - (Windows PowerShell)
$env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json" $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID" - ➡️ 请参阅 身份验证与环境变量详细说明 以了解其他选项(OAuth、
CREDENTIALS_CONFIG)。
🏃 启动服务器!
uvx会自动下载并运行最新版本的mcp-google-sheets:uvx mcp-google-sheets@latest- 服务器将启动,并打印日志表明已准备就绪。
💡 小贴士: 始终使用
@latest以确保获得包含错误修复和新功能的最新版本。如果不使用@latest,uvx可能会使用缓存的旧版本。
🔌 连接您的 MCP 客户端
- 配置您的客户端(例如 Claude Desktop)以连接到正在运行的服务器。
- 根据您使用的客户端,可能不需要第 4 步,因为客户端可以为您启动服务器。不过,最好还是按照第 4 步测试运行一下,以确保一切设置正确。
- ➡️ 请参阅 与 Claude Desktop 的使用方法 以获取示例。
⚡ 可选:启用工具过滤(减少上下文使用)
- 默认情况下,所有 19 个工具均被启用(约 13K 个标记)。为了减少上下文使用,您可以仅启用所需的工具。
- ➡️ 请参阅 工具过滤:减少上下文使用 以获取详细信息。
现在您已经准备就绪!可以通过您的 MCP 客户端开始发出命令了。
✨ 核心特性
- 无缝集成: 直接连接到 Google Drive 和 Google Sheets API。
- 全面的工具集: 提供广泛的操作功能(CRUD、列出、批量处理、共享、格式化等)。
- 灵活的身份验证: 支持服务账号(推荐)、OAuth 2.0,以及通过环境变量直接注入凭据。
- 轻松部署: 使用
uvx即时运行(无需安装),或使用uv克隆以进行开发。 - AI 就绪: 专为与 MCP 兼容的客户端一起使用而设计,支持自然语言的表格交互。
- 工具过滤: 通过
--include-tools或ENABLED_TOOLS环境变量,仅启用您需要的工具,从而减少上下文窗口的使用。
🎯 工具过滤(减少上下文使用)
问题: 默认情况下,此 MCP 服务器会暴露全部 19 个工具,这会在任何对话开始之前消耗约 13,000 个标记。如果您只需要几个工具,这将浪费宝贵的上下文窗口空间。
解决方案: 使用工具过滤功能,仅启用您实际使用的工具。
如何启用工具过滤
您可以通过以下两种方式之一来过滤工具:
命令行参数
--include-tools:{ "mcpServers": { "google-sheets": { "command": "uvx", "args": [ "mcp-google-sheets@latest", "--include-tools", "get_sheet_data,update_cells,list_spreadsheets,list_sheets" ], "env": { "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json" } } } }环境变量
ENABLED_TOOLS:{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets@latest"], "env": { "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json", "ENABLED_TOOLS": "get_sheet_data,update_cells,list_spreadsheets,list_sheets" } } } }
可用工具名称
在筛选时,请使用这些精确的工具名称(以逗号分隔,不含空格):
最常用工具(推荐子集):
get_sheet_data- 从电子表格中读取数据update_cells- 向电子表格中写入数据list_spreadsheets- 查找电子表格list_sheets- 浏览工作表标签
所有可用工具:
add_columnsadd_rowsbatch_updatebatch_update_cellscopy_sheetcreate_sheetcreate_spreadsheetfind_in_spreadsheetget_multiple_sheet_dataget_multiple_spreadsheet_summaryget_sheet_dataget_sheet_formulaslist_folderslist_sheetslist_spreadsheetsrename_sheetsearch_spreadsheetsshare_spreadsheetupdate_cells
注意: 如果既未指定 --include-tools 也未设置 ENABLED_TOOLS,则所有工具都将被启用(默认行为)。
🛠️ 可用工具与资源
本服务器公开了以下用于与 Google 电子表格交互的工具:
有关下方使用的 ID 的更多信息,请参阅 ID 参考指南。
(输入参数通常为字符串,除非另有说明)
list_spreadsheets: 列出配置的 Drive 文件夹(服务账号)中的电子表格,或当前用户(OAuth)可访问的电子表格。folder_id(可选字符串):要在其中搜索的 Google Drive 文件夹 ID。从其 URL 中获取。如果省略,则使用配置的默认文件夹,或在“我的云端硬盘”中搜索。- 返回值: 对象列表
[{id: string, title: string}]
create_spreadsheet: 创建一个新的电子表格。title(字符串):电子表格的期望标题。例如:“第四季度报告”。folder_id(可选字符串):应在其中创建电子表格的 Google Drive 文件夹 ID。从其 URL 中获取。如果省略,则使用配置的默认文件夹或根目录。- 返回值: 包含电子表格信息的对象,包括
spreadsheetId、title和folder。
get_sheet_data: 读取工作表/标签页中某个区域的数据。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。range(可选字符串):A1 表示法(例如:“A1:C10”、“Sheet1!B2:D”)。如果省略,则读取由sheet指定的工作表/标签页的全部内容。include_grid_data(可选布尔值,默认为False):如果为True,则返回包含格式和元数据的完整网格数据(数据量较大)。如果为False,则仅返回值(效率更高)。- 返回值: 如果
include_grid_data=True,则返回包含元数据的完整网格数据(get响应)。如果为False,则返回 Values API 的值结果对象(values.get响应)。
get_sheet_formulas: 读取工作表/标签页中某个区域的公式。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。range(可选字符串):A1 表示法(例如:“A1:C10”、“Sheet1!B2:D”)。如果省略,则读取由sheet指定的工作表/标签页中的所有公式。- 返回值: 单元格公式的二维数组(数组的数组)(
values.get响应)。
update_cells: 将数据写入特定范围。会覆盖现有数据。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。range(字符串):要写入的 A1 表示法范围(例如:“A1:C3”)。data(数组的数组):要写入的二维值数组。例如:[[1, 2, 3], ["a", "b", "c"]]。- 返回值: 更新结果对象(
values.update响应)。
batch_update_cells: 在一次 API 调用中更新多个范围。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。ranges(对象):将范围字符串(A1 表示法)映射到值的二维数组。例如:{ "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] }。- 返回值: 操作结果(
values.batchUpdate响应)。
add_rows: 在指定索引处向工作表/标签页添加(插入)空行。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。count(整数):要插入的空行数量。start_row(可选整数,默认为0):基于 0 的行索引,用于开始插入行。如果省略,则默认为0(在开头插入)。- 返回值: 操作结果(
batchUpdate响应)。
list_sheets: 列出电子表格中的所有工作表/标签页名称。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。- 返回值: 工作表/标签页名称字符串列表。例如:
["Sheet1", "Sheet2"]。
create_sheet: 向电子表格添加新的工作表/标签页。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。title(字符串):新工作表/标签页的名称。- 返回值: 新工作表属性对象。
get_multiple_sheet_data: 在一次调用中从可能不同的电子表格中的多个范围获取数据。queries(对象数组):每个对象需要spreadsheet_id、sheet和range。例如:[{"spreadsheet_id": "abc", "sheet": "Sheet1", "range": "A1:B2"}, ...]。- 返回值: 对象列表,每个对象包含查询参数和获取到的
data或error。每份data都是values.get响应。
get_multiple_spreadsheet_summary: 获取多个电子表格的标题、工作表/标签页名称、表头以及前几行数据。spreadsheet_ids(字符串数组):电子表格的 ID(从其 URLs 中获取)。rows_to_fetch(可选整数,默认为5):预览多少行数据(包括表头)。例如:5。- 返回值: 每个电子表格的摘要对象列表。
share_spreadsheet: 将电子表格与指定用户/邮箱及角色共享。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。recipients(对象数组):[{"email_address": "user@example.com", "role": "writer"}, ...]。角色包括:reader、commenter、writer。send_notification(可选布尔值,默认为True):是否向收件人发送电子邮件通知。- 返回值: 包含成功和失败列表的字典。
add_columns: 在指定索引处向工作表/标签页添加(插入)空列。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):工作表/标签页的名称(例如:“Sheet1”)。count(整数):要插入的空列数量。start_column(可选整数,默认为0):基于 0 的列索引,用于开始插入。如果省略,则默认为0(在开头插入)。- 返回值: 操作结果(
batchUpdate响应)。
copy_sheet: 将一个工作表/标签页从一个电子表格复制到另一个,并可选择重命名。src_spreadsheet(字符串):源电子表格 ID(从其 URL 中获取)。src_sheet(字符串):源工作表/标签页名称(例如:“Sheet1”)。dst_spreadsheet(字符串):目标电子表格 ID(从其 URL 中获取)。dst_sheet(字符串):目标电子表格中希望的新工作表/标签页名称。- 返回值: 复制及可选重命名操作的结果。
rename_sheet: 重命名现有的工作表/标签页。spreadsheet(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):当前工作表/标签页名称(例如:“Sheet1”)。new_name(字符串):新的工作表/标签页名称(例如:“Transactions”)。- 返回值: 操作结果(
batchUpdate响应)。
add_chart: 根据指定数据在 Google 表格中创建图表。spreadsheet_id(字符串):电子表格 ID(从其 URL 中获取)。sheet(字符串):包含数据的工作表/标签页名称(例如:“Sheet1”)。chart_type(字符串):要创建的图表类型。选项包括:COLUMN(垂直柱状图)、BAR(水平柱状图)、LINE、AREA、PIE、SCATTER、COMBO、HISTOGRAM。data_range(字符串):用于图表数据的 A1 表示法范围(例如:“A1:C10”)。第一行被视为表头。title(可选字符串):图表标题。x_axis_label(可选字符串):X 轴(底部轴)的标签。不适用于饼图。y_axis_label(可选字符串):Y 轴(左侧轴)的标签。不适用于饼图。position_x(可选整数,默认为0):从左上角开始的水平偏移像素数。position_y(可选整数,默认为0):从左上角开始的垂直偏移像素数。width(可选整数,默认为600):图表的宽度(以像素为单位)。height(可选整数,默认为400):图表的高度(以像素为单位)。- 返回值: 包含成功状态、图表 ID 和操作详情的结果对象。
MCP 资源:
spreadsheet://{spreadsheet_id}/info: 获取 Google 表格的基本元数据。- 返回: 包含表格信息的 JSON 字符串。
☁️ Google Cloud Platform 设置(详细)
在运行服务器之前,此设置是必需的。
- 创建或选择 GCP 项目: 前往 Google Cloud 控制台。
- 启用 API: 导航到“API 和服务”->“库”。搜索并启用:
Google Sheets APIGoogle Drive API
- 配置凭据: 您需要从以下方法中选择一种身份验证方式(推荐使用服务账户)。
🔑 身份验证与环境变量(详细)
服务器需要凭据才能访问 Google API。请选择一种方法:
有关下方使用的 ID 的更多信息,请参阅ID 参考指南。
方法 A:服务账户(推荐用于服务器/自动化)✅
- 为什么? 无头模式(无需浏览器),安全,非常适合服务器环境。不易过期。
- 步骤:
- 创建服务账户: 在 GCP 控制台 -> “IAM 和管理员” -> “服务账户”。
- 点击“+ 创建服务账户”。为其命名(例如
mcp-sheets-service)。 - 授予角色:添加
编辑者角色以获得广泛权限,或更细粒度的角色(如roles/drive.file和特定的 Sheets 角色)以获得更严格的权限。 - 点击“完成”。找到该账户,点击操作按钮 (⋮) -> “管理密钥”。
- 点击“添加密钥” -> “创建新密钥” -> JSON -> “创建”。
- 下载并安全存储 JSON 密钥文件。
- 点击“+ 创建服务账户”。为其命名(例如
- 创建并共享 Google 云端硬盘文件夹:
- 在 Google 云端硬盘 中,创建一个文件夹(例如“AI Managed Sheets”)。
- 从 URL 中记下文件夹 ID:
https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID。 - 右键单击该文件夹 -> “共享” -> “共享”。
- 输入服务账户的电子邮件地址(来自 JSON 文件中的
client_email)。 - 授予编辑者权限。取消选中“通知用户”。点击“共享”。
- 设置环境变量:
SERVICE_ACCOUNT_PATH: 下载的 JSON 密钥文件的完整路径。DRIVE_FOLDER_ID: 共享 Google 云端硬盘文件夹的 ID。 (请参阅 超快速入门 以获取各操作系统的具体示例)
- 创建服务账户: 在 GCP 控制台 -> “IAM 和管理员” -> “服务账户”。
方法 B:OAuth 2.0(交互式/个人使用)🧑💻
- 为什么? 适用于个人使用或本地开发,在这种情况下,交互式浏览器登录是可以接受的。
- 步骤:
- 配置 OAuth 同意屏幕: 在 GCP 控制台 -> “API 和服务” -> “OAuth 同意屏幕”。选择“外部”,填写所需信息,添加范围(
.../auth/spreadsheets、.../auth/drive),如有必要,添加测试用户。 - 创建 OAuth 客户端 ID: 在 GCP 控制台 -> “API 和服务” -> “凭据”。点击“+ 创建凭据” -> “OAuth 客户端 ID” -> 类型:桌面应用。为其命名。“创建”。下载 JSON。
- 设置环境变量:
CREDENTIALS_PATH: 下载的 OAuth 凭据 JSON 文件的路径(默认为credentials.json)。TOKEN_PATH: 存储首次登录后用户刷新令牌的路径(默认为token.json)。必须可写。
- 配置 OAuth 同意屏幕: 在 GCP 控制台 -> “API 和服务” -> “OAuth 同意屏幕”。选择“外部”,填写所需信息,添加范围(
方法 C:直接注入凭据(高级)🔒
- 为什么? 适用于 Docker、Kubernetes 或 CI/CD 等环境中,这些环境难以管理文件,但易于/安全地管理环境变量。避免了对文件系统的访问。
- 如何? 不再提供凭据文件的路径,而是将文件的内容以 Base64 编码的形式直接放入环境变量中。
- 步骤:
- 获取您的凭据 JSON 文件(可以是服务账户密钥文件或 OAuth 客户端 ID 文件)。我们将其称为
your_credentials.json。 - 生成 Base64 字符串:
- (Linux/macOS):
base64 -w 0 your_credentials.json - (Windows PowerShell):
$filePath = "C:\path\to\your_credentials.json"; # 使用实际路径 $bytes = [System.IO.File]::ReadAllBytes($filePath); $base64 = [System.Convert]::ToBase64String($bytes); $base64 # 复制此输出 - 注意: 避免将敏感凭据粘贴到不可信的在线编码器中。
- (Linux/macOS):
- 设置环境变量:
CREDENTIALS_CONFIG: 将此变量设置为您刚刚生成的完整的 Base64 字符串。# 示例(Linux/macOS)- 使用实际生成的字符串 export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."
- 获取您的凭据 JSON 文件(可以是服务账户密钥文件或 OAuth 客户端 ID 文件)。我们将其称为
方法 D:应用程序默认凭据(ADC)🌐
- 为什么? 非常适合 Google Cloud 环境(GKE、Compute Engine、Cloud Run)以及使用
gcloud auth application-default login进行本地开发。无需显式凭据文件。 - 如何? 使用 Google 的应用程序默认凭据链自动从多个来源发现凭据。
- ADC 搜索顺序:
GOOGLE_APPLICATION_CREDENTIALS环境变量(服务账户密钥路径)——Google 的标准变量gcloud auth application-default login凭据(本地开发)- 附加到元数据服务器的服务账户(GKE、Compute Engine 等)
- 设置:
- 本地开发:
- 运行一次
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive - 设置配额项目:
gcloud auth application-default set-quota-project <project_id>(将<project_id>替换为您的 Google Cloud 项目 ID)
- 运行一次
- Google Cloud: 将服务账户附加到您的计算资源上
- 环境变量: 设置
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json(Google 的标准)
- 本地开发:
- 无需额外的环境变量——当其他方法失败时,ADC 会自动用作后备。
注意: GOOGLE_APPLICATION_CREDENTIALS 是 Google 的官方标准环境变量,而 SERVICE_ACCOUNT_PATH 则是此 MCP 服务器特有的。如果您设置了 GOOGLE_APPLICATION_CREDENTIALS,ADC 会自动找到它。
身份验证优先级与摘要
服务器会按以下顺序检查凭据:
CREDENTIALS_CONFIG(Base64 编码的内容)SERVICE_ACCOUNT_PATH(服务帐号 JSON 文件的路径)CREDENTIALS_PATH(OAuth JSON 文件的路径)——如果令牌缺失或已过期,则触发交互式流程- 应用默认凭据 (ADC)——自动回退
环境变量摘要:
| 变量 | 方法 | 描述 | 默认值 |
|---|---|---|---|
SERVICE_ACCOUNT_PATH |
服务帐号 | 服务帐号 JSON 密钥文件的路径(MCP 服务器专用)。 | - |
GOOGLE_APPLICATION_CREDENTIALS |
ADC | 服务帐号密钥的路径(Google 的标准环境变量)。 | - |
DRIVE_FOLDER_ID |
服务帐号 | 与服务帐号共享的 Google 云端硬盘文件夹 ID。 | - |
CREDENTIALS_PATH |
OAuth 2.0 | OAuth 2.0 客户端 ID JSON 文件的路径。 | credentials.json |
TOKEN_PATH |
OAuth 2.0 | 用于存储生成的 OAuth 令牌的路径。 | token.json |
CREDENTIALS_CONFIG |
服务帐号 / OAuth 2.0 | 凭据内容的 Base64 编码 JSON 字符串。 | - |
⚙️ 运行服务器(详细说明)
有关下方使用的 ID 的更多信息,请参阅 ID 参考指南。
方法 1:使用 uvx(推荐给用户)
如超快速入门所示,这是最简单的方式。设置环境变量后,运行以下命令:
uvx mcp-google-sheets@latest
uvx 会临时获取并运行该包。
方法 2:用于开发(克隆仓库)
如果您想修改代码:
- 克隆:
git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets(请使用实际 URL) - 设置环境变量: 如上所述。
- 使用
uv运行: (使用本地代码)uv run mcp-google-sheets # 或者通过 pyproject.toml 中定义的脚本名称运行,例如: # uv run start
方法 3:Docker(SSE 传输)
使用附带的 Dockerfile 在容器中运行服务器:
# 构建镜像
docker build -t mcp-google-sheets .
# 运行(SSE 使用 8000 端口)
# 注意:在容器中建议使用 CREDENTIALS_CONFIG(Base64 编码的凭据内容)。
docker run --rm -p 8000:8000 ^
-e HOST=0.0.0.0 ^
-e PORT=8000 ^
-e CREDENTIALS_CONFIG=YOUR_BASE64_CREDENTIALS ^
-e DRIVE_FOLDER_ID=YOUR_DRIVE_FOLDER_ID ^
mcp-google-sheets
- 在 Docker 容器内应使用
CREDENTIALS_CONFIG而不是SERVICE_ACCOUNT_PATH,以避免将敏感信息作为文件挂载。 - 容器启动时会使用
--transport sse并监听HOST/PORT。请将您的 MCP 客户端指向http://localhost:8000,并使用 SSE 传输方式。
🔌 与 Claude Desktop 的使用
将服务器配置添加到 claude_desktop_config.json 文件中的 mcpServers 部分。根据你的设置选择相应的配置块:
请参阅 ID 参考指南 以获取有关以下 ID 的更多信息。
⚠️ 重要提示:
- 🍎 macOS 用户: 请使用完整路径:
"/Users/yourusername/.local/bin/uvx",而不是仅使用"uvx"
🔵 配置:uvx + 服务账号(推荐)
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}
🍎 macOS 注意: 如果出现 spawn uvx ENOENT 错误,请使用 uvx 的完整路径:
{
"mcpServers": {
"google-sheets": {
"command": "/Users/yourusername/.local/bin/uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}
请将 yourusername 替换为你的实际用户名。
🔵 配置:uvx + OAuth 2.0
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"CREDENTIALS_PATH": "/full/path/to/your/credentials.json",
"TOKEN_PATH": "/full/path/to/your/token.json"
}
}
}
}
注意:首次使用时可能会打开浏览器进行 Google 登录。请确保 TOKEN_PATH 是可写的。
🍎 macOS 注意: 如果出现 spawn uvx ENOENT 错误,请将 "command": "uvx" 替换为 "command": "/Users/yourusername/.local/bin/uvx"(将 yourusername 替换为你的实际用户名)。
🔵 配置:uvx + CREDENTIALS_CONFIG(服务账号示例)
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}
注意:请粘贴完整的 Base64 字符串作为 CREDENTIALS_CONFIG。对于服务账号的文件夹上下文,仍然需要 DRIVE_FOLDER_ID。
🍎 macOS 注意: 如果出现 spawn uvx ENOENT 错误,请将 "command": "uvx" 替换为 "command": "/Users/yourusername/.local/bin/uvx"(将 yourusername 替换为你的实际用户名)。
🔵 配置:uvx + 应用默认凭据 (ADC)
选项 1:使用 GOOGLE_APPLICATION_CREDENTIALS
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json"
}
}
}
}
选项 2:使用 gcloud auth(无需环境变量)
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {}
}
}
}
先决条件:
- 首先运行
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive。 - 设置配额项目:
gcloud auth application-default set-quota-project <project_id>
🍎 macOS 注意: 如果出现 spawn uvx ENOENT 错误,请将 "command": "uvx" 替换为 "command": "/Users/yourusername/.local/bin/uvx"(将 yourusername 替换为你的实际用户名)。
🟡 配置:开发模式(从克隆的仓库运行)
{
"mcpServers": {
"mcp-google-sheets-local": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/your/mcp-google-sheets",
"mcp-google-sheets"
],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/your/mcp-google-sheets/service_account.json",
"DRIVE_FOLDER_ID": "your_drive_folder_id_here"
}
}
}
}
注意:使用 --directory 标志指定项目路径,并调整路径以匹配你实际的工作区位置。
💬 Claude 示例提示
连接成功后,可以尝试以下提示:
- “列出我有权访问的所有电子表格。”(或“在我管理的 AI 电子表格文件夹中”)
- “创建一个名为‘2024 年第三季度销售报告’的新电子表格。”
- “在‘季度销售报告’电子表格中,获取 Sheet1 范围 A1 到 E10 的数据。”
- “在 ID 为
1aBcDeFgHiJkLmNoPqRsTuVwXyZ的电子表格中添加一个名为‘Summary’的新工作表。” - “在我的‘项目任务’电子表格的‘Tasks’工作表中,将 B2 单元格更新为‘进行中’。”
- “将以下行追加到电子表格
XYZ的‘Log’工作表中:[['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']]” - “获取‘销售数据’和‘库存盘点’电子表格的摘要。”
- “将‘团队假期安排’电子表格以只读权限共享给
team@example.com,以写入权限共享给manager@example.com。不要发送通知。” - “在我的‘销售报告’电子表格中,根据 A1:B13 范围的数据,创建一个显示每月收入的柱状图。”
- “在‘市场分析’工作表中添加一个饼图,数据来自 A1:B5,标题为‘按产品划分的市场份额’。”
- “在电子表格
abc123中,于 Sheet1 上基于 A1:C10 范围创建一个折线图,标题为‘增长趋势’,并标注‘月份’和‘收入’。”
🆔 ID 参考指南
请使用以下参考指南查找文档中提到的各种 ID:
Google Cloud 项目 ID:
https://console.cloud.google.com/apis/dashboard?project=sheets-mcp-server-123456
└───── 项目 ID ─────┘
Google Drive 文件夹 ID:
https://drive.google.com/drive/u/0/folders/1xcRQCU9xrNVBPTeNzHqx4hrG7yR91WIa
└────────── 文件夹 ID ──────────┘
Google Sheets 电子表格 ID:
https://docs.google.com/spreadsheets/d/25_-_raTaKjaVxu9nJzA7-FCrNhnkd3cXC54BPAOXemI/edit
└───────────── 电子表格 ID ─────────────┘
🤝 贡献
欢迎贡献!请提交问题以讨论错误或功能请求。也欢迎提交拉取请求。
📄 许可证
本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
🙏 致谢
- 基于 FastMCP 构建。
- 灵感来源于 kazz187/mcp-google-spreadsheet。
- 使用 Google API Python 客户端库。
版本历史
v0.6.12026/03/15v0.6.02025/12/06v0.5.22025/11/09v0.5.12025/08/26v0.5.02025/08/21v0.4.12025/07/18v0.4.02025/05/28v0.3.62025/05/23v0.3.52025/04/22v0.3.42025/04/21常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。
