Инструмент: update_spreadsheet
Применяет к таблице одно или несколько обновлений.
Соответствует методу spreadsheets.batchUpdate в REST API: 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: удаляет именованный диапазон по его идентификатору. СхемаnamedRangeId(строка, обязательный параметр): идентификатор именованного диапазона, который нужно удалить.addSheet– добавить лист. Схемаproperties(объект, необязательно) – свойства листа ({"title": string, "sheetId": int (optional), "index": int (optional), "gridProperties": {"rowCount": int, "columnCount": int}}).deleteSheet– удаляет лист. СхемаsheetId(целое число, обязательно) – идентификатор листа, который нужно удалить.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(целое число, обязательно) – идентификатор листа, к которому нужно добавить данные.rows(массив RowData, обязательно) – строки данных, которые нужно добавить.fields(строка, обязательное значение) – маска поля (например,"userEnteredValue").clearBasicFilter– удаляет базовый фильтр на листе. СхемаsheetId(целое число, обязательно) – идентификатор листа, на котором нужно удалить основной фильтр.deleteDimension– удаляет строки или столбцы на листе. Схемаrange(объект, обязательный): диапазон параметров, который нужно удалить ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).deleteEmbeddedObject– удаляет встроенный объект (например, диаграмму или изображение) на листе. СхемаobjectId(целое число, обязательно): идентификатор встроенного объекта, который нужно удалить.deleteFilterView– удаляет режим фильтрации с листа. СхемаfilterId(целое число, обязательно): идентификатор представления фильтра, которое нужно удалить.duplicateFilterView– дублирует представление с фильтром. СхемаfilterId(целое число, обязательно): идентификатор режима фильтрации, который нужно скопировать.duplicateSheet– дублирует лист. СхемаsourceSheetId(целое число, обязательный параметр) – идентификатор листа, который нужно скопировать.insertSheetIndex(целое число, необязательно) – индекс, начиная с которого нужно вставить новый лист.newSheetId(целое число, необязательно) – идентификатор нового листа.newSheetName(строка, необязательно): название нового листа.findReplace: находит и заменяет фрагменты текста. Схемаfind(строка, обязательный): значение, которое нужно найти.replacement(строка, обязательный параметр): значение для замены.- Область действия (требуется указать только одну):
range(объект): диапазон сетки.sheetId(целое число) – идентификатор листа.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(целое число, обязательно): идентификатор встроенного объекта.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(целое число, обязательный параметр) – идентификатор листа.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(объект, обязательный). Новое правило условного форматирования.- Индекс или идентификатор правила (одно из двух):
index(целое число) – индекс правила, отсчитываемый от нуля.sheetId(целое число) – идентификатор листа, если обновление выполняется по индексу листа.
newIndex(целое число, необязательно) – новый индекс для перемещения правила.deleteConditionalFormatRule– удаляет существующее правило условного форматирования. Схемаindex(целое число, обязательно): индекс правила, которое нужно удалить. Нумерация начинается с нуля.sheetId(целое число, обязательно): идентификатор листа правила.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(целое число, обязательно) – идентификатор защищенного диапазона, который нужно удалить.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(целое число, обязательно): идентификатор диаграммы.spec(объект, обязательное поле) – новая спецификация диаграммы.updateBanding– обновляет диапазон с чередующимися цветами. СхемаbandedRange(объект, обязательно): определение диапазона сbandedRangeId.fields(строка, обязательный параметр) – маска поля.addBanding– добавляет новый диапазон. СхемаbandedRange(объект, обязательный): определение диапазона ({"range": GridRange, "rowProperties": {"headerColorStyle": ColorStyle, "firstBandColorStyle": ColorStyle, "secondBandColorStyle": ColorStyle}}).deleteBanding– удаляет диапазон с чередующимися цветами. СхемаbandedRangeId(целое число, обязательный параметр) – идентификатор диапазона, который нужно удалить.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(целое число, обязательно): идентификатор встроенного объекта.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(целое число, обязательное): идентификатор слайсера.spec(объект, обязательно): новая спецификация сегментатора.fields(строка, обязательный параметр) – маска поля.addDataSource– добавить источник данных. СхемаdataSource(объект, обязательно): определение источника данных ({"spec": {"bigQuery": {"projectId": string, "query": string}}}).updateDataSource: обновляет источник данных. СхемаdataSource(объект, обязательно): определение источника данных сdataSourceId.fields(строка, обязательный параметр) – маска поля.deleteDataSource– удаляет источник данных. СхемаdataSourceId(строка, обязательный параметр) – идентификатор удаляемого источника данных.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(строка, обязательный параметр) – идентификатор таблицы, которую нужно удалить.insertComment– вставляет комментарий в таблицу. Схемаcontent(строка, обязательное поле) – текст комментария.coordinate(объект, обязательно): координаты ячейки в таблице, к которой нужно прикрепить комментарий:sheetId(целое число, обязательный параметр) – идентификатор листа.rowIndex(целое число, обязательный параметр): индекс строки, отсчитываемый от нуля.columnIndex(целое число, обязательно): индекс столбца, начиная с нуля.
assigneeEmailAddress(string, необязательно): адрес электронной почты назначенного исполнителя комментария.addCommentReply: добавляет ответ в существующую цепочку комментариев. Также используется для закрытия или повторного открытия цепочки. СхемаcommentId(строка, обязательное поле): идентификатор цепочки комментариев.post(объект, обязательно):content(строка, обязательный параметр, если commentAction не имеет значения RESOLVE или REOPEN). Текст ответа.commentAction(string, необязательно): действие, выполненное с этим ответом ("RESOLVE"или"REOPEN").assigneeEmail(строка, необязательно): адрес электронной почты, на который нужно переназначить цепочку.
updateCommentPost– обновляет контент записи в цепочке комментариев. СхемаcommentId(строка, обязательное поле): идентификатор цепочки комментариев.postId(строка, обязательный параметр): идентификатор записи с комментарием, которую нужно изменить.content(строка, обязательный параметр). Обновленный контент записи с комментарием.deleteComment: удаляет цепочку комментариев. СхемаcommentId(строка, обязательный параметр): идентификатор цепочки комментариев, которую нужно удалить.deleteCommentReply– удаляет запись с ответом. СхемаcommentId(строка, обязательное поле): идентификатор цепочки комментариев.postId(строка, обязательно): идентификатор записи, на которую нужно удалить ответ.
В приведенном ниже фрагменте кода показано, как использовать curl для вызова инструмента update_spreadsheet MCP.
| Запрос curl |
|---|
curl --location 'https://sheetsmcp.googleapis.com/mcp/v1' \ --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 ( |
| Поля | |
|---|---|
spreadsheetId |
Обязательно. Идентификатор таблицы, которую нужно обновить. |
requests[] |
Обязательно. Список изменений, которые нужно применить к таблице. Каждый запрос должен быть действительным объектом Request из spreadsheets.batchUpdate, соответствующим схеме, описанной на странице https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request. Запросы будут применяться в том порядке, в котором они указаны. Если хотя бы один запрос недействителен, ни один из них не будет применен. |
writeControl |
Необязательное поле. Позволяет управлять выполнением запросов на запись. |
Структура
| JSON-представление |
|---|
{ "fields": { string: value, ... } } |
| Поля | |
|---|---|
fields |
Неупорядоченная карта значений с динамической типизацией. Объект содержит список из нескольких пар ( |
FieldsEntry
| JSON-представление |
|---|
{ "key": string, "value": value } |
| Поля | |
|---|---|
key |
|
value |
|
Значение
| JSON-представление |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| Поля | |
|---|---|
Объединенное поле kind. Тип значения. kind может иметь одно из следующих значений: |
|
nullValue |
Представляет объект JSON |
numberValue |
Представляет число JSON. Не должно быть |
stringValue |
Представляет строку JSON. |
boolValue |
Представляет логическое значение JSON (литерал |
structValue |
Представляет объект JSON. |
listValue |
Представляет собой массив JSON. |
ListValue
| JSON-представление |
|---|
{ "values": [ value ] } |
| Поля | |
|---|---|
values[] |
Повторяющееся поле со значениями динамического типа. |
WriteControl
| JSON-представление |
|---|
{ "requiredRevisionId": string } |
| Поля | |
|---|---|
Объединенное поле control. Определяет версию таблицы, в которую нужно записать данные, и то, как должен выполняться запрос, если эта версия не является текущей версией таблицы. control может иметь одно из следующих значений: |
|
requiredRevisionId |
Идентификатор версии таблицы, к которой будет применен запрос на запись. Если это не последняя версия документа, запрос не будет обработан и вернет ошибку 400 (недопустимый запрос). Если в ответе возвращается обязательный идентификатор версии, это означает, что идентификатор версии таблицы после применения запроса. |
NullValue
Представляет объект JSON null.
NullValue – это страж, использующий перечисление с одним значением для представления нулевого значения для объединения типов Value.
Поле типа NullValue с любым значением, кроме 0, считается недопустимым. Большинство сериализаторов ProtoJSON будут создавать Value с null_value, заданным как JSON null, независимо от целочисленного значения, и поэтому будут выполнять преобразование в значение 0.
| Перечисления | |
|---|---|
NULL_VALUE |
Нулевое значение. |
Схема вывода
Представляет объект JSON.
Неупорядоченная карта "ключ-значение", которая точно передает семантику объекта JSON. Это позволяет анализировать любую полезную нагрузку JSON как поле сообщения в формате ProtoJSON.
Это соответствует рекомендациям RFC 8259 для совместимого JSON: в частности, этот тип не может представлять большие значения Int64 или числа NaN/Infinity, поскольку формат JSON обычно не поддерживает эти значения в своем числовом типе.
Если вы не планируете анализировать произвольный код JSON в своем сообщении, вместо этого типа следует использовать специальное типизированное сообщение.
Структура
| JSON-представление |
|---|
{ "fields": { string: value, ... } } |
| Поля | |
|---|---|
fields |
Неупорядоченная карта значений с динамической типизацией. Объект содержит список из нескольких пар ( |
FieldsEntry
| JSON-представление |
|---|
{ "key": string, "value": value } |
| Поля | |
|---|---|
key |
|
value |
|
Значение
| JSON-представление |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| Поля | |
|---|---|
Объединенное поле kind. Тип значения. kind может иметь одно из следующих значений: |
|
nullValue |
Представляет объект JSON |
numberValue |
Представляет число JSON. Не должно быть |
stringValue |
Представляет строку JSON. |
boolValue |
Представляет логическое значение JSON (литерал |
structValue |
Представляет объект JSON. |
listValue |
Представляет собой массив JSON. |
ListValue
| JSON-представление |
|---|
{ "values": [ value ] } |
| Поля | |
|---|---|
values[] |
Повторяющееся поле со значениями динамического типа. |
NullValue
Представляет объект JSON null.
NullValue – это страж, использующий перечисление с одним значением для представления нулевого значения для объединения типов Value.
Поле типа NullValue с любым значением, кроме 0, считается недопустимым. Большинство сериализаторов ProtoJSON будут создавать Value с null_value, заданным как JSON null, независимо от целочисленного значения, и поэтому будут выполнять преобразование в значение 0.
| Перечисления | |
|---|---|
NULL_VALUE |
Нулевое значение. |
Аннотации инструментов
Аннотации инструментов отправляются клиентам MCP, чтобы описать основной риск, связанный с определенным инструментом. Большинство клиентов считают эти подсказки ненадежными, но их можно использовать, чтобы определить, когда пользователю может быть отправлен запрос на подтверждение.
Вместе со строкой заголовка определены следующие логические подсказки:
readOnlyHint: если значение равно true, инструмент не изменяет среду. Значение по умолчанию – false.destructiveHint: если задано значение True, инструмент может выполнять деструктивные действия. Если задано значение false, инструмент может выполнять только действия по добавлению. Значение по умолчанию: true.idempotentHint: если задано значение True, повторный вызов инструмента с теми же аргументами не окажет дополнительного влияния на его среду. Значение по умолчанию – false.openWorldHint– если значение равно true, инструмент может взаимодействовать с внешними объектами. Если значение равно false, инструмент может взаимодействовать только с внутренними объектами. Например, инструмент веб-поиска будет открытым миром, а инструмент памяти – нет.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ✅
Области авторизации
Требует одной из следующих областей применения OAuth:
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.filehttps://www.googleapis.com/auth/spreadsheets