Google Sheets MCP服务器

一个功能完整的MCP(模型上下文协议)服务器,允许AI代理通过官方Google Sheets API v4与Google表格进行交互。

  • by adalpan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 adalpan/google-sheets-mcp

使用说明

Google表格MCP服务器

功能齐全 MCP(模型上下文协议) 该服务器允许人工智能代理通过官方的Google Sheets API v4与Google Sheets交互。

支持 三种身份验证方法 --根据可用内容自动检测。

用Python和 FastMCP设计为作为Docker容器运行,并与Claude Desktop、Cursor等AI客户端集成。

特性

  • 28工具 涵盖完整的Google表单API v4
  • 三种身份验证方法:Docker桌面配置UI、服务帐户文件、OAuth 2.0
  • 作为独立的Docker容器运行
  • 适用于Claude Desktop、Cursor、Zed和任何兼容MCP的客户端

工具(共28个)

📋 价值观——阅读与写作

# 工具 说明
1 read_sheet 从单个范围读取数据
2 write_sheet 写入或更新单元格值
3 append_rows 将新行附加到工作表
4 batch_get_values 在单个API调用中读取多个范围
5 batch_update_values 在单个API调用中写入多个范围
6 batch_clear_values 在单个API调用中清除多个范围
7 clear_range 清除单个范围内的所有值

🗂️ 电子表格和表格管理

# 工具 说明
8 create_spreadsheet 创建新的谷歌电子表格
9 get_spreadsheet_info 获取标题、工作表名称、行/列计数
10 list_sheets 列出所有工作表选项卡
11 add_sheet 添加新的图纸选项卡
12 delete_sheet 删除图纸选项卡
13 rename_sheet 重命名图纸选项卡
14 duplicate_sheet 在同一电子表格中复制工作表选项卡
15 copy_sheet_to 将工作表选项卡复制到其他电子表格

🔢 行和列

# 工具 说明
16 insert_rows_columns 在特定位置插入空行或空列
17 delete_rows 按索引删除行
18 delete_columns 按索引删除列
19 move_dimension 将行或列移动到新位置
20 insert_range 插入空白区域并向下或向右移动单元格
21 delete_range 删除一个范围并向上或向左移动单元格

🧹 数据清洗

# 工具 说明
22 delete_duplicates 从范围中删除重复行
23 trim_whitespace 修剪范围内单元格的多余空格
24 find_and_replace 跨工作表搜索和替换文本
25 sort_range 按特定列对范围进行排序(asc或desc)

🎨 格式化

# 工具 说明
26 format_cells 应用粗体、字体大小、背景和文本颜色
27 freeze_rows_columns 冻结标题行和/或列
28 add_conditional_formatting 根据规则突出显示单元格(例如,如果为负,则显示红色)

认证

服务器 自动检测 按此优先级顺序使用哪种方法:

优先级 方法 方法 最佳方式
第一名 GOOGLE_SERVICE_ACCOUNT_JSON env var Docker桌面配置UI ✅ 最简单的——Docker用户
第二名 service_account.json 文件 卷装载 ✅ 团队、自动化
第三名 credentials.json 文件 卷装载+浏览器登录 ✅ 个人、本地开发人员

选项A——Docker桌面配置UI⭐ 对Docker用户来说最简单

如果你正在使用 带有MCP工具包的Docker桌面,您可以直接从UI配置服务器,而无需挂载任何文件。

步骤1--获取您的服务帐户JSON

  1. 首选 谷歌云控制台
  2. 创建项目并启用 谷歌网页API
  3. 首选 IAM和管理员→ 服务账户→ 创建服务帐户
  4. 给它起个名字,然后单击 创建并继续→ Done
  5. 点击服务帐户→ 钥匙 tab → 添加关键点→ 创建新密钥→ JSON
  6. 下载了一个JSON文件——打开它并复制整个内容

第2步——与服务帐户共享您的Google表格

⚠️ 服务帐户只能访问与其明确共享的工作表。

  1. 在下载的JSON中,找到 client_email 字段(例如。 sheets-mcp@my-project.iam.gserviceaccount.com)
  2. 打开你的谷歌表格→ click 分享
  3. 粘贴 client_email 并给予它 编辑 访问

