【技术文档摘要】
<div align="center"> <!-- 主标题链接 --> <b>mcp-google-sheets</b> <!-- 描述段落 --> <p align="center"> <i>您的AI助手通往Google表格的门户!</i>📊 </p> </div>mcp-google-sheets 是一个基于Python的MCP服务器,作为任何兼容MCP客户端(如Claude Desktop)与Google表格API之间的桥梁。它允许您通过一组定义好的工具与Google电子表格进行交互,从而实现由AI驱动的强大自动化和数据操作流程。
uvx)基本上,服务器只需一行命令即可运行:uvx mcp-google-sheets@latest。
此命令会自动下载最新代码并运行。我们建议始终使用 @latest,以确保您拥有最新版本及其最新的功能和错误修复。
☁️ 前提条件:Google云平台设置
🐍 安装 uv
uvx 是 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 uv
根据安装程序输出中的说明,如有需要,请将 uv 添加到您的PATH中。🔑 设置必需的环境变量(推荐使用服务账户)
# 替换为您实际的路径和文件夹ID,从Google设置步骤中获取
export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json"
export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json"
set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
$env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json"
$env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
CREDENTIALS_CONFIG)。🏃 运行服务器!
uvx 将自动下载并运行最新版本的 mcp-google-sheets:
uvx mcp-google-sheets@latest
💡 提示: 始终使用
@latest以确保您获得具有错误修复和新功能的最新版本。不使用@latest时,uvx可能会使用缓存的旧版本。
🔌 连接您的MCP客户端
现在您可以开始通过您的MCP客户端发出命令了。
uvx 即刻运行(零安装感觉)或使用 uv 克隆进行开发。此服务器提供了以下工具来与Google表格进行交互:
(输入参数通常为字符串,除非另有说明)
list_spreadsheets: 列出配置的云端硬盘文件夹(服务账户)或用户可访问的(OAuth)电子表格。
[{"id": 字符串, "title": 字符串}]create_spreadsheet: 创建新的电子表格。
title (字符串): 所需的标题。spreadsheetId。get_sheet_data: 从表中的某个范围读取数据。
spreadsheet_id (字符串)sheet (字符串): 表的名字。range (可选字符串): A1表示法(例如,'A1:C10', 'Sheet1!B2:D')。如果省略,则读取整个表。include_grid_data (可选布尔值,默认为False): 如果为True,则包含单元格格式和其他元数据(响应较大)。如果为False,则仅返回值(更高效)。include_grid_data=True,则返回完整的网格数据及元数据。如果为 False,则返回来自Values API的结果对象。get_sheet_formulas: 从表中的某个范围读取公式。
spreadsheet_id (字符串)sheet (字符串): 表的名字。range (可选字符串): A1表示法(例如,'A1:C1_0', 'Sheet1!B2:D')。如果省略,则读取整个表。update_cells: 写入特定范围的数据。覆盖现有数据。
spreadsheet_id (字符串)sheet (字符串)range (字符串): A1表示法。data (二维数组): 要写入的值。batch_update_cells: 在一次API调用中更新多个范围。
spreadsheet_id (字符串)sheet (字符串)ranges (对象): 映射范围字符串(A1表示法)到二维数组值的字典 { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] }。add_rows: 在表的末尾追加行(在最后一个有数据的行之后)。
spreadsheet_id (字符串)sheet (字符串)data (二维数组): 要追加的行。list_sheets: 列出电子表格内的所有表名。
spreadsheet_id (字符串)["Sheet1", "Sheet2"]。create_sheet: 向电子表格添加新的表(标签)。
spreadsheet_id (字符串)title (字符串): 新表的名称。get_multiple_sheet_data: 一次调用中从多个范围(可能在不同的电子表格中)获取数据。
queries (对象数组): 每个对象需要 spreadsheet_id, sheet, 和 range。[{spreadsheet_id: 'abc', sheet: 'Sheet1', range: 'A1:B2'}, ...]。data 或 error 的对象列表。get_multiple_spreadsheet_summary: 获取多个电子表格的标题、表名、标题行和前几行。
spreadsheet_ids (字符串数组)rows_to_fetch (可选整数,默认为5): 预览的行数(包括标题)。share_spreadsheet: 与指定的用户/电子邮件和角色分享电子表格。
spreadsheet_id (字符串)recipients (对象数组): [{email_address: 'user@example.com', role: 'writer'}, ...]。角色:reader, commenter, writer。send_notification (可选布尔值,默认为True): 发送电子邮件通知。add_columns: 向表中添加列。(如果实现,请验证参数)copy_sheet: 在电子表格内复制一个表。(如果实现,请验证参数)rename_sheet: 重命名现有的表。(如果实现,请验证参数)MCP资源:
spreadsheet://{spreadsheet_id}/info: 获取关于Google电子表格的基本元数据。
在运行服务器之前,此设置是必需的。
Google表格APIGoogle云端硬盘API服务器需要凭证才能访问Google API。选择一种方法:
mcp-sheets-service)。编辑者 角色以获得广泛访问权限,或者添加更细粒度的角色(如 roles/drive.file 和特定的表格角色)以获得更严格的权限。https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID。client_email 获取)。编辑者 权限。取消选中“发送通知”。点击“分享”。SERVICE_ACCOUNT_PATH: 下载的JSON密钥文件的完整路径。DRIVE_FOLDER_ID: 分享的Google云端硬盘文件夹的ID。
(参见超快速开始中的操作系统特定示例).../auth/spreadsheets, .../auth/drive),添加测试用户(如需)。CREDENTIALS_PATH: 下载的OAuth凭证JSON文件的路径(默认为 credentials.json)。TOKEN_PATH: 存储用户的刷新令牌的路径(首次登录后,默认为 token.json)。必须可写。your_credentials.json。base64 -w 0 your_credentials.json$filePath = "C:\path\to\your_credentials.json"; # 使用实际路径
$bytes = [System.IO.File]::ReadAllBytes($filePath);
$base64 = [System.Convert]::ToBase64String($bytes);
$base64 # 复制此输出
CREDENTIALS_CONFIG: 将此变量设置为您刚刚生成的完整Base64字符串。
# 示例(Linux/macOS)- 使用实际生成的字符串
export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."
gcloud auth application-default login。无需显式的凭证文件。GOOGLE_APPLICATION_CREDENTIALS 环境变量(服务账户密钥的路径)- Google的标准变量gcloud auth application-default login 凭据(本地开发)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云项目ID)GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json(Google的标准)注意: GOOGLE_APPLICATION_CREDENTIALS 是Google官方标准环境变量,而 SERVICE_ACCOUNT_PATH 是特定于此MCP服务器的。如果您设置了 GOOGLE_APPLICATION_CREDENTIALS,ADC会自动找到它。
服务器按以下顺序检查凭证:
CREDENTIALS_CONFIG (Base64内容)SERVICE_ACCOUNT_PATH (服务账户JSON的路径)CREDENTIALS_PATH (OAuth JSON的路径) - 如果令牌丢失/过期,会触发交互式流程环境变量总结:
| 变量 | 方法(s) | 描述 | 默认