使用说明
Google表格MCP服务器
一个独立的模型上下文协议(MCP)服务器,提供通过AI助手管理Google表格的全面工具。
概述
此MCP服务器使AI助手能够与Google表格交互,提供以下工具:
- 读取和写入表格数据
- 管理表格和电子表格(创建、删除、复制、隐藏/取消隐藏)
- 跨多张工作表的批处理操作
- 高级数据操作(追加、清除、查找和替换、排序)
- 单元格格式(颜色、字体、合并/取消合并)
安装
先决条件
- 启用Sheets API的Google Cloud项目
- Google服务帐户凭据
自制(macOS)
brew tap ideaspaper/tap
brew install --cask sheets-mcp
去安装
需要Go 1.24.4或更高版本。
go install github.com/ideaspaper/sheets-mcp@latest
从源代码构建
git clone https://github.com/ideaspaper/sheets-mcp.git
cd sheets-mcp
make build
身份验证设置
服务帐户设置
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用 谷歌网页API
- 导航至 API和服务 > 图书馆
- 搜索并启用图纸API
- 创建服务帐户:
- 导航至 IAM和管理员 > 服务帐户
- 点击 创建服务帐户
- 填写必填字段并单击 创建
- 创建并下载JSON密钥:
- 点击服务帐户电子邮件
- 导航到 钥匙 标签
- 点击 添加关键点 > 创建新密钥
- 选择 JSON 格式
- 安全保存下载的文件
- 重要:与服务帐户电子邮件共享您的电子表格(在JSON文件中作为
client_email)
配置
设置以下环境变量以配置服务器:
export SERVICE_ACCOUNT_PATH="/path/to/service-account-key.json"
用法
OpenCode MCP客户端配置
将此添加到您的OpenCode配置文件(Mac: ~/.config/opencode/config.json):
{
"mcp": {
"sheets-mcp": {
"type": "local",
"enabled": true,
"command": ["sheets-mcp"],
"environment": {
"SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}
VSCode MCP客户端配置
将此添加到您的VSCode设置文件(Mac: ~/Library/Application Support/Code/User/settings.json,Windows: %APPDATA%\Code\User\settings.json):
{
"mcp.servers": {
"sheets-mcp": {
"command": "sheets-mcp",
"args": [],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/service-account.json"
}
}
}
}
备注:确保你有 MCP扩展 安装在VSCode中。
可用工具
表数据操作
-
get_sheet_data:从特定工作表中获取数据
- 参数:
spreadsheet_id,sheet,range(可选),include_grid_data(可选)
- 参数:
-
get_sheet_formula:从特定工作表中获取公式
- 参数:
spreadsheet_id,sheet,range(可选)
- 参数:
-
update_cells:更新工作表中的单元格
- 参数:
spreadsheet_id,sheet,range,data
- 参数:
-
batch_update_cells:批量更新多个范围
- 参数:
spreadsheet_id,sheet,ranges
- 参数:
-
附录_数据:将数据附加到工作表末尾
- 参数:
spreadsheet_id,sheet,data
- 参数:
-
clear_range:清除特定范围内的内容
- 参数:
spreadsheet_id,sheet,range
- 参数:
-
查找位置:查找并替换工作表或整个电子表格中的文本
- 参数:
spreadsheet_id,find,replacement(可选),sheet(可选),all_sheets(可选),match_case(可选),match_entire_cell(可选)
- 参数:
-
sort_range:对一系列数据进行排序
- 参数:
spreadsheet_id,sheet,range,sort_column(可选),ascending(可选)
- 参数:
行和列操作
-
add_rows:向工作表添加行
- 参数:
spreadsheet_id,sheet,count,start_row(可选)
- 参数:
-
add_columns:向工作表添加列
- 参数:
spreadsheet_id,sheet,count,start_column(可选)
- 参数:
表单管理
-
list_sheets:在电子表格中列出所有工作表
- 参数:
spreadsheet_id
- 参数:
-
创建工作表:创建新的图纸选项卡
- 参数:
spreadsheet_id,title
- 参数:
-
复印纸:将工作表复制到另一个电子表格
- 参数:
src_spreadsheet,src_sheet,dst_spreadsheet,dst_sheet
- 参数:
-
重命名表:重命名图纸
- 参数:
spreadsheet,sheet,new_name
- 参数:
-
删除工作表:删除图纸选项卡
- 参数:
spreadsheet_id,sheet
- 参数:
-
复印页:在同一电子表格中复制工作表
- 参数:
spreadsheet_id,sheet,new_title(可选)
- 参数:
-
hide_sheet:隐藏工作表
- 参数:
spreadsheet_id,sheet
- 参数:
-
unhide_sheet:取消隐藏工作表
- 参数:
spreadsheet_id,sheet
- 参数:
电子表格操作
- create_spreadsheet:创建新的电子表格
- 参数:
title
- 参数:
格式化操作
-
format_cells:将格式应用于单元格(颜色、字体、文本样式)
- 参数:
spreadsheet_id,sheet,range,background_color(可选),text_color(可选),bold(可选),italic(可选),font_size(可选)
- 参数:
-
合并细胞:合并某个范围内的单元格
- 参数:
spreadsheet_id,sheet,range,merge_type(可选:MERGE_ALL、MERGE_COLUMNS、MERGE_ROWS)
- 参数:
-
unmerge_cell:取消合并某个区域中的单元格
- 参数:
spreadsheet_id,sheet,range
- 参数:
批量操作
-
get_multiplesheet_data:从多个范围获取数据
- 参数:
queries(查询对象数组)
- 参数:
-
get_multiple_电子表格_摘要:获取多个电子表格的摘要
- 参数:
spreadsheet_ids,rows_to_fetch(可选,默认值:5)
- 参数:
故障排除
身份验证错误
- 确保您的服务帐户电子邮件与您尝试访问的电子表格共享
- 验证在您的Google Cloud项目中启用了Sheets API
- 检查凭据文件路径是否正确,文件是否可读
权限错误
- 确保服务帐户已被授予访问电子表格的权限(与服务帐户电子邮件共享)
API配额错误
- Google Sheets API有费率限制。如果你击中了它们,请等待几分钟后重试
- 考虑在客户端应用程序中实现指数回退
