Google Sheets管理协议服务器

一个独立的模型上下文协议(MCP)服务器,提供通过AI助手管理Google Sheets的全面工具。

  • by ideaspaper
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 ideaspaper/sheets-mcp

使用说明

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

身份验证设置

服务帐户设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用 谷歌网页API
    • 导航至 API和服务 > 图书馆
    • 搜索并启用图纸API
  4. 创建服务帐户:
    • 导航至 IAM和管理员 > 服务帐户
    • 点击 创建服务帐户
    • 填写必填字段并单击 创建
  5. 创建并下载JSON密钥:
    • 点击服务帐户电子邮件
    • 导航到 钥匙 标签
    • 点击 添加关键点 > 创建新密钥
    • 选择 JSON 格式
    • 安全保存下载的文件
  6. 重要:与服务帐户电子邮件共享您的电子表格(在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有费率限制。如果你击中了它们,请等待几分钟后重试
  • 考虑在客户端应用程序中实现指数回退