Google Sheets AI 助手

一个基于 TypeScript 的 MCP 服务器,作为 MCP 兼容客户端与 Google Sheets API 之间的桥梁,支持通过 AI 驱动的自动化工作流操作 Google 表格数据。

  • by BaamAhmed
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 BaamAhmed/sheets-mcp

使用说明

mcp-google-sheets

Your AI Assistant's Gateway to Google Sheets! 📊


🤔 这是什么?

mcp-google-sheets 是一个基于TypeScripts的MCP服务器,充当任何兼容MCP的客户端(如Claude Desktop、Cursor或ChatGPT)与Google Sheets API之间的桥梁。它允许您使用一组定义好的工具与Google电子表格进行交互,从而实现由AI驱动的强大自动化和数据操作工作流程。

此服务器旨在部署在Vercel上 轻松实现全球分布的无服务器托管。


🚀 快速开始

部署到Vercel

  1. 单击上面的按钮进行部署
  2. 设置所需的环境变量(请参见 配置)
  3. 将您的MCP客户端连接到 https://your-deployment.vercel.app/api/mcp

本地开发

# Clone the repository
git clone https://github.com/xing5/mcp-google-sheets.git
cd mcp-google-sheets

# Install dependencies
npm install

# Set environment variables
export CREDENTIALS_CONFIG="your-base64-encoded-credentials"
# OR
export GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account",...}'
# OR
export GOOGLE_CLIENT_EMAIL="your-service-account@project.iam.gserviceaccount.com"
export GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n..."

# Optional: Set Redis URL for production (not needed for local dev)
# export REDIS_URL="redis://localhost:6379"

# Run development server
npm run dev

MCP端点将在 http://localhost:3000/api/mcp


✨ 主要特点

  • 无缝集成: 直接连接到Google云端硬盘和Google表格API
  • 综合工具: 提供广泛的操作(CRUD、列表、批处理、共享、格式化等)
  • 灵活的身份验证: 支持多种凭据格式(Base64、JSON字符串、单个字段)
  • 无服务器部署: 为Vercel构建,支持边缘运行时
  • AI就绪: 专为与MCP兼容的客户端一起使用而设计

🔧 配置

环境变量

必需-身份验证

设置以下身份验证方法之一:

变量 描述
CREDENTIALS_CONFIG Base64编码的服务帐户JSON(建议用于Vercel)
GOOGLE_SERVICE_ACCOUNT_KEY 服务帐户凭据的直接JSON字符串
GOOGLE_CLIENT_EMAIL + GOOGLE_PRIVATE_KEY 个人服务帐户字段

可选的

变量 描述
DRIVE_FOLDER_ID 默认Google Drive文件夹ID
REDIS_URL 生产发布/订阅的Redis连接URL(例如。, redis://localhost:6379).当地发展不需要。

设置Google Cloud凭据

  1. 创建谷歌云项目

  2. 启用API

    • 导航到“API和服务”→ “图书馆”
    • 启用 谷歌网页API 和 Google Drive API
  3. 创建服务帐户

    • 转到“IAM和管理员”→ “服务帐户”
    • 点击“+创建服务帐户”
    • 命名它(例如。, mcp-sheets-service)
    • 授予 编辑 角色
    • 单击“完成”,然后找到帐户并单击“管理密钥”
    • 点击“添加密钥”→ “创建新密钥”→ JSON
    • 下载JSON密钥文件
  4. 共享驱动器文件夹(可选)

    • 在Google云端硬盘中创建文件夹
    • 将其与您的服务帐户电子邮件共享(JSON中为 client_email)
    • 注意URL中的文件夹ID
  5. 对Vercel的凭据进行编码

    # macOS/Linux
    base64 -w 0 your-service-account-key.json
    
    # Windows PowerShell
    [Convert]::ToBase64String([IO.File]::ReadAllBytes("your-service-account-key.json"))
    

    将输出设置为 CREDENTIALS_CONFIG 在Vercel


🛠️ 可用工具

工具 说明
list_spreadsheets 在Drive文件夹中列出电子表格
create_spreadsheet 创建新的电子表格
get_sheet_data 从某个范围读取数据
get_sheet_formulas 从某个范围读取公式
update_cells 将数据写入范围
batch_update_cells 一次更新多个范围
add_rows 插入空行
add_columns 插入空列
list_sheets 列出所有工作表选项卡
create_sheet 创建新的图纸选项卡
copy_sheet 在电子表格之间复制表格
rename_sheet 重命名图纸选项卡
get_multiple_sheet_data 从多个范围获取
get_multiple_spreadsheet_summary 获取多个电子表格的摘要
share_spreadsheet 与用户共享
list_folders 列出驱动器文件夹
batch_update 执行任何batchUpdate操作

MCP资源

资源 描述
spreadsheet://{spreadsheet_id}/info 获取电子表格元数据

🔌 客户端配置

光标

添加到MCP设置中:

{
  "mcpServers": {
    "google-sheets": {
      "url": "https://your-deployment.vercel.app/api/mcp"
    }
  }
}

克劳德桌面版

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "google-sheets": {
      "url": "https://your-deployment.vercel.app/api/mcp",
      "transport": "sse"
    }
  }
}

VS代码与副本

  1. 打开命令选项板
  2. 运行“MCP:添加服务器”
  3. 选择“HTTP”
  4. 输入URL: https://your-deployment.vercel.app/api/mcp
  5. 姓名: google-sheets

💬 示例提示

连接后,尝试以下提示:

  • “列出我有权访问的所有电子表格。”
  • “创建一个名为‘2024年第三季度季度销售报告’的新电子表格。”
  • “从电子表格ID abc123中的Sheet1范围A1到E10获取数据。”
  • “将名为“摘要”的新工作表添加到电子表格abc123中。”
  • 将工作表“任务”中的单元格B2更新为“进行中”
  • “与共享电子表格user@example.com作为一名作家。"

🆔 ID参考指南

Google Drive Folder ID:
  https://drive.google.com/drive/folders/1xcRQCU9xrNVBPTeNzHqx4hrG7yR91WIa
                                          └────────── Folder ID ──────────┘

Google Sheets Spreadsheet ID:
  https://docs.google.com/spreadsheets/d/25_-_raTaKjaVxu9nJzA7-FCrNhnkd3cXC54BPAOXemI/edit
                                         └───────────── Spreadsheet ID ─────────────┘

📁 项目结构

mcp-google-sheets/
├── app/
│   ├── api/
│   │   └── mcp/
│   │       └── route.ts      # MCP endpoint handler
│   ├── layout.tsx            # Next.js layout
│   └── page.tsx              # Info page
├── lib/
│   ├── google-auth.ts        # Google API authentication
│   └── sheets-tools.ts       # Tool implementations
├── package.json
├── tsconfig.json
├── vercel.json
└── README.md

🤝 贡献

欢迎投稿!请打开一个问题来讨论bug或功能请求。拉取请求受到赞赏。


📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。


🙏 学分