MCP Tools Reference: sheetsmcp.googleapis.com

Herramienta: update_spreadsheet

Aplica una o más actualizaciones a la hoja de cálculo.

Corresponde a spreadsheets.batchUpdate en la API de REST: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate

La lista de actualizaciones posibles es la siguiente:

  • updateSpreadsheetProperties: Actualiza las propiedades de la hoja de cálculo. Esquema:
  • properties (objeto, obligatorio): Son las propiedades de la hoja de cálculo que se actualizarán ({"title": string, "locale": string, "timeZone": string}).
  • fields (cadena, obligatorio): Máscara de campo de las propiedades que se actualizarán (p.ej., "title" o "*").
  • updateSheetProperties: Actualiza las propiedades de una hoja. Esquema:
  • properties (objeto, obligatorio): Propiedades de la hoja ({"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 (cadena, obligatorio): Es la máscara de campo de las propiedades que se actualizarán (p.ej., "title", "gridProperties.frozenRowCount").
  • updateDimensionProperties: Actualiza las propiedades de las dimensiones (p.ej., la altura de la fila o el ancho de la columna). Esquema:
  • range (objeto, obligatorio): Es el rango de la dimensión ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • properties (objeto, obligatorio): Propiedades de la dimensión ({"pixelSize": int, "hiddenByUser": bool}).
  • fields (cadena, obligatorio): Máscara de campo de las propiedades que se actualizarán (p.ej., "pixelSize").
  • updateNamedRange: Actualiza un rango con nombre. Esquema:
  • namedRange (objeto, obligatorio): Definición del rango con nombre ({"namedRangeId": string, "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}}).
  • fields (cadena, obligatorio): Es la máscara de campo de los campos que se actualizarán (p.ej., "name,range" o "*").
  • repeatCell: Repite una sola celda en un rango. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula al que se aplicarán los datos o el formato de la celda ({"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}).
  • cell (objeto, obligatorio): Son los datos de la celda ({"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 (cadena, obligatorio): Es la máscara de campo de los campos de celda que se actualizarán (p.ej., "userEnteredFormat.textFormat.bold" o "userEnteredValue").
  • addNamedRange: Agrega un rango con nombre. Esquema:
  • namedRange (objeto, obligatorio): Es el rango con nombre que se agregará ({"namedRangeId": string (optional), "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}}).
  • deleteNamedRange: Borra un rango con nombre por su ID. Esquema:
  • namedRangeId (cadena, obligatorio): ID del rango con nombre que se borrará.
  • addSheet: Agrega una hoja. Esquema:
  • properties (objeto, opcional): Propiedades de la hoja ({"title": string, "sheetId": int (optional), "index": int (optional), "gridProperties": {"rowCount": int, "columnCount": int}}).
  • deleteSheet: Borra una hoja. Esquema:
  • sheetId (número entero, obligatorio): Es el ID de la hoja que se borrará.
  • autoFill: Completa automáticamente más datos según los datos existentes. Esquema:
  • range (objeto, opcional): Es el rango que se debe examinar y completar ({"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}).
  • sourceAndDestination (objeto, opcional): Fuente explícita y longitud de relleno ({"source": GridRange, "dimension": "ROWS"|"COLUMNS", "fillLength": int}).
  • useAlternateSeries (booleano, opcional): Indica si se deben usar series alternativas.
  • cutPaste: Corta datos de un área y los pega en otra. Esquema:
  • source (objeto, obligatorio): Es el rango de la cuadrícula de origen.
  • destination (objeto, obligatorio): Coordenada de destino superior izquierda ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
  • pasteType (cadena, opcional): "PASTE_NORMAL", "PASTE_VALUES", "PASTE_FORMAT", "PASTE_NO_BORDERS", "PASTE_FORMULA".
  • copyPaste: Copia datos de un área y los pega en otra. Esquema:
  • source (objeto, obligatorio): Es el rango de la cuadrícula de origen.
  • destination (objeto, obligatorio): Es el rango de la cuadrícula de destino.
  • pasteType (cadena, opcional): "PASTE_NORMAL", "PASTE_VALUES", "PASTE_FORMAT", "PASTE_NO_BORDERS", "PASTE_FORMULA".
  • pasteOrientation (cadena, opcional): "NORMAL" o "TRANSPOSE".
  • mergeCells: Combina celdas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula que se combinará.
  • mergeType (cadena, obligatorio): "MERGE_ALL", "MERGE_COLUMNS" o "MERGE_ROWS".
  • unmergeCells: Separa las celdas combinadas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula dentro del cual se separarán todas las celdas.
  • updateBorders: Actualiza los bordes en un rango de celdas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula para el que se actualizarán los bordes.
  • top / bottom / left / right / innerHorizontal / innerVertical (objeto, opcional): Es el estilo de borde ({"style": "SOLID"|"DASHED"|"DOTTED"|"DOUBLE"|"NONE", "width": int, "colorStyle": {"rgbColor": {"red": float, "green": float, "blue": float}}}).
  • updateCells: Actualiza muchas celdas a la vez. Esquema:
  • Área (se requiere exactamente una):
    • start (objeto): Coordenada superior izquierda ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
    • range (objeto): Es el rango de la cuadrícula.
  • rows (array de RowData, obligatorio): Son las filas de celdas ([{"values": [{"userEnteredValue": {"stringValue": str, "numberValue": float, "formulaValue": str}}]}]).
  • fields (cadena, obligatorio): Es la máscara de campo de los campos de celda que se actualizarán (p.ej., "userEnteredValue" o "userEnteredFormat").
  • addFilterView: Agrega una vista de filtro. Esquema:
  • filter (objeto, obligatorio): Es la definición de la vista de filtro ({"title": string, "range": GridRange, "criteria": map, "sortSpecs": list}).
  • appendCells: Agrega celdas después de la última fila con datos en una hoja. Esquema:
  • sheetId (número entero, obligatorio): Es el ID de la hoja a la que se agregarán los datos.
  • rows (array de RowData, obligatorio): Filas de datos que se agregarán.
  • fields (cadena, obligatorio): Máscara de campo (p.ej., "userEnteredValue").
  • clearBasicFilter: Borra el filtro básico de una hoja. Esquema:
  • sheetId (número entero, obligatorio): Es el ID de la hoja en la que se borrará el filtro básico.
  • deleteDimension: Borra filas o columnas en una hoja. Esquema:
  • range (objeto, obligatorio): Es el rango de la dimensión que se borrará ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • deleteEmbeddedObject: Borra un objeto incorporado (p.ej., un gráfico o una imagen) en una hoja. Esquema:
  • objectId (número entero, obligatorio): Es el ID del objeto incorporado que se borrará.
  • deleteFilterView: Borra una vista de filtro de una hoja. Esquema:
  • filterId (número entero, obligatorio): Es el ID de la vista de filtro que se borrará.
  • duplicateFilterView: Duplica una vista de filtro. Esquema:
  • filterId (número entero, obligatorio): Es el ID de la vista de filtro que se duplicará.
  • duplicateSheet: Duplica una hoja. Esquema:
  • sourceSheetId (número entero, obligatorio): Es el ID de la hoja que se duplicará.
  • insertSheetIndex (número entero, opcional): Es el índice basado en cero en el que se debe insertar la hoja nueva.
  • newSheetId (número entero, opcional): Es el ID de la hoja nueva.
  • newSheetName (cadena, opcional): Es el nombre de la hoja nueva.
  • findReplace: Busca y reemplaza las ocurrencias de un texto por otro. Esquema:
  • find (cadena, obligatorio): Es el valor que se buscará.
  • replacement (cadena, obligatorio): Es el valor de reemplazo.
  • Alcance (se requiere exactamente uno):
    • range (objeto): Es el rango de la cuadrícula.
    • sheetId (número entero): ID de la hoja.
    • allSheets (booleano): true para buscar en todas las hojas.
  • matchCase, matchEntireCell, searchByRegex y includeFormulas (booleanos, opcionales).
  • insertDimension: Inserta filas o columnas nuevas en una hoja. Esquema:
  • range (objeto, obligatorio): Es el rango de la dimensión que se insertará ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • inheritFromBefore (booleano, opcional): true para heredar el formato de la fila o columna anterior.
  • insertRange: Inserta celdas nuevas en una hoja y desplaza las celdas existentes. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula en el que se insertarán las celdas.
  • shiftDimension (cadena, obligatorio): "ROWS" o "COLUMNS".
  • moveDimension: Mueve filas o columnas a otra ubicación en una hoja. Esquema:
  • source (objeto, obligatorio): Es el rango de la dimensión de origen ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • destinationIndex (número entero, obligatorio): Índice de destino basado en cero.
  • updateEmbeddedObjectPosition: Actualiza la posición de un objeto incorporado (p.ej., un gráfico o una imagen). Esquema:
  • objectId (número entero, obligatorio): ID del objeto incorporado.
  • newPosition (objeto, obligatorio): Nueva posición ({"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}, "widthPixels": int, "heightPixels": int}}).
  • fields (cadena, obligatorio): Máscara de campo (p.ej., "overlayPosition.anchorCell").
  • pasteData: Pega datos (HTML o delimitados) en una hoja. Esquema:
  • coordinate (objeto, obligatorio): Coordenada superior izquierda ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
  • data (cadena, obligatorio): Datos de texto o HTML delimitados.
  • delimiter (cadena, opcional) o html (booleano, opcional).
  • type (cadena, opcional): "PASTE_NORMAL", "PASTE_VALUES", etcétera
  • textToColumns: Convierte una columna de texto en muchas columnas de texto. Esquema:
  • source (objeto, obligatorio): Es el rango de la cuadrícula de una sola columna.
  • delimiterType (cadena, obligatorio): "COMMA", "SEMICOLON", "PERIOD", "SPACE", "CUSTOM", "AUTODETECT".
  • delimiter (cadena, opcional): Carácter delimitador cuando delimiterType es "CUSTOM".
  • updateFilterView: Actualiza las propiedades de una vista de filtro. Esquema:
  • filter (objeto, obligatorio): Es la definición de la vista de filtro, incluido filterViewId.
  • fields (cadena, obligatorio): Máscara de campo (p.ej., "title,criteria" o "*").
  • deleteRange: Borra un rango de celdas de una hoja y desplaza las celdas restantes. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula que se borrará.
  • shiftDimension (cadena, obligatorio): "ROWS" o "COLUMNS".
  • appendDimension: Agrega dimensiones al final de una hoja. Esquema:
  • sheetId (número entero, obligatorio): Es el ID de la hoja.
  • dimension (cadena, obligatorio): "ROWS" o "COLUMNS".
  • length (número entero, obligatorio): Es la cantidad de filas o columnas que se agregarán.
  • addConditionalFormatRule: Agrega una nueva regla de formato condicional. Esquema:
  • rule (objeto, obligatorio): Es una regla de formato condicional ({"ranges": [GridRange], "booleanRule": {"condition": {"type": "NUMBER_GREATER_THAN_EQ"|"TEXT_CONTAINS"|..., "values": [{"userEnteredValue": string}]}, "format": CellFormat}, "gradientRule": {...}}).
  • index (número entero, opcional): Es el índice basado en cero en el que se debe insertar la regla.
  • updateConditionalFormatRule: Actualiza una regla de formato condicional existente. Esquema:
  • rule (objeto, obligatorio): Es la nueva regla de formato condicional.
  • ID de índice o regla (se requiere uno):
    • index (número entero): Índice basado en cero de la regla.
    • sheetId (número entero): Es el ID de la hoja si se actualiza por el índice de la hoja.
  • newIndex (número entero, opcional): Es el nuevo índice para mover la regla.
  • deleteConditionalFormatRule: Borra una regla de formato condicional existente. Esquema:
  • index (número entero, obligatorio): Es el índice basado en cero de la regla que se borrará.
  • sheetId (número entero, obligatorio): Es el ID de la hoja de la regla.
  • sortRange: Ordena los datos en un rango. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula que se debe ordenar.
  • sortSpecs (array de SortSpec, obligatorio): Especificaciones de ordenamiento ([{"dimensionIndex": int, "sortOrder": "ASCENDING"|"DESCENDING"}]).
  • setDataValidation: Establece la validación de datos para una o más celdas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula.
  • rule (objeto, opcional): Es una regla de validación ({"condition": {"type": "ONE_OF_LIST"|"NUMBER_BETWEEN"|..., "values": [{"userEnteredValue": string}]}, "strict": bool, "showCustomUi": bool}). Si se omite, se borra la validación.
  • setBasicFilter: Establece el filtro básico en una hoja. Esquema:
  • filter (objeto, obligatorio): Es la definición básica del filtro ({"range": GridRange, "criteria": map, "sortSpecs": list}).
  • addProtectedRange: Agrega un rango protegido. Esquema:
  • protectedRange (objeto, obligatorio): Es la definición del rango protegido ({"range": GridRange, "description": string, "warningOnly": bool, "editors": {"users": [string]}}).
  • updateProtectedRange: Actualiza un rango protegido. Esquema:
  • protectedRange (objeto, obligatorio): Es la definición del rango protegido con protectedRangeId.
  • fields (cadena, obligatorio): Máscara de campo (p.ej., "description,warningOnly" o "*").
  • deleteProtectedRange: Borra un rango protegido. Esquema:
  • protectedRangeId (número entero, obligatorio): Es el ID del rango protegido que se borrará.
  • autoResizeDimensions: Cambia automáticamente el tamaño de una o más dimensiones según el contenido de la celda. Esquema:
  • dimensions (objeto, obligatorio): Es el rango de la dimensión ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • addChart: Agrega un gráfico. Esquema:
  • chart (objeto, obligatorio): Es la definición del gráfico ({"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: Actualiza las especificaciones de un gráfico. Esquema:
  • chartId (número entero, obligatorio): ID del gráfico.
  • spec (objeto, obligatorio): Es la nueva especificación del gráfico.
  • updateBanding: Actualiza un rango agrupado. Esquema:
  • bandedRange (objeto, obligatorio): Es la definición del rango agrupado con bandedRangeId.
  • fields (cadena, obligatorio): Máscara de campo.
  • addBanding: Agrega un nuevo rango agrupado. Esquema:
  • bandedRange (objeto, obligatorio): Es la definición del rango agrupado ({"range": GridRange, "rowProperties": {"headerColorStyle": ColorStyle, "firstBandColorStyle": ColorStyle, "secondBandColorStyle": ColorStyle}}).
  • deleteBanding: Quita un rango de bandas. Esquema:
  • bandedRangeId (número entero, obligatorio): Es el ID del rango agrupado que se borrará.
  • createDeveloperMetadata: Crea metadatos para desarrolladores nuevos. Esquema:
  • developerMetadata (objeto, obligatorio): Es la definición de metadatos ({"metadataKey": string, "metadataValue": string, "location": {"locationType": "ROW"|"COLUMN"|"SHEET"|"SPREADSHEET", "sheetId": int}, "visibility": "DOCUMENT"|"PROJECT"}).
  • updateDeveloperMetadata: Actualiza una entrada de metadatos para desarrolladores existente. Esquema:
  • dataFilters (array of DataFilter, obligatorio): Son los filtros para seleccionar metadatos.
  • developerMetadata (objeto, obligatorio): Son los valores de metadatos actualizados.
  • fields (cadena, obligatorio): Máscara de campo.
  • deleteDeveloperMetadata: Borra metadatos de desarrollador. Esquema:
  • dataFilter (objeto, obligatorio): Es el filtro que describe los criterios para los metadatos que se borrarán.
  • randomizeRange: Aleatoriza el orden de las filas en un rango. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula que se debe aleatorizar.
  • addDimensionGroup: Crea un grupo en el rango especificado. Esquema:
  • range (objeto, obligatorio): Es el rango de la dimensión para agrupar ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • deleteDimensionGroup: Borra un grupo en el rango especificado. Esquema:
  • range (objeto, obligatorio): Es el rango de la dimensión del grupo que se borrará.
  • updateDimensionGroup: Actualiza el estado del grupo especificado. Esquema:
  • dimensionGroup (objeto, obligatorio): Es la definición del grupo ({"range": DimensionRange, "depth": int, "collapsed": bool}).
  • fields (cadena, obligatorio): Máscara de campo (p.ej., "collapsed").
  • trimWhitespace: Quita los espacios en blanco (como espacios, tabulaciones o líneas nuevas) de las celdas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula cuyas celdas se recortarán.
  • deleteDuplicates: Quita las filas que contienen valores duplicados en las columnas especificadas de un rango de celdas. Esquema:
  • range (objeto, obligatorio): Es el rango de la cuadrícula del que se quitarán los duplicados.
  • comparisonColumns (array de DimensionRange, opcional): Son las columnas específicas que se analizarán.
  • updateEmbeddedObjectBorder: Actualiza el borde de un objeto incorporado. Esquema:
  • objectId (número entero, obligatorio): ID del objeto incorporado.
  • border (objeto, obligatorio): Es la definición del borde ({"colorStyle": ColorStyle, "section": "ALL"}).
  • fields (cadena, obligatorio): Máscara de campo.
  • addSlicer: Agrega un segmentador. Esquema:
  • slicer (objeto, obligatorio): Es la definición del segmentador ({"spec": {"dataRange": GridRange, "columnIndex": int, "title": string}, "position": {"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}}}}).
  • updateSlicerSpec: Actualiza las especificaciones de un segmentador. Esquema:
  • slicerId (número entero, obligatorio): ID del segmentador.
  • spec (objeto, obligatorio): Es la nueva especificación del segmentador.
  • fields (cadena, obligatorio): Máscara de campo.
  • addDataSource: Agrega una fuente de datos. Esquema:
  • dataSource (objeto, obligatorio): Es la definición de la fuente de datos ({"spec": {"bigQuery": {"projectId": string, "query": string}}}).
  • updateDataSource: Actualiza una fuente de datos. Esquema:
  • dataSource (objeto, obligatorio): Es la definición de la fuente de datos con dataSourceId.
  • fields (cadena, obligatorio): Máscara de campo.
  • deleteDataSource: Borra una fuente de datos. Esquema:
  • dataSourceId (cadena, obligatorio): ID de la fuente de datos que se borrará.
  • refreshDataSource: Actualiza una o varias fuentes de datos y los objetos de base de datos asociados. Esquema:
  • dataSourceId (cadena, opcional), isAll (booleano, opcional) o references (objeto, opcional).
  • force (booleano, opcional): Indica si se debe forzar la actualización.
  • cancelDataSourceRefresh: Cancela las actualizaciones de una o varias fuentes de datos y los objetos de base de datos asociados. Esquema:
  • dataSourceId (cadena, opcional), isAll (booleano, opcional) o references (objeto, opcional).
  • addTable: Agrega una tabla. Esquema:
  • table (objeto, obligatorio): Es la definición de la tabla ({"range": GridRange, "name": string, "hasHeaderRow": bool, "hasTotalsRow": bool}).
  • updateTable: Actualiza una tabla. Esquema:
  • table (objeto, obligatorio): Es la definición de la tabla con tableId.
  • fields (cadena, obligatorio): Máscara de campo.
  • deleteTable: Es una solicitud para borrar una tabla. Esquema:
  • tableId (cadena, obligatorio): ID de la tabla que se borrará.
  • insertComment: Inserta un comentario en la hoja de cálculo. Esquema:
  • content (cadena, obligatorio): Contenido del comentario de texto sin formato.
  • coordinate (objeto, obligatorio): Coordenada de cuadrícula en la hoja para fijar el comentario:
    • sheetId (número entero, obligatorio): Es el ID de la hoja.
    • rowIndex (número entero, obligatorio): Índice de fila basado en cero.
    • columnIndex (número entero, obligatorio): Índice de columna basado en cero.
  • assigneeEmailAddress (cadena, opcional): Es la dirección de correo electrónico del asignatario del comentario.
  • addCommentReply: Agrega una respuesta a un hilo de comentarios existente. También se usa para resolver o volver a abrir un hilo. Esquema:
  • commentId (cadena, obligatorio): ID del debate.
  • post (objeto, obligatorio):
    • content (cadena, obligatorio, a menos que commentAction sea RESOLVE o REOPEN): Es el contenido de texto sin formato de la publicación de respuesta.
    • commentAction (cadena, opcional): Acción realizada con esta respuesta ("RESOLVE" o "REOPEN").
    • assigneeEmail (cadena, opcional): Es la dirección de correo electrónico a la que se asignará el subproceso.
  • updateCommentPost: Actualiza el contenido de una publicación de comentario en un hilo de comentarios. Esquema:
  • commentId (cadena, obligatorio): ID del debate.
  • postId (cadena, obligatorio): Es el ID de la publicación de comentario que se actualizará.
  • content (cadena, obligatorio): Es el contenido actualizado de la publicación de comentario.
  • deleteComment: Borra un hilo de comentarios. Esquema:
  • commentId (cadena, obligatorio): Es el ID del subproceso de comentarios que se borrará.
  • deleteCommentReply: Borra una publicación de respuesta. Esquema:
  • commentId (cadena, obligatorio): ID del debate.
  • postId (cadena, obligatorio): Es el ID de la publicación de respuesta que se borrará.

En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta de MCP update_spreadsheet.

Solicitud de 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
}'

Esquema de entrada

UpdateContentRequest

Representación JSON
{
  "spreadsheetId": string,
  "requests": [
    {
      object
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
Campos
spreadsheetId

string

Obligatorio. ID de la hoja de cálculo que se actualizará.

requests[]

object (Struct format)

Obligatorio. Es una lista de actualizaciones que se aplicarán a la hoja de cálculo. Cada solicitud debe ser un objeto Request válido de spreadsheets.batchUpdate, con el esquema que se documenta en https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request. Las solicitudes se aplicarán en el orden en que se especifiquen. Si alguna solicitud no es válida, no se aplicará ninguna.

writeControl

object (WriteControl)

Opcional. Proporciona control sobre cómo se ejecutan las solicitudes de escritura.

Struct

Representación JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campos
fields

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

Es un mapa no ordenado de valores escritos de forma dinámica.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Representación JSON
{
  "key": string,
  "value": value
}
Campos
key

string

value

value (Value format)

Valor

Representación JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Campos
Campo de unión kind. Es el tipo de valor. kind puede ser solo uno de los parámetros siguientes:
nullValue

null

Representa un null de JSON.

numberValue

number

Representa un número JSON. No debe ser NaN, Infinity ni -Infinity, ya que no se admiten en JSON. Tampoco puede representar valores Int64 grandes, ya que el formato JSON generalmente no los admite en su tipo de número.

stringValue

string

Representa una cadena JSON.

boolValue

boolean

Representa un valor booleano de JSON (literal true o false en JSON).

structValue

object (Struct format)

Representa un objeto JSON.

listValue

array (ListValue format)

Representa un array JSON.

ListValue

Representación JSON
{
  "values": [
    value
  ]
}
Campos
values[]

value (Value format)

Es un campo repetido de valores escritos de forma dinámica.

WriteControl

Representación JSON
{

  "requiredRevisionId": string
}
Campos
Campo de unión control. Determina la revisión de la hoja de cálculo en la que se escribirá y cómo debe comportarse la solicitud si esa revisión no es la actual. control puede ser solo uno de los parámetros siguientes:
requiredRevisionId

string

Es el ID de revisión de la hoja de cálculo a la que se aplicará la solicitud de escritura. Si no es la revisión más reciente del documento, no se procesará la solicitud y se devolverá un error 400 de solicitud incorrecta.

Cuando se devuelve un ID de revisión obligatorio en una respuesta, se indica el ID de revisión de la hoja de cálculo después de que se aplicó la solicitud.

NullValue

Representa un null de JSON.

NullValue es un centinela que usa un enum con solo un valor para representar el valor nulo de la unión de tipos Value.

Un campo de tipo NullValue con cualquier valor que no sea 0 se considera no válido. La mayoría de los serializadores de ProtoJSON emitirán un Value con un null_value establecido como un null de JSON, independientemente del valor entero, y, por lo tanto, se realizará un viaje de ida y vuelta a un valor de 0.

Enums
NULL_VALUE Valor nulo.

Esquema de salida

Representa un objeto JSON.

Es un mapa de pares clave-valor no ordenado que tiene como objetivo capturar a la perfección la semántica de un objeto JSON. Esto permite analizar cualquier carga útil JSON arbitraria como un campo de mensaje en formato ProtoJSON.

Esto sigue los lineamientos de la RFC 8259 para el formato JSON interoperable: En particular, este tipo no puede representar valores Int64 grandes ni números NaN/Infinity, ya que el formato JSON generalmente no admite esos valores en su tipo de número.

Si no tienes la intención de analizar JSON arbitrario en tu mensaje, se debe preferir un mensaje personalizado con tipo en lugar de usar este tipo.

Struct

Representación JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campos
fields

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

Es un mapa no ordenado de valores escritos de forma dinámica.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Representación JSON
{
  "key": string,
  "value": value
}
Campos
key

string

value

value (Value format)

Valor

Representación JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Campos
Campo de unión kind. Es el tipo de valor. kind puede ser solo uno de los parámetros siguientes:
nullValue

null

Representa un null de JSON.

numberValue

number

Representa un número JSON. No debe ser NaN, Infinity ni -Infinity, ya que no se admiten en JSON. Tampoco puede representar valores Int64 grandes, ya que el formato JSON generalmente no los admite en su tipo de número.

stringValue

string

Representa una cadena JSON.

boolValue

boolean

Representa un valor booleano de JSON (literal true o false en JSON).

structValue

object (Struct format)

Representa un objeto JSON.

listValue

array (ListValue format)

Representa un array JSON.

ListValue

Representación JSON
{
  "values": [
    value
  ]
}
Campos
values[]

value (Value format)

Es un campo repetido de valores escritos de forma dinámica.

NullValue

Representa un null de JSON.

NullValue es un centinela que usa un enum con solo un valor para representar el valor nulo de la unión de tipos Value.

Un campo de tipo NullValue con cualquier valor que no sea 0 se considera no válido. La mayoría de los serializadores de ProtoJSON emitirán un Value con un null_value establecido como un null de JSON, independientemente del valor entero, y, por lo tanto, se realizará un viaje de ida y vuelta a un valor de 0.

Enums
NULL_VALUE Valor nulo.

Anotaciones de herramientas

Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se le puede enviar un mensaje de confirmación a un usuario.

Junto con la cadena de título, se definen las siguientes sugerencias booleanas:

  • readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.
  • destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.
  • idempotentHint: Si es verdadero, llamar a la herramienta varias veces con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.
  • openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.

Pista destructiva: ❌ | Pista idempotente: ❌ | Pista de solo lectura: ❌ | Pista de mundo abierto: ✅

Alcances de la autorización

Se necesita uno de los siguientes alcances de OAuth:

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