MCP Reference: sheetsmcp.googleapis.com

这是一个 MCP 服务器,提供用于与 Google 表格交互的工具。

Model Context Protocol (MCP) 服务器充当外部服务(为大语言模型 [LLM] 或 AI 应用提供上下文、数据或功能)与 LLM 或 AI 应用之间的代理。MCP 服务器将 AI 应用连接到数据库和 Web 服务等外部系统,并将这些系统的响应转换为 AI 应用可理解的格式。

MCP 工具

MCP 工具是 MCP 服务器向 LLM 或 AI 应用公开的函数或可执行功能,用于在现实世界中执行操作。

工具

sheetsmcp.googleapis.com MCP 服务器具有以下工具:

MCP 工具
get_values

返回电子表格中的某个值范围。

对应于 REST API 中的 spreadsheets.values.get:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.values/get

架构:- spreadsheet_id(字符串,必需):要从中检索数据的电子表格的 ID。- range(字符串,必需):要从中检索值的范围的 A1 表示法或 R1C1 表示法(例如 "Sheet1!A1:B10")。

get_spreadsheet

返回指定电子表格的电子表格内容。返回指定电子表格 ID 的标题、工作表名称、网格属性和其他元数据。如果请求,还会返回完整的网格数据。

对应于 REST API 中的 spreadsheets.get:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/get

架构:- spreadsheet_id(字符串,必需):要请求的电子表格的 ID。- include_grid_data(布尔值,可选):如果应返回网格数据,则为 True。默认值为 false。- fields(字符串数组,可选):指定要返回的属性的字段掩码(例如 ["sheets.properties.sheetId", "sheets.properties.title"])。- comments_included(布尔值,可选):如果为 true,则响应中将包含注释。默认值为 false。- ranges(字符串数组,可选):要从电子表格中检索的 A1 或 R1C1 范围。如果未指定,则返回整个电子表格。

update_spreadsheet

对电子表格应用一项或多项更新。

对应于 REST API 中的 spreadsheets.batchUpdate:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate

