Google Sheets交互工具

一个基于TypeScript的MCP服务器,允许AI代理通过类型化工具安全地与Google Sheets进行交互,支持OAuth2和服务账户认证。

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

使用说明

MCP谷歌表格

一个TypeScript模型上下文协议(MCP)服务器,允许人工智能代理通过类型良好的“工具”与谷歌表格安全交互 @modelcontextprotocol/sdk,它支持OAuth2和服务帐户流。


🚀 特性

  • 认证
    • 服务帐户 通过base64编码 CREDENTIALS_CONFIG
    • OAuth2 使用 credentials.json + token.json 用于用户范围的访问
  • 工具
    • create
      创建新的电子表格(如果已配置,则将其移动到“驱动器”文件夹中)。
    • listSheets
      列出给定电子表格中的所有工作表选项卡。
    • renameSheet
      重命名现有图纸选项卡。
    • createSheet
      将新的工作表选项卡添加到电子表格中。
    • spreadsheetInfo
      获取电子表格的元数据(标题、工作表ID、网格属性)。
    • listSpreadsheets
      列出您配置的“驱动器”文件夹(或“我的驱动器”)中的所有电子表格。
    • shareSpreadsheet
      与用户(读者/评论者/作者)共享电子表格并发送通知。
    • sheetData
      从工作表和范围(或整个工作表)读取单元格值。
    • updateCells
      将二维值数组写入A1样式范围。
    • batchUpdate
      在单个请求中应用多个范围更新。
    • addRows / addColumns
      在指定索引处插入行或列。
    • copySheet
      在电子表格之间复制表格选项卡(可选择重命名)。

📋 先决条件

  • 包子 (v1.0+)已安装并安装在您的 PATH
  • A. 谷歌云 项目包括:
    • 表API & 驱动API 启用
    • 一 OAuth2客户端ID (下载 credentials.json) 或 一 服务帐户 密钥(下载 service_account.json)
  • (可选)如果要将新工作表移出“我的驱动器”,请提供驱动器文件夹ID

⚙️ 设置

  1. 克隆仓库
    git clone https://github.com/yourusername/mcp-google-sheets.git
    cd mcp-google-sheets
    
  2. 安装依赖项
bun install
  1. 配置环境

使用以下命令创建.env(或导出):

# Base64-encoded service-account key JSON (optional)
CREDENTIALS_CONFIG=BASE-64 ENCODED SERVICE_ACCOUNT.JSON


# Or put your OAuth2 JSON files next to index.ts:
#   credentials.json  (OAuth client secret)
#   token.json        (generated after first OAuth run)

# The google email address that you'll use to access the spreadsheet
EMAIL_ID="Enter the email address you’ll use to access the spreadsheet"
# (Optional) ID of the Drive folder to store new sheets
DRIVE_FOLDER_ID=1a2B3c4D5e6F...

提示:在Linux/macOS上,你可以

export CREDENTIALS_CONFIG=$(base64 service_account.json | tr -d '\n')

▶️ 运行服务器

bun index.ts

在第一次运行OAuth2时(如果使用credentials.json),您将看到一个URL。访问它,授予访问权限,然后将代码粘贴回您的终端。将自动生成一个token.json。

🔧 运作原理

初始化

  • initContext()选择您的身份验证方法(服务帐户→ OAuth2→ 错误)。

MCP工具注册

  • 每个“工具”(例如create、listSheets、sheetData)都通过server.tool(…)注册。

运输

  • 使用StdioServerTransport,这样Claude就可以通过stdin/stdout调用工具。

调用

代理发送JSON请求:

{ "tool": "create", "args": { "title": "Budget Q2" } }

服务器运行您的处理程序,调用GoogleAPI,并返回JSON包装的结果。

🛠️ 试试看

如上所述进行克隆和配置。

启动服务器:

bun index.ts
Invoke a tool via Claude

演示

❤️ 贡献

请随时打开新工具、错误修复和增强的问题或PR。