Google表格MCP服务器

一个基于MuleSoft构建的MCP服务器,将Google表格操作暴露为MCP工具,允许AI代理通过自然语言直接与Google表格交互。

  • by Jackx201
  • DataWeave
  • 云端部署
  • 2 星标
  • 更新于
在 GitHub 查看 Jackx201/mulesoft-google-sheets-mcp

使用说明

谷歌表单MCP服务器——MuleSoft

A. 模型上下文协议(MCP)服务器 使用MuleSoft构建,将Google表格操作作为MCP工具公开,允许AI代理(Claude、Copilot、Cursor等)通过自然语言直接与Google电子表格交互。


这是什么?

此项目使用 MuleSoft MCP连接器.它使用OAuth 2.0将人工智能代理与Google Sheets API连接起来,将电子表格操作公开为任何兼容MCP的客户端都可以发现和调用的工具。


建筑

MCP Client (AI Agent)
        │
        ▼
MuleSoft MCP Server (Streamable HTTP)
        │
        ▼
Google Sheets API v4 (OAuth 2.0)
  • MCP运输: 可流式HTTP开启 http://localhost:8080/api
  • 认证: Google OAuth 2.0授权代码流
  • 令牌存储: Mule对象存储(跨请求持久化)
  • 配置: 安全属性模块(AES/CBC加密凭据)

MCP工具

1. get-sheet-values-by-tab-name

从给定选项卡名称的Google电子表格中检索所有值。

参数 类型 必填 说明
sheetId string ✅ 电子表格ID(在表格URL中找到)
tabName string ✅ 要读取的选项卡的名称

2. get-sheet-values-by-range

从Google电子表格中的特定单元格区域检索值。

参数 类型 必填 说明
sheetId string ✅ 电子表格ID(在表格URL中找到)
range string ✅ A1表示法中的单元格范围(例如。 Sheet1!A1:D10)

3. create-new-spreadsheet

使用给定名称和可选选项卡结构创建新的Google电子表格。

参数 类型 必填 说明
title string ✅ 新电子表格的名称
sheets string[] ❌ 要创建的选项卡名称数组。默认为 ["Sheet1"]

4. append-sheet-values

在给定范围内将新行数据附加到Google电子表格中。

参数 类型 必填 说明
sheetId string ✅ 电子表格ID(在表格URL中找到)
range string ✅ A1表示法中的目标范围(例如。 Sheet1!A:D)
values 数组[] ✅ 数组数组——每个内部数组都是一行(例如。 [["John", "Doe", "30"]])

HTTP端点

除了MCP工具外,以下REST端点也可直接使用或调试:

方法 路径 描述
GET /api/get-sheet-values-by-range 按范围读取工作表值
GET /api/get-sheet-values-by-tab 从选项卡读取所有值
POST /api/append-values 将行附加到工作表
POST /api/create-new-spreadsheet 创建新的电子表格
GET /api/get-access-token 检索当前OAuth访问令牌
GET /api/health 健康检查
GET /api/google/auth 启动Google OAuth流

先决条件

  • Anypoint代码生成器 或 Anypoint工作室
  • Mule运行时 4.11.0+
  • JDK 17
  • A. 谷歌云项目 启用了Google Sheets API
  • 一 OAuth 2.0客户端ID (类型:Web应用程序),回调URL为:
    http://localhost:8080/api/callback
    

配置

凭据以加密方式存储在 src/main/resources/config/ws/ws-config.yaml 使用 Mule安全属性模块 (AES/CBC)。

google:
  spread-sheets:
    client_id: "![ENCRYPTED_VALUE]"
    client_secret: "![ENCRYPTED_VALUE]"
    scope: "https://www.googleapis.com/auth/spreadsheets"
  oauth-callback:
    callback_path: "/callback"
    authorize-path: "/google/auth"
    external-callback-url: "http://localhost:8080/callback"

要加密自己的值,请使用 安全属性工具 使用算法 AES 和模式 CBC.


运行服务器

将加密密钥作为JVM参数传递:

-Dsecure.key=YOUR_ENCRYPTION_KEY

在Anypoint代码生成器中,将其添加到下面的运行配置中 其他JVM参数.

一旦开始:

  1. 授权谷歌: 打开 http://localhost:8080/api/google/auth 在浏览器中完成OAuth流程。
  2. 连接您的MCP客户端 到 http://localhost:8080/api/sse (或可流式传输的HTTP端点)。
  3. 这4个工具将适用于任何与MCP兼容的AI代理。

MCP客户端配置(克劳德桌面/光标)

{
  "mcpServers": {
    "google-sheets": {
      "url": "http://localhost:8080/api/sse"
    }
  }
}

项目结构

src/main/mule/
├── global.xml                    # Global configs: Secure Properties, Google Sheets connector, Object Store
├── gogle-sheets-mcp-server.xml   # MCP tool listeners
└── implementation.xml            # Flow implementations

src/main/resources/
├── config/ws/ws-config.yaml      # Encrypted credentials
└── dataweave/                    # DataWeave scripts

许可证

麻省理工学院


演示

观看AI代理使用此MCP服务器使用自然语言与Google表格交互的演示——实时读取、创建和附加数据。