可能的更新列表如下:

  • updateSpreadsheetProperties:更新电子表格的属性。架构:
  • properties(对象,必需):要更新的电子表格属性 ({"title": string, "locale": string, "timeZone": string})。
  • fields(字符串,必需):要更新的媒体资源的字段掩码(例如 "title" 或 "*")。
  • updateSheetProperties:更新工作表的属性。架构:
  • properties(对象,必需):工作表属性 ({"sheetId": int, "title": string, "index": int, "gridProperties": {"rowCount": int, "columnCount": int, "frozenRowCount": int, "frozenColumnCount": int, "hideGridlines": bool}, "hidden": bool, "tabColorStyle": {"rgbColor": {"red": float, "green": float, "blue": float}}})。
  • fields(字符串,必需):要更新的属性的字段掩码(例如 "title"、"gridProperties.frozenRowCount")。
  • updateDimensionProperties:更新维度属性(例如行高或列宽)。架构:
  • range(对象,必需):维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • properties(对象,必需):维度属性 ({"pixelSize": int, "hiddenByUser": bool})。
  • fields(字符串,必需):要更新的属性的字段掩码(例如 "pixelSize")。
  • updateNamedRange:更新命名的范围。架构:
  • namedRange(对象,必需):已命名的范围定义 ({"namedRangeId": string, "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}})。
  • fields(字符串,必需):要更新的字段的字段掩码(例如 "name,range" 或 "*")。
  • repeatCell:在某个范围内重复单个单元格。架构:
  • range(对象,必需):应用单元格数据/格式设置的网格范围 ({"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int})。
  • cell(对象,必需):移动数据 ({"userEnteredValue": {"stringValue": str, "numberValue": float, "formulaValue": str}, "userEnteredFormat": {"textFormat": {"bold": bool, "italic": bool, "fontSize": int}, "backgroundColorStyle": {"rgbColor": {"red": float, "green": float, "blue": float}}, "horizontalAlignment": "LEFT"|"CENTER"|"RIGHT", "wrapStrategy": "WRAP"|"CLIP"|"OVERFLOW_CELL"}})。
  • fields(字符串,必需):要更新的单元格字段的字段掩码(例如 "userEnteredFormat.textFormat.bold" 或 "userEnteredValue")。
  • addNamedRange:添加命名的范围。架构:
  • namedRange(对象,必需):要添加的命名的范围 ({"namedRangeId": string (optional), "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}})。
  • deleteNamedRange:按 ID 删除命名的范围。架构:
  • namedRangeId(字符串,必需):要删除的命名的范围的 ID。
  • addSheet:添加工作表。架构:
  • properties(对象,可选):工作表属性 ({"title": string, "sheetId": int (optional), "index": int (optional), "gridProperties": {"rowCount": int, "columnCount": int}})。
  • deleteSheet:删除工作表。架构:
  • sheetId(整数,必需):要删除的工作表的 ID。
  • autoFill:根据现有数据自动填充更多数据。架构:
  • range(对象,可选):要检查并填充到 {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int} 中的范围。
  • sourceAndDestination(对象,可选):明确的来源和填充长度 ({"source": GridRange, "dimension": "ROWS"|"COLUMNS", "fillLength": int})。
  • useAlternateSeries(布尔值,可选):是否使用备选序列。
  • cutPaste:剪切某个区域的数据并将其粘贴到另一个区域。架构:
  • source(对象,必需):源网格范围。
  • destination(对象,必需):左上角目标坐标 ({"sheetId": int, "rowIndex": int, "columnIndex": int})。
  • pasteType(字符串,可选):"PASTE_NORMAL"、"PASTE_VALUES"、"PASTE_FORMAT"、"PASTE_NO_BORDERS"、"PASTE_FORMULA"。
  • copyPaste:将数据从一个区域复制到另一个区域。架构:
  • source(对象,必需):源网格范围。
  • destination(对象,必需):目标网格范围。
  • pasteType(字符串,可选):"PASTE_NORMAL"、"PASTE_VALUES"、"PASTE_FORMAT"、"PASTE_NO_BORDERS"、"PASTE_FORMULA"。
  • pasteOrientation(字符串,可选):"NORMAL" 或 "TRANSPOSE"。
  • mergeCells:将单元格合并在一起。架构:
  • range(对象,必需):要合并的网格范围。
  • mergeType(字符串,必需):"MERGE_ALL"、"MERGE_COLUMNS" 或 "MERGE_ROWS"。
  • unmergeCells:取消合并已合并的单元格。架构:
  • range(对象,必需):要取消合并所有单元格的网格范围。
  • updateBorders:更新某个单元格范围内的边框。架构:
  • range(对象,必需):要更新边框的网格范围。
  • top / bottom / left / right / innerHorizontal / innerVertical(对象,可选):边框样式 ({"style": "SOLID"|"DASHED"|"DOTTED"|"DOUBLE"|"NONE", "width": int, "colorStyle": {"rgbColor": {"red": float, "green": float, "blue": float}}})。
  • updateCells:一次性更新多个单元格。架构:
  • 面积(必须提供一个):
    • start(对象):左上角坐标 ({"sheetId": int, "rowIndex": int, "columnIndex": int})。
    • range(对象):网格范围。
  • rows(RowData 数组,必需):单元格 ([{"values": [{"userEnteredValue": {"stringValue": str, "numberValue": float, "formulaValue": str}}]}]) 行。
  • fields(字符串,必需):要更新的单元格字段的字段掩码(例如 "userEnteredValue" 或 "userEnteredFormat")。
  • addFilterView:添加过滤视图。架构:
  • filter(对象,必需):过滤视图定义 ({"title": string, "range": GridRange, "criteria": map, "sortSpecs": list})。
  • appendCells:将单元格附加到工作表中包含数据的最后一行的后面。架构:
  • sheetId(整数,必需):要向其附加数据的工作表 ID。
  • rows(RowData 数组,必需):要附加的数据行。
  • fields(字符串,必需):字段掩码(例如 "userEnteredValue")。
  • clearBasicFilter:清除工作表上的基本过滤条件。架构:
  • sheetId(整数,必需):要清除基本过滤器的工作表的 ID。
  • deleteDimension:删除工作表中的行或列。架构:
  • range(对象,必需):要删除的维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • deleteEmbeddedObject:删除工作表中的嵌入式对象(例如图表、图片)。架构:
  • objectId(整数,必需):要删除的嵌入式对象的 ID。
  • deleteFilterView:从工作表中删除过滤视图。架构:
  • filterId(整数,必需):要删除的过滤视图的 ID。
  • duplicateFilterView:复制过滤视图。架构:
  • filterId(整数,必需):要复制的过滤视图的 ID。
  • duplicateSheet:复制工作表。架构:
  • sourceSheetId(整数,必需):要复制的工作表 ID。
  • insertSheetIndex(整数,可选):应插入新工作表的索引(从零开始)。
  • newSheetId(整数,可选):新工作表的 ID。
  • newSheetName(字符串,可选):新工作表的名称。
  • findReplace:查找并替换某些文本。架构:
  • find(字符串,必需):要搜索的值。
  • replacement(字符串,必需):替换值。
  • 范围(必须指定一个):
    • range(对象):网格范围。
    • sheetId(整数):工作表 ID。
    • allSheets(布尔值):true 表示搜索所有工作表。
  • matchCase / matchEntireCell / searchByRegex / includeFormulas(布尔值,可选)。
  • insertDimension:在工作表中插入新行或新列。架构:
  • range(对象,必需):要插入的维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • inheritFromBefore(布尔值,可选):true 表示继承前一行/列的格式。
  • insertRange:在工作表中插入新单元格,并移动现有单元格。架构:
  • range(对象,必需):要插入单元格的网格范围。
  • shiftDimension(字符串,必需):"ROWS" 或 "COLUMNS"。
  • moveDimension:将行或列移动到工作表中的其他位置。架构:
  • source(对象,必需):来源维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • destinationIndex(整数,必需):从零开始的目标索引。
  • updateEmbeddedObjectPosition:更新嵌入式对象(例如图表、图片)的位置。架构:
  • objectId(整数,必需):嵌入式对象的 ID。
  • newPosition(对象,必需):新位置 ({"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}, "widthPixels": int, "heightPixels": int}})。
  • fields(字符串,必需):字段掩码(例如 "overlayPosition.anchorCell")。
  • pasteData:将数据(HTML 或分隔数据)粘贴到工作表中。架构:
  • coordinate(对象,必需):左上角坐标 ({"sheetId": int, "rowIndex": int, "columnIndex": int})。
  • data(字符串,必需):带分隔符的文本或 HTML 数据。
  • delimiter(字符串,可选)或 html(布尔值,可选)。
  • type(字符串,可选):"PASTE_NORMAL"、"PASTE_VALUES" 等。
  • textToColumns:将文本列转换为多个文本列。架构:
  • source(对象,必需):单列网格范围。
  • delimiterType(字符串,必需):"COMMA"、"SEMICOLON"、"PERIOD"、"SPACE"、"CUSTOM"、"AUTODETECT"。
  • delimiter(字符串,可选):当 delimiterType 为 "CUSTOM" 时,使用的分隔符字符。
  • updateFilterView:更新过滤视图的属性。架构:
  • filter(对象,必需):过滤视图定义,包括 filterViewId。
  • fields(字符串,必需):字段掩码(例如 "title,criteria" 或 "*")。
  • deleteRange:从工作表中删除一定范围的单元格,并移动剩余的单元格。架构:
  • range(对象,必需):要删除的网格范围。
  • shiftDimension(字符串,必需):"ROWS" 或 "COLUMNS"。
  • appendDimension:将维度附加到工作表的末尾。架构:
  • sheetId(整数,必需):工作表 ID。
  • dimension(字符串,必需):"ROWS" 或 "COLUMNS"。
  • length(整数,必需):要附加的行数或列数。
  • addConditionalFormatRule:添加新的条件格式规则。架构:
  • rule(对象,必需):条件格式规则 ({"ranges": [GridRange], "booleanRule": {"condition": {"type": "NUMBER_GREATER_THAN_EQ"|"TEXT_CONTAINS"|..., "values": [{"userEnteredValue": string}]}, "format": CellFormat}, "gradientRule": {...}})。
  • index(整数,可选):规则应插入的索引(从零开始)。
  • updateConditionalFormatRule:更新现有的条件格式规则。架构:
  • rule(对象,必需):新的条件格式规则。
  • 索引 / 规则 ID(必须提供一个):
    • index(整数):规则的索引(从零开始)。
    • sheetId(整数):如果按工作表索引更新,则为工作表 ID。
  • newIndex(整数,可选):用于移动规则的新索引。
  • deleteConditionalFormatRule:删除现有的条件格式规则。架构:
  • index(整数,必需):要删除的规则的索引(从 0 开始)。
  • sheetId(整数,必需):规则的工作表 ID。
  • sortRange:对某个范围中的数据进行排序。架构:
  • range(对象,必需):要排序的网格范围。
  • sortSpecs(SortSpec 数组,必需):排序规范 ([{"dimensionIndex": int, "sortOrder": "ASCENDING"|"DESCENDING"}])。
  • setDataValidation:为一个或多个单元格设置数据验证。架构:
  • range(对象,必需):网格范围。
  • rule(对象,可选):验证规则 ({"condition": {"type": "ONE_OF_LIST"|"NUMBER_BETWEEN"|..., "values": [{"userEnteredValue": string}]}, "strict": bool, "showCustomUi": bool})。如果省略,则清除验证。
  • setBasicFilter:设置工作表的基本过滤条件。架构:
  • filter(对象,必需):基本过滤条件定义 ({"range": GridRange, "criteria": map, "sortSpecs": list})。
  • addProtectedRange:添加受保护的范围。架构:
  • protectedRange(对象,必需):受保护的范围定义 ({"range": GridRange, "description": string, "warningOnly": bool, "editors": {"users": [string]}})。
  • updateProtectedRange:更新受保护的范围。架构:
  • protectedRange(对象,必需):包含 protectedRangeId 的受保护的范围定义。
  • fields(字符串,必需):字段掩码(例如 "description,warningOnly" 或 "*")。
  • deleteProtectedRange:删除受保护的范围。架构:
  • protectedRangeId(整数,必需):要删除的受保护范围的 ID。
  • autoResizeDimensions:根据单元格内容自动调整一个或多个维度的大小。架构:
  • dimensions(对象,必需):维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • addChart:添加图表。架构:
  • chart(对象,必需):图表定义 ({"spec": {"title": string, "basicChart": {"chartType": "COLUMN"|"BAR"|"LINE"|"PIE"|"COMBO"|"SCATTER", "legendPosition": string, "axis": list, "domains": list, "series": list}}, "position": {"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}}}})。
  • updateChartSpec:更新图表的规范。架构:
  • chartId(整数,必需):图表的 ID。
  • spec(对象,必需):新图表规范。
  • updateBanding:更新分段范围。架构:
  • bandedRange(对象,必需):包含 bandedRangeId 的分段范围定义。
  • fields(字符串,必需):字段掩码。
  • addBanding:添加新的分档范围。架构:
  • bandedRange(对象,必需):分段范围定义 ({"range": GridRange, "rowProperties": {"headerColorStyle": ColorStyle, "firstBandColorStyle": ColorStyle, "secondBandColorStyle": ColorStyle}})。
  • deleteBanding:移除分档范围。架构:
  • bandedRangeId(整数,必需):要删除的频段范围的 ID。
  • createDeveloperMetadata:创建新的开发者元数据。架构:
  • developerMetadata(对象,必需):元数据定义 ({"metadataKey": string, "metadataValue": string, "location": {"locationType": "ROW"|"COLUMN"|"SHEET"|"SPREADSHEET", "sheetId": int}, "visibility": "DOCUMENT"|"PROJECT"})。
  • updateDeveloperMetadata:更新现有的开发者元数据条目。架构:
  • dataFilters(DataFilter 的数组,必需):用于选择元数据的过滤条件。
  • developerMetadata(对象,必需):更新后的元数据值。
  • fields(字符串,必需):字段掩码。
  • deleteDeveloperMetadata:删除开发者元数据。架构:
  • dataFilter(对象,必需):用于描述要删除的元数据的过滤条件。
  • randomizeRange:随机排列指定范围内的行。架构:
  • range(对象,必需):要随机化的网格范围。
  • addDimensionGroup:在指定范围内创建群组。架构:
  • range(对象,必需):要分组的维度范围 ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int})。
  • deleteDimensionGroup:删除指定范围内的群组。架构:
  • range(对象,必需):要删除的组的维度范围。
  • updateDimensionGroup:更新指定群组的状态。架构:
  • dimensionGroup(对象,必需):群组定义 ({"range": DimensionRange, "depth": int, "collapsed": bool})。
  • fields(字符串,必需):字段掩码(例如 "collapsed")。
  • trimWhitespace:去除单元格中的空格(例如空格、制表符或换行符)。架构:
  • range(对象,必需):要剪裁的网格范围。
  • deleteDuplicates:移除单元格范围的指定列中包含重复值的行。架构:
  • range(对象,必需):要从中移除重复项的网格范围。
  • comparisonColumns(DimensionRange 数组,可选):要分析的特定列。
  • updateEmbeddedObjectBorder:更新嵌入式对象的边框。架构:
  • objectId(整数,必需):嵌入式对象的 ID。
  • border(对象,必需):边框定义 ({"colorStyle": ColorStyle, "section": "ALL"})。
  • fields(字符串,必需):字段掩码。
  • addSlicer:添加切片器。架构:
  • slicer(对象,必需):切片器定义 ({"spec": {"dataRange": GridRange, "columnIndex": int, "title": string}, "position": {"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}}}})。
  • updateSlicerSpec:更新切片器的规范。架构:
  • slicerId(整数,必需):切分器的 ID。
  • spec(对象,必需):新的切片器规范。
  • fields(字符串,必需):字段掩码。
  • addDataSource:添加数据源。架构:
  • dataSource(对象,必需):数据源定义 ({"spec": {"bigQuery": {"projectId": string, "query": string}}})。
  • updateDataSource:更新数据源。架构:
  • dataSource(对象,必需):包含 dataSourceId 的数据源定义。
  • fields(字符串,必需):字段掩码。
  • deleteDataSource:删除数据源。架构:
  • dataSourceId(字符串,必需):要删除的数据源的 ID。
  • refreshDataSource:刷新一个或多个数据源及关联的数据库对象。架构:
  • dataSourceId(字符串,可选)或 isAll(布尔值,可选)或 references(对象,可选)。
  • force(布尔值,可选):是否强制刷新。
  • cancelDataSourceRefresh:取消一个或多个数据源及关联的数据库对象的刷新。架构:
  • dataSourceId(字符串,可选)或 isAll(布尔值,可选)或 references(对象,可选)。
  • addTable:添加表格。架构:
  • table(对象,必需):表格定义 ({"range": GridRange, "name": string, "hasHeaderRow": bool, "hasTotalsRow": bool})。
  • updateTable:更新表。架构:
  • table(对象,必需):包含 tableId 的表定义。
  • fields(字符串,必需):字段掩码。
  • deleteTable:删除表的请求。架构:
  • tableId(字符串,必需):要删除的表的 ID。
  • insertComment:在电子表格中插入注释。架构:
  • content(字符串,必需):纯文本评论内容。
  • coordinate(对象,必需):工作表中用于锚定注释的网格坐标:
    • sheetId(整数,必需):工作表 ID。
    • rowIndex(整数,必需):从零开始的行索引。
    • columnIndex(整数,必需):从 0 开始的列索引。
  • assigneeEmailAddress(字符串,可选):评论分配对象的电子邮件地址。
  • addCommentReply:向现有评论串添加回复。还用于解决或重新打开帖子。架构:
  • commentId(字符串,必需):评论串的 ID。
  • post(对象,必需):
    • content(字符串,必需,除非 commentAction 为 RESOLVE 或 REOPEN):回复帖子的纯文本内容。
    • commentAction(字符串,可选):对此回复采取的操作("RESOLVE" 或 "REOPEN")。
    • assigneeEmail(字符串,可选):要将相应线程新分配到的电子邮件地址。
  • updateCommentPost:更新评论串中评论帖子的内容。架构:
  • commentId(字符串,必需):评论串的 ID。
  • postId(字符串,必需):要更新的评论帖子的 ID。
  • content(字符串,必需):评论帖子的更新后内容。
  • deleteComment:删除评论串。架构:
  • commentId(字符串,必需):要删除的评论串的 ID。
  • deleteCommentReply:删除回复帖子。架构:
  • commentId(字符串,必需):评论串的 ID。
  • postId(字符串,必需):要删除的回复帖子的 ID。
update_values

设置电子表格中某个范围内的值。

对应于 REST API 中的 spreadsheets.values.update:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.values/update

架构:- spreadsheet_id(字符串,必需):要更新的电子表格的 ID。- range(字符串,必需):要更新的值的 A1 符号(例如 "Sheet1!A1:B2")。- values(数组的数组,必需):单元格值的二维数组。支持的值类型包括:布尔值、字符串和数字(浮点数/整数)。

update_formulas

在电子表格的某个范围内设置公式。

对应于 REST API 中的 spreadsheets.values.update:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.values/update

架构:- spreadsheet_id(字符串,必需):要更新的电子表格的 ID。- range(字符串,必需):要更新公式的范围的 A1 符号(例如 "Sheet1!C1:C2")。- formulas(数组的数组,必需):公式字符串的二维数组(例如 [["=A1+B1"], ["=A2+B2"]])。

insert_dimension

在工作表中指定索引处插入行或列。

对应于 spreadsheets.batchUpdate REST API 中的 InsertDimensionRequest:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request

架构:- spreadsheet_id(字符串,必需):要更新的电子表格的 ID。- sheet_id(整数,必需):要插入的工作表的 ID。- dimension(字符串,必需):"ROWS" 或 "COLUMNS"。- start_index(整数,必需):插入的起始索引(从 0 开始,含该索引)。- end_index(整数,必需):插入的结束索引(从 0 开始,不含该索引)。- inherit_from_before(布尔值,可选):维度属性应从之前 (true) 还是之后 (false) 的维度进行扩展。

获取 MCP 工具规范

如需获取 MCP 服务器中所有工具的 MCP 工具规范,请使用 tools/list 方法。下面的示例演示了如何使用 curl 列出 MCP 服务器中当前可用的所有工具及其规范。

Curl 请求
curl --location 'https://sheetsmcp.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'