关于 MCP Google Sheets Server
MCP Google Sheets Server 将 MCP 客户端连接到 Google Sheets,用于读取、编辑和管理电子表格。它支持批量操作、格式设置和图表,并可配置工具集或只读模式。
主要功能
- 01读取和写入单元格区域
- 02批量处理多个区域
- 03管理工作表、行和列
- 04设置格式与条件规则
- 05创建和管理图表
- 06按工具集或只读模式限制工具
适用场景
- 01在 MCP 工作流中读取表格数据
- 02批量更新或追加行
- 03设置表格格式和条件规则
- 04限制可用工具为只读操作
MCP 相关
向 MCP 客户端提供 Google Sheets 操作,包括数据访问、电子表格管理、格式设置和图表工具。工具集和只读模式可控制开放的功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-gsheetsGOOGLE_PROJECT_IDGoogle Cloud project IDGOOGLE_APPLICATION_CREDENTIALS密钥Path to service account key JSON file (auth method 1)GOOGLE_SERVICE_ACCOUNT_KEY密钥Service account key as JSON string (auth method 2)GOOGLE_PRIVATE_KEY密钥Service account private key in PEM format (auth method 3)GOOGLE_CLIENT_EMAILService account email (auth method 3)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Google Sheets 服务
用于集成 Google Sheets API 的模型上下文协议(MCP)服务。可让你直接通过 MCP 客户端(例如 Claude Code、Claude Desktop、Cursor 等)读取、写入和管理 Google Sheets 文档。
主要功能
- 完整的 Google Sheets 集成:读取、写入和管理电子表格
- 高级操作:批量操作、格式设置、图表和条件格式
- 灵活的身份验证:支持基于文件的凭据和 JSON 字符串凭据
- 适用于生产环境:使用 TypeScript 构建,具备全面的错误处理和完整的测试覆盖
要求
- Node.js v22 或更高版本
- 启用了 Sheets API 的 Google Cloud 项目
- 带有 JSON 密钥文件的服务账号
- npm
开始使用
快速安装(推荐)
将以下配置添加到 MCP 客户端:
{
"mcpServers": {
"mcp-gsheets": {
"command": "npx",
"args": ["-y", "mcp-gsheets@latest"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
说明
使用
mcp-gsheets@latest可确保 MCP 客户端始终使用最新版 MCP Google Sheets 服务。
MCP 客户端配置
Claude Code
使用 Claude Code CLI 添加 MCP Google Sheets 服务(指南):claude mcp add mcp-gsheets npx mcp-gsheets@latest
添加后,编辑 Claude Code 配置,加入所需的环境变量:
{
"mcpServers": {
"mcp-gsheets": {
"command": "npx",
"args": ["mcp-gsheets@latest"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
Claude Desktop
将以下内容添加到 Claude Desktop 配置中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-gsheets": {
"command": "npx",
"args": ["-y", "mcp-gsheets@latest"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
Cursor
前往 Cursor Settings → MCP → New MCP Server。使用上方提供的配置。
Cline
按照 https://docs.cline.bot/mcp/configuring-mcp-servers 中的说明操作,并使用上方提供的配置。
其他 MCP 客户端
对于其他 MCP 客户端,请使用上方所示的标准配置格式。确保将 command 设置为 npx,并加入用于 Google Cloud 身份验证的环境变量。
Google Cloud 设置
- 前往 Google Cloud Console
- 创建新项目或选择现有项目
- 启用 Google Sheets API:
- 前往“APIs & Services” → “Library”
- 搜索“Google Sheets API”,然后点击“Enable”
- 创建服务账号:
- 前往“APIs & Services” → “Credentials”
- 点击“Create Credentials” → “Service Account”
- 在服务账号列表中,点击
Actions列中的三个点 →Manage keys→Add key→Create new key→ 选择 JSON 格式 - 下载 JSON 密钥文件
- 分享电子表格:
- 打开你的 Google Sheet
- 点击 Share,并添加服务账号邮箱(来自 JSON 文件)
- 授予“Editor”权限
其他身份验证方式
选项 1:JSON 字符串身份验证
无需使用凭据文件路径,你可以直接以 JSON 字符串的形式提供服务账号凭据。这适用于容器化环境、CI/CD 管道,或你希望避免管理凭据文件的场景。
{
"mcpServers": {
"mcp-gsheets": {
"command": "npx",
"args": ["-y", "mcp-gsheets@latest"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\",\"project_id\":\"your-project\",\"private_key_id\":\"...\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n\",\"client_email\":\"[email protected]\",\"client_id\":\"...\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"...\"}"
}
}
}
}
注意:使用 GOOGLE_SERVICE_ACCOUNT_KEY 时:
- 整个 JSON 必须位于同一行
- 所有引号都必须用反斜杠转义
- 私钥中的换行符必须表示为
\\n - 如果 JSON 包含
project_id,可以省略GOOGLE_PROJECT_ID
选项 2:私钥身份验证(简化版)
最方便用户的方式是直接提供私钥和电子邮件地址。这是最简单的方法,只需要服务账号 JSON 中的两个字段:
{
"mcpServers": {
"mcp-gsheets": {
"command": "npx",
"args": ["-y", "mcp-gsheets@latest"],
"env": {
"GOOGLE_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCgR6bvMNOUHZ29\\n+YgbVHAXsT/s+L/jnXTCB193zikCzspSBSfxLu8VRDjkNq9WUoDxizTATzMFNvNf\\n...\\n-----END PRIVATE KEY-----\\n",
"GOOGLE_CLIENT_EMAIL": "[email protected]"
}
}
}
}
注意:使用 GOOGLE_PRIVATE_KEY 时:
- 私钥中的换行符应表示为
\\n - 私钥必须包含
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----标记 - 客户端电子邮件地址应为 JSON 文件中的服务账号电子邮件地址
- 使用此方法时,
GOOGLE_PROJECT_ID是可选的
本地开发设置
如果你想开发或为此项目贡献代码,可以在本地克隆并构建项目:
# Clone the repository
git clone https://github.com/freema/mcp-gsheets.git
cd mcp-gsheets
# Install dependencies
npm install
# Build the project
npm run build
交互式设置脚本
运行交互式设置脚本,配置本地 MCP 客户端:
npm run setup
此脚本将:
- 引导你完成配置
- 自动检测 Node.js 安装(包括 nvm)
- 查找 Claude Desktop 配置
- 创建正确的 JSON 配置
- 可选创建用于开发的 .env 文件
手动本地配置
如果你更倾向于使用本地构建进行手动配置,请在 MCP 客户端配置中添加:
{
"mcpServers": {
"mcp-gsheets": {
"command": "node",
"args": ["/absolute/path/to/mcp-gsheets/dist/index.js"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account-key.json"
}
}
}
}
📦 构建与开发
开发命令
# Development mode with hot reload
npm run dev
# Build for production
npm run build
# Type checking
npm run typecheck
# Clean build artifacts
npm run clean
# Run MCP inspector for debugging
npm run inspector
# Run MCP inspector in development mode
npm run inspector:dev
任务运行器(替代方案)
如果已安装 Task:
# Install dependencies
task install
# Build the project
task build
# Run in development mode
task dev
# Run linter
task lint
# Format code
task fmt
# Run all checks
task check
开发设置
- 创建用于测试的
.env文件:
cp .env.example .env
# Edit .env with your credentials:
# GOOGLE_PROJECT_ID=your-project-id
# GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
# TEST_SPREADSHEET_ID=your-test-spreadsheet-id
- 在开发模式下运行:
npm run dev # Watch mode with auto-reload
🎚️ 使用工具集降低上下文成本
全部 44 个工具在每个会话中总共约占 9,900 个上下文 token,
还未计入模型执行任何操作之前的开销。大多数工作流只需要其中一小部分。
GSHEETS_TOOLSETS 可限制服务公开的工具:
{
"mcpServers": {
"gsheets": {
"command": "npx",
"args": ["mcp-gsheets"],
"env": {
"GOOGLE_PROJECT_ID": "your-project-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/key.json",
"GSHEETS_TOOLSETS": "core,charts"
}
}
}
}
| 工具集 | 工具数 | 覆盖范围 |
|---|---|---|
core | 11 | 读取/写入值、元数据、工作表结构、创建电子表格 |
sheets | 9 | 工作表生命周期、行和列 |
formatting | 15 | 颜色、边框、合并、条件规则、链接、日期 |
charts | 3 | 创建、更新、删除图表 |
tables | 4 | 原生表格 |
analysis | 2 | 整张工作表快照、范围比较 |
测得的 tools/list 成本:
| 配置 | 工具数 | ≈ Token 数 |
|---|---|---|
| 未设置(默认,所有工具集) | 44 | 9,875 |
GSHEETS_TOOLSETS=core | 11 | 1,986 |
GSHEETS_TOOLSETS=core,sheets | 20 | 3,548 |
GSHEETS_READ_ONLY=true | 16 | 3,599 |
GSHEETS_TOOLSETS=core + 只读 | 6 | 912 |
注意:
- 默认设置保持不变——将
GSHEETS_TOOLSETS留空即可获得所有工具,与之前完全相同。 - 始终包含
core。GSHEETS_TOOLSETS=charts表示“charts和core”,而非“仅charts”——没有core,服务就无法读取单元格。 - 拼写错误会导致启动错误,而不是静默地减少工具列表。
GSHEETS_READ_ONLY=true会移除所有写入工具,并且可以与GSHEETS_TOOLSETS组合使用。此设置会在调用工具时强制执行,而不只是在构建列表时执行,因此客户端无法通过指定隐藏工具来写入。
所有工具还带有 MCP 注解(readOnlyHint、destructiveHint、
idempotentHint),因此客户端可以跳过读取操作的确认提示,并在破坏性操作前发出警告。
📋 可用工具
读取数据
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_get_values | 读取单个范围中的单元格值 | spreadsheetId、range(A1 表示法)、valueRenderOption |
sheets_batch_get_values | 在一个请求中读取多个范围的单元格值 | spreadsheetId、ranges(A1 范围数组) |
sheets_get_metadata | 获取电子表格元数据:标题、区域设置、工作表列表(含 ID)、行数和列数 | spreadsheetId |
sheets_check_access | 验证服务账号是否有权访问电子表格 | spreadsheetId |
写入数据
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_update_values | 向单个范围写入值(覆盖现有内容) | spreadsheetId、range、values(二维数组)、valueInputOption |
sheets_batch_update_values | 在一个请求中向多个范围写入值 | spreadsheetId、data({range, values} 数组)、valueInputOption |
sheets_append_values | 在现有表格的最后一行之后追加行。insertDataOption 的默认值为 OVERWRITE — 设置为 INSERT_ROWS 可将现有行下移 | spreadsheetId、range、values、valueInputOption、insertDataOption |
sheets_clear_values | 清除范围内的所有值(保留格式) | spreadsheetId、range |
sheets_insert_rows | 在指定位置插入空白行或预填充行 | spreadsheetId、range(锚点)、rows、position(BEFORE/AFTER)、values |
sheets_delete_columns | 使用整列 A1 范围删除一列或多列 | spreadsheetId、range(例如 Sheet1!B:D) |
sheets_delete_rows | 使用整行 A1 范围删除一行或多行 | spreadsheetId、range(例如 Sheet1!2:4) |
sheets_insert_link | 在单元格中插入超链接公式 | spreadsheetId、range、url、label |
sheets_insert_date | 在单元格中插入格式正确的日期/日期时间值 | spreadsheetId、range、date、format |
工作表管理
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_create_spreadsheet | 创建新的 Google Sheets 文件 | title、sheets(可选的初始工作表配置) |
sheets_insert_sheet | 向现有电子表格添加新的工作表标签 | spreadsheetId、title、index |
sheets_delete_sheet | 根据数字工作表 ID 移除工作表标签 | spreadsheetId、sheetId |
sheets_duplicate_sheet | 在同一电子表格中复制工作表 | spreadsheetId、sheetId、newSheetName、insertSheetIndex |
sheets_copy_to | 将工作表复制到其他电子表格 | spreadsheetId、sheetId、destinationSpreadsheetId |
sheets_update_sheet_properties | 重命名工作表、更改标签颜色、切换网格线等 | spreadsheetId、sheetId、properties |
sheets_batch_delete_sheets | 在一个请求中删除多个工作表标签 | spreadsheetId、sheetIds(数组) |
单元格格式
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_format_cells | 为范围设置背景颜色、字体样式、对齐方式和数字格式 | spreadsheetId、range、format |
sheets_batch_format_cells | 在一个请求中为多个范围应用不同格式 | spreadsheetId、requests({range, format} 数组) |
sheets_update_borders | 设置或移除范围的边框(每侧的样式、宽度和颜色) | spreadsheetId、range、borders |
sheets_merge_cells | 合并单元格范围 | spreadsheetId、range、mergeType(MERGE_ALL / MERGE_COLUMNS / MERGE_ROWS) |
sheets_unmerge_cells | 取消合并范围内先前合并的单元格 | spreadsheetId、range |
sheets_add_conditional_formatting | 为范围添加条件格式规则(渐变或布尔值) | spreadsheetId、range、rule |
原生表格
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_add_table | 创建包含类型化列和可选下拉值的原生 Google Sheets 表格 | spreadsheetId、sheetName、range、name、columns |
sheets_update_table | 使用显式字段掩码,通过表格 ID 更新现有的原生 Google Sheets 表格 | spreadsheetId、tableId、fields、name、range、columns |
sheets_delete_table | 通过表格 ID 删除原生 Google Sheets 表格 | spreadsheetId、tableId |
sheets_get_tables | 读取电子表格或指定工作表中的原生表格 | spreadsheetId、sheetName |
图表
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_create_chart | 在工作表中创建条形图、折线图、饼图、柱形图或其他图表 | spreadsheetId、sheetId、chartSpec、position |
sheets_update_chart | 修改现有图表的规格或位置 | spreadsheetId、chartId、chartSpec、position |
sheets_delete_chart | 从电子表格中移除图表 | spreadsheetId、chartId |
读取/快照工具
| 工具 | 描述 | 关键参数 |
|---|---|---|
sheets_get_merged_cells | 返回工作表中所有合并单元格范围,包含 A1 表示法和原始 GridRange 坐标 | spreadsheetId、sheetName |
sheets_get_sheet_dimensions | 返回每列和每行的列宽、行高、冻结列/行数及隐藏标记 | spreadsheetId、sheetName |
sheets_get_sheet_formatting | 读取指定范围的原始单元格格式(背景颜色、字体、边框、对齐方式、数字格式),不返回单元格值 | spreadsheetId、range |
sheets_get_conditional_formatting | 读取工作表中定义的所有条件格式规则和带状(交替颜色)范围 | spreadsheetId、sheetName |
sheets_get_sheet_structure | 仅返回轻量级结构元数据,不包含单元格数据。返回维度、冻结行/列、标签页颜色、列宽、行高、隐藏列/行,以及以 A1 表示法表示的所有合并单元格。一次快速 API 调用 | spreadsheetId、sheetName |
sheets_get_formatting_compact | 读取指定范围的单元格格式,并将其作为紧凑的 A1Range→format 对(采用游程编码)返回。相邻且相同的单元格会合并为矩形范围,与逐单元格数据相比可减少 90 %+ 的输出 | spreadsheetId、sheetName、range、useEffectiveFormat、fields |
sheets_get_full_sheet_snapshot | 一站式主工具——通过单次 API 调用返回所有结构和格式元数据(合并单元格、维度、条件格式,以及可选的单元格格式)。支持使用 fields 筛选器和 compactMode 限制响应大小 | spreadsheetId、sheetName、includeFormattingRange、fields、compactMode |
sheets_get_basic_filter | 读取工作表的基本筛选器(自动筛选)配置,包括筛选范围、排序规格和各列的筛选条件(隐藏值、条件、颜色筛选器) | spreadsheetId、sheetName |
sheets_get_data_validation | 读取工作表或范围中的数据验证规则(复选框、下拉菜单、自定义公式)。返回按单元格范围分组的唯一规则列表,并采用紧凑游程编码 | spreadsheetId、sheetName、range |
🔧 代码质量
代码检查
# Run ESLint
npm run lint
# Fix auto-fixable issues
npm run lint:fix
格式化
# Check formatting with Prettier
npm run format:check
# Format code
npm run format
类型检查
# Run TypeScript type checking
npm run typecheck
❗ 故障排除
常见问题
“Authentication failed”
- 如果使用基于文件的身份验证:确认 JSON 密钥路径是绝对路径且正确
- 如果使用 JSON 字符串身份验证:确保 JSON 已正确转义且有效
- 如果使用私钥身份验证:检查私钥是否包含 BEGIN/END 标记,并且换行符已转义为
\\n - 确认 GOOGLE_CLIENT_EMAIL 是有效的服务账号邮箱
- 检查 GOOGLE_PROJECT_ID 是否与您的项目匹配(或者在完整 JSON 身份验证的 JSON 中包含该项)
- 确保已启用 Sheets API
“Permission denied”
- 将电子表格共享给服务账号邮箱
- 服务账号需要“Editor”角色
- 检查 JSON 文件中的邮箱(client_email 字段)
“Spreadsheet not found”
- 确认 URL 中的电子表格 ID
- 格式:
https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit
MCP 连接问题
- 确保使用的是构建版本(
dist/index.js) - 检查 Claude Desktop 配置中的 Node.js 路径是否正确
- 查看 Claude Desktop 日志中的错误
- 使用
npm run inspector进行调试
🔍 查找 ID
电子表格 ID
从 URL 中获取:
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
↑ This is the spreadsheet ID
工作表 ID
使用 sheets_get_metadata 列出所有工作表及其 ID。
📝 提示
- 始终使用数据副本进行测试
- 使用批量操作以获得更好的性能
- 设置适当的权限(只读或编辑)
- 对于大型操作,请检查速率限制
- 在操作前使用
sheets_check_access验证权限
📘 工具详情
sheets_get_sheet_structure
返回工作表的轻量级结构/维度元数据,不包含任何单元格数据。仅需布局信息时,此工具比 sheets_get_full_sheet_snapshot 快得多,成本也更低。
参数:
spreadsheetId(必填):电子表格的 IDsheetName(必填):工作表(标签页)的名称
返回: sheetName、sheetId、sheetIndex、tabColor、tabColorStyle、dimensions(rowCount、columnCount)、frozen(rowCount、columnCount)、columnWidths(像素大小数组)、rowHeights(像素大小数组)、hiddenColumns(从 0 开始的索引)、hiddenRows(从 0 开始的索引)、mergeCount、merges(A1 表示法数组)
sheets_get_formatting_compact
读取某个范围的单元格格式,并以紧凑的 A1Range → 格式键值对形式返回。格式相同的相邻单元格会合并为矩形范围(游程编码),与逐单元格数据相比,可将输出减少 90 %+。
参数:
spreadsheetId(必填):电子表格的 IDsheetName(必填):工作表(标签页)的名称range(必填):不带工作表前缀的范围,例如"A1:Z85"useEffectiveFormat(可选):false(默认)= userEnteredFormat(仅包含明确设置的覆盖项,输出更小);true= effectiveFormat(包含所有继承的默认值)fields(可选):要包含的格式字段名称数组,例如["backgroundColor", "textFormat", "borders"]
返回: { range, formatType, rangeCount, data: { "A1:C3": { backgroundColor: {...} }, ... } }
支持的字段: backgroundColor、backgroundColorStyle、textFormat、horizontalAlignment、verticalAlignment、wrapStrategy、textRotation、numberFormat、padding、borders
sheets_get_full_sheet_snapshot
一站式主工具,通过一次 API 调用返回所有结构和格式元数据。
参数:
spreadsheetId(必填):电子表格的 IDsheetName(必填):工作表(标签页)的名称includeFormattingRange(可选):如果提供(例如"A1:Z100"),响应中将包含单元格格式useEffectiveFormat(可选):包含单元格格式时,使用 effectiveFormat 而非 userEnteredFormat(默认值:false)fields(可选):要返回的格式字段名称数组,例如["backgroundColor", "textFormat"]— 可减少 API 传输和响应的数据量compactMode(可选):设为true时,将相邻且相同的单元格合并为矩形范围(RLE)。可将典型的 85×28 工作表从约 60 000 行缩减至约 500 行(默认值:false)
sheets_insert_rows
在电子表格的指定位置插入新行,并可选择填入数据。
参数:
spreadsheetId(必填):电子表格的 IDrange(必填):用于定位的 A1 表示法锚点(例如 "Sheet1!A5")rows(可选):要插入的行数(默认值:1)position(可选):锚点行之前的 'BEFORE' 或之后的 'AFTER'(默认值:'BEFORE')inheritFromBefore(可选):是否继承前一行的格式(默认值:false)values(可选):用于填充新插入行的二维值数组valueInputOption(可选):'RAW' 或 'USER_ENTERED'(默认值:'USER_ENTERED')
示例:
// Insert 1 empty row before row 5
{
"spreadsheetId": "your-spreadsheet-id",
"range": "Sheet1!A5"
}
// Insert 3 rows after row 10 with data
{
"spreadsheetId": "your-spreadsheet-id",
"range": "Sheet1!A10",
"rows": 3,
"position": "AFTER",
"values": [
["John", "Doe", "[email protected]"],
["Jane", "Smith", "[email protected]"],
["Bob", "Johnson", "[email protected]"]
]
}
sheets_delete_columns
使用整列 A1 范围删除工作表中的一列或多列。
参数:
spreadsheetId(必填):电子表格的 IDrange(必填):要删除的整列 A1 范围(例如 "Sheet1!B:D" 或 "Sheet1!C:C")
示例:
// Delete columns B through D from Sheet1
{
"spreadsheetId": "your-spreadsheet-id",
"range": "Sheet1!B:D"
}
// Delete a single column from the first sheet
{
"spreadsheetId": "your-spreadsheet-id",
"range": "C:C"
}
sheets_delete_rows
使用整行 A1 范围删除工作表中的一行或多行。
参数:
spreadsheetId(必填):电子表格的 IDrange(必填):要删除的整行 A1 范围(例如 "Sheet1!2:4" 或 "Sheet1!3:3")
示例:
// Delete rows 2 through 4 from Sheet1
{
"spreadsheetId": "your-spreadsheet-id",
"range": "Sheet1!2:4"
}
// Delete a single row from the first sheet
{
"spreadsheetId": "your-spreadsheet-id",
"range": "3:3"
}
📋 更新日志
请参阅 CHANGELOG.md,了解各版本的更改列表。
🤝 参与贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 运行测试和 lint(
npm run check) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
👤 作者
Tomáš Grásl - tomasgrasl.cz
📄 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。