关于 Mcp Google Sheets
mcp-google-sheets 是一个基于 Python 的 MCP 服务,用于连接 Google Drive 与 Google Sheets API,使 AI 助手能够创建和修改电子表格。它适合需要用自然语言操作表格数据的用户。该服务支持服务账户、OAuth 2.0 和环境变量凭据,并可通过参数筛选启用的工具。
主要功能
- 01读取、写入与批量更新单元格
- 02创建和管理电子表格与工作表
- 03查找表格、共享表格与查看公式
- 04支持服务账户与 OAuth 2.0 认证
- 05通过 ENABLED_TOOLS 筛选工具以减少上下文占用
适用场景
- 01让 AI 助手读取表格数据并生成分析结果
- 02批量写入或更新多个工作表的数据
- 03在指定 Drive 文件夹中查找并共享表格
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🤔 这是什么?
mcp-google-sheets 是一个基于 Python 的 MCP 服务,可作为任意兼容 MCP 的客户端(如 Claude Desktop)与 Google Sheets API 之间的桥梁。它提供一组定义好的工具,让你能够与 Google Spreadsheets 交互,借助 AI 驱动强大的自动化和数据处理工作流。
🚀 快速开始(使用 uvx)
基本上,只需一行命令即可运行服务:uvx mcp-google-sheets@latest。
此命令会自动下载最新代码并运行。我们建议始终使用 @latest,以确保获取包含最新功能和错误修复的最新版本。
有关下文所用 ID 的更多信息,请参阅 ID 参考指南。
-
☁️ 前置条件:设置 Google Cloud
- 你必须先配置 Google Cloud Platform 凭据并启用必要的 API。我们强烈建议使用服务账号。
- ➡️ 请跳转至下方的Google Cloud Platform 设置详解指南。
-
🐍 安装
uvuvx是快速 Python 包安装器和解析器uv的一部分。如果尚未安装,请先安装:
如有需要,请按照安装程序输出中的说明将# 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 个 token)。若要减少上下文用量,请仅启用所需工具。
- ➡️ 详情请参阅工具筛选(减少上下文用量)。
准备就绪!通过 MCP 客户端开始发送命令吧。
✨ 主要功能
- 无缝集成: 直接连接 Google Drive 和 Google Sheets API。
- 丰富的工具: 提供广泛的操作(CRUD、列表、批处理、共享、格式设置等)。
- 灵活的身份验证: 支持 服务账号(推荐)、OAuth 2.0,以及通过环境变量直接注入凭据。
- 轻松部署: 使用
uvx即刻运行(无需安装的体验),或使用uv克隆项目进行开发。 - 适配 AI: 专为与兼容 MCP 的客户端配合使用而设计,支持通过自然语言操作电子表格。
- 工具筛选: 通过
--include-tools或ENABLED_TOOLS环境变量仅启用所需工具,减少上下文窗口占用。
🎯 工具筛选(减少上下文占用)
问题: 默认情况下,此 MCP 服务会公开全部 19 个工具,在任何对话开始前就会占用约 13,000 个 token。如果你只需要几个工具,这会浪费宝贵的上下文窗口空间。
解决方案: 使用工具筛选,仅启用实际需要的工具。
如何启用工具筛选
你可以通过以下任一方式筛选工具:
-
命令行参数
--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 Sheets 的工具:
有关下文所用 ID 的更多信息,请参阅 ID 参考指南。
(除非另有说明,输入参数通常为字符串)
-
list_spreadsheets:列出已配置的 Drive 文件夹(Service Account)中的电子表格,或用户可访问的电子表格(OAuth)。folder_id(可选字符串):要搜索的 Google Drive 文件夹 ID。可从其 URL 中获取。如果省略,则使用已配置的默认文件夹,或搜索“My Drive”。- 返回: 对象列表
[{id: string, title: string}]
-
create_spreadsheet:创建新的电子表格。title(字符串):电子表格的目标标题。例如:“Quarterly Report Q4”。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(可从其 URL 中获取)。rows_to_fetch(可选整数,默认值为5):预览的行数(包括表头)。例如:5。- 返回: 每个电子表格对应的摘要对象列表。
-
share_spreadsheet:与指定用户/电子邮件地址及其角色共享电子表格。spreadsheet_id(字符串):电子表格 ID(可从其 URL 中获取)。recipients(对象数组):[{"email_address": "[email protected]", "role": "writer"}, ...]。角色:reader、commenter、writer。send_notification(可选布尔值,默认值为True):向接收者发送电子邮件通知。- 返回: 包含
successes和failures列表的字典。
-
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 中创建图表。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 Spreadsheet 的基本元数据。- 返回: 包含电子表格信息的 JSON 字符串。
☁️ Google Cloud Platform 设置(详细说明)
运行服务前,必须完成此设置。
- **创建/选择 GCP 项目:**前往 Google Cloud Console。
- **启用 API:**导航至“APIs & Services” -> “Library”。搜索并启用:
Google Sheets APIGoogle Drive API
- **配置凭据:**选择以下一种身份验证方式(推荐使用 Service Account)。
🔑 身份验证与环境变量(详细说明)
服务需要凭据才能访问 Google API。请选择一种方式:
有关下文所用 ID 的更多信息,请参阅 ID 参考指南。
方法 A:Service Account(推荐用于服务端/自动化)✅
- **为什么?**无需浏览器,安全,非常适合服务端环境。不容易过期。
- 步骤:
- **创建 Service Account:**在 GCP Console -> “IAM & Admin” -> “Service Accounts” 中操作。
- 点击“+ CREATE SERVICE ACCOUNT”。为其命名(例如,
mcp-sheets-service)。 - 授予角色:添加
Editor角色以获得广泛访问权限,或添加更精细的角色(例如roles/drive.file和特定的 Sheets 角色)以严格限制权限。 - 点击“Done”。找到该账号,点击“Actions”(⋮)-> “Manage keys”。
- 点击“ADD KEY” -> “Create new key” -> JSON -> “CREATE”。
- 下载并安全保存 JSON 密钥文件。
- 点击“+ CREATE SERVICE ACCOUNT”。为其命名(例如,
- 创建并共享 Google Drive 文件夹:
- 在 Google Drive 中创建一个文件夹(例如,“AI Managed Sheets”)。
- 从 URL 中找到 Folder ID:
https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID。 - 右键点击该文件夹 -> “Share” -> “Share”。
- 输入 Service Account 的电子邮件地址(来自 JSON 文件中的
client_email)。 - 授予 Editor 权限。取消勾选“Notify people”。点击“Share”。
- 设置环境变量:
SERVICE_ACCOUNT_PATH:下载的 JSON 密钥文件的完整路径。DRIVE_FOLDER_ID:共享的 Google Drive 文件夹 ID。- (请参阅 超快速入门,了解针对不同操作系统的示例。)
- **创建 Service Account:**在 GCP Console -> “IAM & Admin” -> “Service Accounts” 中操作。
方法 B:OAuth 2.0(交互式/个人使用)🧑💻
- **为什么?**适用于个人使用或本地开发,允许通过浏览器交互式登录。
- 步骤:
- **配置 OAuth 同意屏幕:**在 GCP Console -> “APIs & Services” -> “OAuth consent screen” 中操作。选择“External”,填写必填信息,添加作用域(
.../auth/spreadsheets、.../auth/drive),并根据需要添加测试用户。 - **创建 OAuth 客户端 ID:**在 GCP Console -> “APIs & Services” -> “Credentials” 中操作。点击“+ CREATE CREDENTIALS” -> “OAuth client ID” -> 类型:Desktop app。为其命名。点击“CREATE”。下载 JSON。
- 设置环境变量:
CREDENTIALS_PATH:下载的 OAuth 凭据 JSON 文件的路径(默认值:credentials.json)。TOKEN_PATH:首次登录后用于存储用户刷新令牌的路径(默认值:token.json)。该路径必须可写。
- **配置 OAuth 同意屏幕:**在 GCP Console -> “APIs & Services” -> “OAuth consent screen” 中操作。选择“External”,填写必填信息,添加作用域(
方法 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"; # Use actual path $bytes = [System.IO.File]::ReadAllBytes($filePath); $base64 = [System.Convert]::ToBase64String($bytes); $base64 # Copy this output - (注意): 避免将敏感凭据粘贴到不可信的在线编码器中。
- (Linux/macOS):
- 设置环境变量:
CREDENTIALS_CONFIG:将此变量设置为刚生成的完整 Base64 字符串。# Example (Linux/macOS) - Use the actual string generated 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 Drive 文件夹 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 在容器中运行服务:
# Build the image
docker build -t mcp-google-sheets .
# Run (SSE on port 8000)
# NOTE: Prefer CREDENTIALS_CONFIG (Base64 credentials content) in containers.
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。使用 SSE 传输,将 MCP 客户端指向http://localhost:8000。
🔌 与 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 Managed Sheets 文件夹中的电子表格”)
- "创建一个名为 'Quarterly Sales Report Q3 2024' 的新电子表格。"
- "在 'Quarterly Sales Report' 电子表格中,获取 Sheet1 工作表 A1 到 E10 区域的数据。"
- "在 ID 为
1aBcDeFgHiJkLmNoPqRsTuVwXyZ的电子表格中添加一个名为 'Summary' 的新工作表。" - "在我的 'Project Tasks' 电子表格的 'Tasks' 工作表中,将单元格 B2 更新为 'In Progress'。"
- "将以下行追加到电子表格
XYZ的 'Log' 工作表中:[['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']]" - "总结一下 'Sales Data' 和 'Inventory Count' 这两个电子表格。"
- "将 'Team Vacation Schedule' 电子表格分享给
[email protected](读者权限)和[email protected](写入者权限)。不要发送通知。" - "在我的 'Sales Report' 电子表格中,根据 A1:B13 区域的数据创建一个展示月收入的柱状图。"
- "在 'Market Analysis' 工作表中,根据 A1:B5 区域的数据添加一个标题为 'Market Share by Product' 的饼图。"
- "在电子表格
abc123的 Sheet1 工作表中,根据 A1:C10 区域创建一个折线图,标题为 'Growth Trends',标签为 'Month' 和 'Revenue'。"
🆔 ID 参考指南
使用以下参考指南查找文档中提及的各种 ID:
Google Cloud Project ID:
https://console.cloud.google.com/apis/dashboard?project=sheets-mcp-server-123456
└───── Project ID ─────┘
Google Drive Folder ID:
https://drive.google.com/drive/u/0/folders/1xcRQCU9xrNVBPTeNzHqx4hrG7yR91WIa
└────────── Folder ID ──────────┘
Google Sheets Spreadsheet ID:
https://docs.google.com/spreadsheets/d/25_-_raTaKjaVxu9nJzA7-FCrNhnkd3cXC54BPAOXemI/edit
└───────────── Spreadsheet ID ─────────────┘
🤝 参与贡献
欢迎参与贡献!请提交 issue 以讨论 bug 或功能请求。也欢迎提交拉取请求。
📄 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
🙏 致谢
- 使用 FastMCP 构建。
- 灵感来自 kazz187/mcp-google-spreadsheet。
- 使用 Google API Python 客户端库。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。