MCP Tools Reference: sheetsmcp.googleapis.com

工具: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。

以下代码示例展示了如何使用 curl 调用 update_spreadsheet MCP 工具。

Curl 请求
curl --location 'https://sheetsmcp.googleapis.com/mcp' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_spreadsheet",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

UpdateContentRequest

JSON 表示法
{
  "spreadsheetId": string,
  "requests": [
    {
      object
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
字段
spreadsheetId

string

必需。要更新的电子表格的 ID。

requests[]

object (Struct format)

必需。要应用于电子表格的更新列表。每个请求都应是一个有效的 spreadsheets.batchUpdate 请求对象,使用文档中记录的架构:https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request。系统将按指定顺序应用请求。如果任何请求无效,则不会应用任何请求。

writeControl

object (WriteControl)

可选。提供对写入请求执行方式的控制。

结构体

JSON 表示法
{
  "fields": {
    string: value,
    ...
  }
}
字段
fields

map (key: string, value: value (Value format))

无序的动态类型值映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

FieldsEntry

JSON 表示法
{
  "key": string,
  "value": value
}
字段
key

string

value

value (Value format)

值

JSON 表示法
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 JSON null。

numberValue

number

表示 JSON 数字。不得为 NaN、Infinity 或 -Infinity,因为 JSON 不支持这些值。此外,由于 JSON 格式通常不支持在其数字类型中使用较大的 Int64 值,因此该格式也无法表示这些值。

stringValue

string

表示 JSON 字符串。

boolValue

boolean

表示 JSON 布尔值(JSON 中的 true 或 false 字面量)。

structValue

object (Struct format)

表示 JSON 对象。

listValue

array (ListValue format)

表示 JSON 数组。

ListValue

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

WriteControl

JSON 表示法
{

  "requiredRevisionId": string
}
字段
联合字段 control。确定要写入的电子表格修订版本,以及如果该修订版本不是电子表格的当前修订版本,请求应如何运行。control 只能是下列其中一项:
requiredRevisionId

string

写入请求将应用于的电子表格的修订版本 ID。如果这不是文档的最新修订版本,系统将不会处理相应请求,并会返回 400 错误请求错误。

当响应中返回必需的修订版本 ID 时,表示应用请求后的电子表格的修订版本 ID。

NullValue

表示 JSON null。

NullValue 是一个标记,使用只有一个值的枚举来表示 Value 类型联合的 null 值。

如果类型为 NullValue 的字段的值不是 0,则视为无效。大多数 ProtoJSON 序列化程序都会发出一个 Value,并将 null_value 设置为 JSON null,无论整数值是多少,因此会往返于 0 值。

枚举
NULL_VALUE Null 值。

输出架构

表示 JSON 对象。

一种无序的键值对映射,旨在完美捕获 JSON 对象的语义。这样一来,便可将任何任意 JSON 载荷解析为 ProtoJSON 格式的消息字段。

这遵循了 RFC 8259 中关于可互操作 JSON 的准则:值得注意的是,此类型无法表示较大的 Int64 值或 NaN/Infinity 数字,因为 JSON 格式通常不支持其数字类型中的这些值。

如果您不打算将任意 JSON 解析到消息中,则应首选自定义类型的消息,而不是使用此类型。

结构体

JSON 表示法
{
  "fields": {
    string: value,
    ...
  }
}
字段
fields

map (key: string, value: value (Value format))

无序的动态类型值映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

FieldsEntry

JSON 表示法
{
  "key": string,
  "value": value
}
字段
key

string

value

value (Value format)

值

JSON 表示法
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 JSON null。

numberValue

number

表示 JSON 数字。不得为 NaN、Infinity 或 -Infinity,因为 JSON 不支持这些值。此外,由于 JSON 格式通常不支持在其数字类型中使用较大的 Int64 值,因此该格式也无法表示这些值。

stringValue

string

表示 JSON 字符串。

boolValue

boolean

表示 JSON 布尔值(JSON 中的 true 或 false 字面量)。

structValue

object (Struct format)

表示 JSON 对象。

listValue

array (ListValue format)

表示 JSON 数组。

ListValue

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

NullValue

表示 JSON null。

NullValue 是一个标记,使用只有一个值的枚举来表示 Value 类型联合的 null 值。

如果类型为 NullValue 的字段的值不是 0,则视为无效。大多数 ProtoJSON 序列化程序都会发出一个 Value,并将 null_value 设置为 JSON null,无论整数值是多少,因此会往返于 0 值。

枚举
NULL_VALUE Null 值。

工具注释

工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,还定义了以下布尔值提示:

  • readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。
  • openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界,而内存工具不是开放世界。

破坏性提示:❌ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:✅

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/spreadsheets