步骤3——粘贴到Docker桌面

  1. 打开 Docker 桌面版→ MCP工具包→ 目录→ 谷歌表格
  2. 去 配置 选项卡
  3. 粘贴您的全部内容 service_account.json 进入 Google服务帐户JSON 领域
  4. 点击 保存 --完成!无需挂载文件🎉

选项B——服务帐户文件✅ 推荐给Docker/Teams

与选项A相同,但使用挂载的文件而不是配置UI。

步骤1-5--与上述选项A相同

第6步——使用Docker运行

mkdir -p data
cp /path/to/service_account.json data/

docker run -i --rm \
  -v $(pwd)/data:/data \
  mcp/google-sheets

无需浏览器登录! 🎉


选项C-OAuth 2.0✅ 建议本地/个人使用

OAuth 2.0允许您通过浏览器使用您的个人Google帐户登录。最有利于当地发展。

第一步——创建谷歌云项目

  1. 首选 谷歌云控制台
  2. 点击 选择一个项目→ 新项目,为其命名,单击 创建

步骤2-启用Google Sheets API

  1. 首选 API和服务→ 图书馆
  2. 搜索 谷歌网页API 然后单击 启用

步骤3——配置OAuth同意屏幕

  1. 首选 API和服务→ OAuth同意屏幕
  2. 选择 外部 然后单击 创建
  3. 填写 应用程序名称 和你的 电子邮件,单击 保存并继续 通过所有步骤

步骤4——创建OAuth 2.0凭据

  1. 首选 API和服务→ 凭证
  2. 点击 创建凭据→ OAuth 2.0客户端ID
  3. 选择 桌面应用程序,为其命名,单击 创建
  4. 点击 下载JSON 并将文件重命名为 credentials.json

第5步——在本地运行

git clone https://github.com/adalpan/google-sheets-mcp
cd google-sheets-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
mkdir data
cp /path/to/credentials.json data/
TOKEN_PATH=data/token.json CREDENTIALS_PATH=data/credentials.json python src/server.py

首次运行时,将打开一个浏览器窗口供您登录谷歌。A. token.json 保存在 data/ 为了未来的跑步。


连接到克劳德桌面

使用带有env-var的Docker(选项A)

{
  "mcpServers": {
    "google-sheets": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/google-sheets"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_JSON": "{\"type\": \"service_account\", ...}"
      }
    }
  }
}

使用带有卷挂载的Docker(选项B)

{
  "mcpServers": {
    "google-sheets": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/path/to/your/data:/data",
        "mcp/google-sheets"
      ]
    }
  }
}

直接使用Python(选项C-OAuth 2.0)

{
  "mcpServers": {
    "google-sheets": {
      "command": "python",
      "args": ["/path/to/google-sheets-mcp/src/server.py"],
      "env": {
        "TOKEN_PATH": "/path/to/data/token.json",
        "CREDENTIALS_PATH": "/path/to/data/credentials.json"
      }
    }
  }
}

MCP检验员测试

source venv/bin/activate
npx @modelcontextprotocol/inspector \
  env TOKEN_PATH=data/token.json \
  CREDENTIALS_PATH=data/credentials.json \
  python src/server.py

打开终端显示的URL,设置 传输类型 到 STDIO,然后单击 连接.

使用示例

  • “从表1读取单元格A1至D10”
  • 将包含姓名、年龄、城市的标题行写入Sheet1
  • “与30岁的爱丽丝(Alice)在柏林追加一行”
  • “创建一个名为Q1预算的电子表格,其中包含销售和费用表”
  • “将Sheet1重命名为Sales Q1”
  • “从我的数据区域中删除所有重复行”
  • “按第二列降序排列数据”
  • “用红色突出显示所有小于0的单元格”
  • “冻结第一行和第一列”

许可证

麻省理工学院许可证--版权所有(c)2026阿达尔贝托·佩雷斯·萨拉斯(泛)