使用说明
谷歌表单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参数.
一旦开始:
- 授权谷歌: 打开
http://localhost:8080/api/google/auth在浏览器中完成OAuth流程。 - 连接您的MCP客户端 到
http://localhost:8080/api/sse(或可流式传输的HTTP端点)。 - 这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表格交互的演示——实时读取、创建和附加数据。