MCP Tools Reference: sheetsmcp.googleapis.com

Narzędzie: update_spreadsheet

Stosuje co najmniej 1 aktualizację do arkusza kalkulacyjnego.

Odpowiada metodzie spreadsheets.batchUpdate w interfejsie REST API: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate.

Lista możliwych aktualizacji:

  • updateSpreadsheetProperties: aktualizuje właściwości arkusza kalkulacyjnego. Schemat:
  • properties (obiekt, wymagany): właściwości arkusza kalkulacyjnego do zaktualizowania ({"title": string, "locale": string, "timeZone": string}).
  • fields (ciąg znaków, wymagany): maska pola właściwości do zaktualizowania (np. "title" lub "*").
  • updateSheetProperties: aktualizuje właściwości arkusza. Schemat:
  • properties (obiekt, wymagany): właściwości arkusza ({"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 (ciąg znaków, wymagany): maska pola właściwości do zaktualizowania (np. "title", "gridProperties.frozenRowCount").
  • updateDimensionProperties: aktualizuje właściwości wymiarów (np. wysokość wiersza lub szerokość kolumny). Schemat:
  • range (obiekt, wymagany): zakres wymiaru ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • properties (obiekt, wymagany): właściwości wymiaru ({"pixelSize": int, "hiddenByUser": bool}).
  • fields (ciąg znaków, wymagany): maska pola właściwości do zaktualizowania (np. "pixelSize").
  • updateNamedRange: aktualizuje zakres nazwany. Schemat:
  • namedRange (obiekt, wymagany): definicja zakresu nazwanego ({"namedRangeId": string, "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}}).
  • fields (ciąg tekstowy, wymagany): maska pól do zaktualizowania (np. "name,range" lub "*").
  • repeatCell: powtarza pojedynczą komórkę w zakresie. Schemat:
  • range (obiekt, wymagany): zakres siatki, do którego mają zostać zastosowane dane lub formatowanie komórek ({"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}).
  • cell (obiekt, wymagany): dane komórki ({"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 (ciąg tekstowy, wymagany): maska pola pól komórki do zaktualizowania (np. "userEnteredFormat.textFormat.bold" lub "userEnteredValue").
  • addNamedRange: dodaje zakres nazwany. Schemat:
  • namedRange (obiekt, wymagany): zakres nazwany do dodania ({"namedRangeId": string (optional), "name": string, "range": {"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}}).
  • deleteNamedRange: usuwa zakres nazwany według jego identyfikatora. Schemat:
  • namedRangeId (ciąg tekstowy, wymagany): identyfikator zakresu nazwanego, który chcesz usunąć.
  • addSheet: dodaje arkusz. Schemat:
  • properties (obiekt, opcjonalny): właściwości arkusza ({"title": string, "sheetId": int (optional), "index": int (optional), "gridProperties": {"rowCount": int, "columnCount": int}}).
  • deleteSheet: usuwa arkusz. Schemat:
  • sheetId (liczba całkowita, wymagana): identyfikator arkusza, który chcesz usunąć.
  • autoFill: automatycznie wypełnia więcej danych na podstawie istniejących danych. Schemat:
  • range (obiekt, opcjonalny): zakres do sprawdzenia i wypełnienia ({"sheetId": int, "startRowIndex": int, "endRowIndex": int, "startColumnIndex": int, "endColumnIndex": int}).
  • sourceAndDestination (obiekt, opcjonalny): jawne źródło i długość wypełnienia ({"source": GridRange, "dimension": "ROWS"|"COLUMNS", "fillLength": int}).
  • useAlternateSeries (wartość logiczna, opcjonalnie): określa, czy używać serii alternatywnej.
  • cutPaste: wycina dane z jednego obszaru i wkleja je w innym. Schemat:
  • source (obiekt, wymagany): zakres siatki źródłowej.
  • destination (obiekt, wymagany): współrzędna docelowa lewego górnego rogu ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
  • pasteType (ciąg znaków, opcjonalny): "PASTE_NORMAL", "PASTE_VALUES", "PASTE_FORMAT", "PASTE_NO_BORDERS", "PASTE_FORMULA".
  • copyPaste: kopiuje dane z jednego obszaru i wkleja je w innym. Schemat:
  • source (obiekt, wymagany): zakres siatki źródłowej.
  • destination (obiekt, wymagany): docelowy zakres siatki.
  • pasteType (ciąg znaków, opcjonalny): "PASTE_NORMAL", "PASTE_VALUES", "PASTE_FORMAT", "PASTE_NO_BORDERS", "PASTE_FORMULA".
  • pasteOrientation (ciąg znaków, opcjonalny): "NORMAL" lub "TRANSPOSE".
  • mergeCells: scala komórki. Schemat:
  • range (obiekt, wymagany): zakres siatki do scalenia.
  • mergeType (ciąg znaków, wymagany): "MERGE_ALL", "MERGE_COLUMNS" lub "MERGE_ROWS".
  • unmergeCells: rozdziela scalone komórki. Schemat:
  • range (obiekt, wymagany): zakres siatki, w którym mają zostać rozdzielone wszystkie komórki.
  • updateBorders: aktualizuje obramowania w zakresie komórek. Schemat:
  • range (obiekt, wymagany): zakres siatki, dla którego mają zostać zaktualizowane obramowania.
  • top / bottom / left / right / innerHorizontal / innerVertical (obiekt, opcjonalny): styl obramowania ({"style": "SOLID"|"DASHED"|"DOTTED"|"DOUBLE"|"NONE", "width": int, "colorStyle": {"rgbColor": {"red": float, "green": float, "blue": float}}}).
  • updateCells: aktualizuje wiele komórek jednocześnie. Schemat:
  • Obszar (wymagany jest dokładnie jeden):
    • start (obiekt): współrzędna lewego górnego rogu ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
    • range (obiekt): zakres siatki.
  • rows (tablica RowData, wymagana): wiersze komórek ([{"values": [{"userEnteredValue": {"stringValue": str, "numberValue": float, "formulaValue": str}}]}]).
  • fields (ciąg tekstowy, wymagany): maska pola pól komórki do zaktualizowania (np. "userEnteredValue" lub "userEnteredFormat").
  • addFilterView: dodaje widok przefiltrowany. Schemat:
  • filter (obiekt, wymagany): definicja widoku przefiltrowanego ({"title": string, "range": GridRange, "criteria": map, "sortSpecs": list}).
  • appendCells: dołącza komórki po ostatnim wierszu z danymi w arkuszu. Schemat:
  • sheetId (liczba całkowita, wymagana): identyfikator arkusza, do którego mają zostać dołączone dane.
  • rows (tablica RowData, wymagana): wiersze danych do dołączenia.
  • fields (ciąg znaków, wymagany): maska pola (np. "userEnteredValue").
  • clearBasicFilter: usuwa podstawowy filtr z arkusza. Schemat:
  • sheetId (liczba całkowita, wymagana): identyfikator arkusza, w którym chcesz wyczyścić filtr podstawowy.
  • deleteDimension: usuwa wiersze lub kolumny w arkuszu. Schemat:
  • range (obiekt, wymagany): zakres wymiarów do usunięcia ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • deleteEmbeddedObject: usuwa osadzony obiekt (np. wykres, obraz) w arkuszu. Schemat:
  • objectId (liczba całkowita, wymagana): identyfikator umieszczonego obiektu, który chcesz usunąć.
  • deleteFilterView: usuwa widok przefiltrowany z arkusza. Schemat:
  • filterId (liczba całkowita, wymagana): identyfikator widoku przefiltrowanego, który chcesz usunąć.
  • duplicateFilterView: duplikuje widok przefiltrowany. Schemat:
  • filterId (liczba całkowita, wymagana): identyfikator widoku przefiltrowanego, który chcesz zduplikować.
  • duplicateSheet: duplikuje arkusz. Schemat:
  • sourceSheetId (liczba całkowita, wymagana): identyfikator arkusza do zduplikowania.
  • insertSheetIndex (liczba całkowita, opcjonalna): indeks rozpoczynający się od 0, w którym ma zostać wstawiony nowy arkusz.
  • newSheetId (liczba całkowita, opcjonalna): identyfikator nowego arkusza.
  • newSheetName (ciąg znaków, opcjonalny): nazwa nowego arkusza.
  • findReplace: znajduje i zastępuje wystąpienia pewnego tekstu innym tekstem. Schemat:
  • find (ciąg znaków, wymagany): wartość do wyszukania.
  • replacement (ciąg znaków, wymagany): wartość zastępcza.
  • Zakres (wymagany jest dokładnie 1):
    • range (obiekt): zakres siatki.
    • sheetId (liczba całkowita): identyfikator arkusza.
    • allSheets (wartość logiczna): true, aby przeszukać wszystkie arkusze.
  • matchCase / matchEntireCell / searchByRegex / includeFormulas (wartość logiczna, opcjonalna).
  • insertDimension: wstawia nowe wiersze lub kolumny w arkuszu. Schemat:
  • range (obiekt, wymagany): zakres wymiarów do wstawienia ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • inheritFromBefore (wartość logiczna, opcjonalna): true, aby odziedziczyć formatowanie z poprzedniego wiersza lub poprzedniej kolumny.
  • insertRange: wstawia nowe komórki w arkuszu, przesuwając istniejące komórki. Schemat:
  • range (obiekt, wymagany): zakres siatki, do którego mają zostać wstawione komórki.
  • shiftDimension (ciąg znaków, wymagany): "ROWS" lub "COLUMNS".
  • moveDimension: przenosi wiersze lub kolumny do innej lokalizacji w arkuszu. Schemat:
  • source (obiekt, wymagany): zakres wymiaru źródłowego ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • destinationIndex (liczba całkowita, wymagana): indeks miejsca docelowego zaczynający się od 0.
  • updateEmbeddedObjectPosition: aktualizuje pozycję obiektu umieszczonego (np. wykresu, obrazu). Schemat:
  • objectId (liczba całkowita, wymagana): identyfikator umieszczonego obiektu.
  • newPosition (obiekt, wymagany): nowa pozycja ({"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}, "widthPixels": int, "heightPixels": int}}).
  • fields (ciąg znaków, wymagany): maska pola (np. "overlayPosition.anchorCell").
  • pasteData: wkleja dane (HTML lub rozdzielane) do arkusza. Schemat:
  • coordinate (obiekt, wymagany): współrzędna lewego górnego rogu ({"sheetId": int, "rowIndex": int, "columnIndex": int}).
  • data (ciąg tekstowy, wymagany): tekst rozdzielany znakami lub dane HTML.
  • delimiter (ciąg tekstowy, opcjonalnie) lub html (wartość logiczna, opcjonalnie).
  • type (ciąg znaków, opcjonalny): "PASTE_NORMAL", "PASTE_VALUES" itp.
  • textToColumns: konwertuje kolumnę tekstu na wiele kolumn tekstu. Schemat:
  • source (obiekt, wymagany): zakres siatki jednokolumnowej.
  • delimiterType (ciąg znaków, wymagany): "COMMA", "SEMICOLON", "PERIOD", "SPACE", "CUSTOM", "AUTODETECT".
  • delimiter (ciąg znaków, opcjonalny): znak separatora, gdy delimiterType to "CUSTOM".
  • updateFilterView: aktualizuje właściwości widoku przefiltrowanego. Schemat:
  • filter (obiekt, wymagany): definicja widoku przefiltrowanego, w tym filterViewId.
  • fields (ciąg znaków, wymagany): maska pola (np. "title,criteria" lub "*").
  • deleteRange: usuwa zakres komórek z arkusza, przesuwając pozostałe komórki. Schemat:
  • range (obiekt, wymagany): zakres siatki do usunięcia.
  • shiftDimension (ciąg znaków, wymagany): "ROWS" lub "COLUMNS".
  • appendDimension: dołącza wymiary na końcu arkusza. Schemat:
  • sheetId (liczba całkowita, wymagana): identyfikator arkusza.
  • dimension (ciąg znaków, wymagany): "ROWS" lub "COLUMNS".
  • length (liczba całkowita, wymagana): liczba wierszy lub kolumn do dodania.
  • addConditionalFormatRule: dodaje nową regułę formatowania warunkowego. Schemat:
  • rule (obiekt, wymagany): reguła formatowania warunkowego ({"ranges": [GridRange], "booleanRule": {"condition": {"type": "NUMBER_GREATER_THAN_EQ"|"TEXT_CONTAINS"|..., "values": [{"userEnteredValue": string}]}, "format": CellFormat}, "gradientRule": {...}}).
  • index (liczba całkowita, opcjonalna): indeks zaczynający się od 0, w którym należy wstawić regułę.
  • updateConditionalFormatRule: aktualizuje istniejącą regułę formatowania warunkowego. Schemat:
  • rule (obiekt, wymagany): nowa reguła formatowania warunkowego.
  • Indeks / identyfikator reguły (wymagany jeden z tych elementów):
    • index (liczba całkowita): indeks reguły liczony od zera.
    • sheetId (liczba całkowita): identyfikator arkusza, jeśli aktualizujesz według indeksu arkusza.
  • newIndex (liczba całkowita, opcjonalna): nowy indeks do przeniesienia reguły.
  • deleteConditionalFormatRule: usuwa istniejącą regułę formatowania warunkowego. Schemat:
  • index (liczba całkowita, wymagana): indeks reguły do usunięcia (liczony od 0).
  • sheetId (liczba całkowita, wymagana): identyfikator arkusza reguły.
  • sortRange: sortuje dane w zakresie. Schemat:
  • range (obiekt, wymagany): zakres siatki do posortowania.
  • sortSpecs (tablica SortSpec, wymagana): specyfikacje sortowania ([{"dimensionIndex": int, "sortOrder": "ASCENDING"|"DESCENDING"}]).
  • setDataValidation: ustawia sprawdzanie poprawności danych w jednej lub kilku komórkach. Schemat:
  • range (obiekt, wymagany): zakres siatki.
  • rule (obiekt, opcjonalny): reguła weryfikacji ({"condition": {"type": "ONE_OF_LIST"|"NUMBER_BETWEEN"|..., "values": [{"userEnteredValue": string}]}, "strict": bool, "showCustomUi": bool}). Jeśli zostanie pominięty, weryfikacja zostanie wyczyszczona.
  • setBasicFilter: ustawia filtr podstawowy w arkuszu. Schemat:
  • filter (obiekt, wymagany): podstawowa definicja filtra ({"range": GridRange, "criteria": map, "sortSpecs": list}).
  • addProtectedRange: dodaje zakres chroniony. Schemat:
  • protectedRange (obiekt, wymagany): definicja zakresu chronionego ({"range": GridRange, "description": string, "warningOnly": bool, "editors": {"users": [string]}}).
  • updateProtectedRange: aktualizuje zakres chroniony. Schemat:
  • protectedRange (obiekt, wymagany): definicja chronionego zakresu z protectedRangeId.
  • fields (ciąg znaków, wymagany): maska pola (np. "description,warningOnly" lub "*").
  • deleteProtectedRange: usuwa zakres chroniony. Schemat:
  • protectedRangeId (liczba całkowita, wymagana): identyfikator zakresu chronionego, który chcesz usunąć.
  • autoResizeDimensions: automatycznie zmienia rozmiar co najmniej jednego wymiaru na podstawie zawartości komórki. Schemat:
  • dimensions (obiekt, wymagany): zakres wymiaru ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • addChart: dodaje wykres. Schemat:
  • chart (obiekt, wymagany): definicja wykresu ({"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: aktualizuje specyfikacje wykresu. Schemat:
  • chartId (liczba całkowita, wymagana): identyfikator wykresu.
  • spec (obiekt, wymagany): specyfikacja nowego wykresu.
  • updateBanding: aktualizuje zakres pasmowy. Schemat:
  • bandedRange (obiekt, wymagany): definicja zakresu z naprzemiennymi kolorami z bandedRangeId.
  • fields (ciąg znaków, wymagany): maska pola.
  • addBanding: dodaje nowy zakres pasm. Schemat:
  • bandedRange (obiekt, wymagany): definicja zakresu pasmowego ({"range": GridRange, "rowProperties": {"headerColorStyle": ColorStyle, "firstBandColorStyle": ColorStyle, "secondBandColorStyle": ColorStyle}}).
  • deleteBanding: usuwa zakres naprzemienny. Schemat:
  • bandedRangeId (liczba całkowita, wymagana): identyfikator zakresu pasiastego do usunięcia.
  • createDeveloperMetadata: tworzy nowe metadane dewelopera. Schemat:
  • developerMetadata (obiekt, wymagany): definicja metadanych ({"metadataKey": string, "metadataValue": string, "location": {"locationType": "ROW"|"COLUMN"|"SHEET"|"SPREADSHEET", "sheetId": int}, "visibility": "DOCUMENT"|"PROJECT"}).
  • updateDeveloperMetadata: aktualizuje istniejący wpis metadanych dewelopera. Schemat:
  • dataFilters (tablica DataFilter, wymagana): filtry do wybierania metadanych.
  • developerMetadata (obiekt, wymagany): zaktualizowane wartości metadanych.
  • fields (ciąg znaków, wymagany): maska pola.
  • deleteDeveloperMetadata: usuwa metadane dewelopera. Schemat:
  • dataFilter (obiekt, wymagany): filtr opisujący kryteria metadanych do usunięcia.
  • randomizeRange: losowo zmienia kolejność wierszy w zakresie. Schemat:
  • range (obiekt, wymagany): zakres siatki do losowania.
  • addDimensionGroup: tworzy grupę w określonym zakresie. Schemat:
  • range (obiekt, wymagany): zakres wymiarów do pogrupowania ({"sheetId": int, "dimension": "ROWS"|"COLUMNS", "startIndex": int, "endIndex": int}).
  • deleteDimensionGroup: usuwa grupę w określonym zakresie. Schemat:
  • range (obiekt, wymagany): zakres wymiarów grupy do usunięcia.
  • updateDimensionGroup: aktualizuje stan określonej grupy. Schemat:
  • dimensionGroup (obiekt, wymagany): definicja grupy ({"range": DimensionRange, "depth": int, "collapsed": bool}).
  • fields (ciąg znaków, wymagany): maska pola (np. "collapsed").
  • trimWhitespace: usuwa z komórek odstępy (takie jak spacje, tabulatory lub nowe wiersze). Schemat:
  • range (obiekt, wymagany): zakres siatki, którego komórki mają zostać przycięte.
  • deleteDuplicates: usuwa wiersze zawierające zduplikowane wartości w określonych kolumnach zakresu komórek. Schemat:
  • range (obiekt, wymagany): zakres siatki, z którego mają zostać usunięte duplikaty.
  • comparisonColumns (tablica DimensionRange, opcjonalna): konkretne kolumny do przeanalizowania.
  • updateEmbeddedObjectBorder: aktualizuje obramowanie obiektu umieszczonego. Schemat:
  • objectId (liczba całkowita, wymagana): identyfikator umieszczonego obiektu.
  • border (obiekt, wymagany): definicja obramowania ({"colorStyle": ColorStyle, "section": "ALL"}).
  • fields (ciąg znaków, wymagany): maska pola.
  • addSlicer: dodaje fragmentator. Schemat:
  • slicer (obiekt, wymagany): definicja fragmentatora ({"spec": {"dataRange": GridRange, "columnIndex": int, "title": string}, "position": {"overlayPosition": {"anchorCell": {"sheetId": int, "rowIndex": int, "columnIndex": int}}}}).
  • updateSlicerSpec: aktualizuje specyfikacje fragmentatora. Schemat:
  • slicerId (liczba całkowita, wymagana): identyfikator fragmentatora.
  • spec (obiekt, wymagany): nowa specyfikacja fragmentatora.
  • fields (ciąg znaków, wymagany): maska pola.
  • addDataSource: dodaje źródło danych. Schemat:
  • dataSource (obiekt, wymagany): definicja źródła danych ({"spec": {"bigQuery": {"projectId": string, "query": string}}}).
  • updateDataSource: aktualizuje źródło danych. Schemat:
  • dataSource (obiekt, wymagany): definicja źródła danych z dataSourceId.
  • fields (ciąg znaków, wymagany): maska pola.
  • deleteDataSource: usuwa źródło danych. Schemat:
  • dataSourceId (ciąg tekstowy, wymagany): identyfikator źródła danych, które chcesz usunąć.
  • refreshDataSource: odświeża co najmniej 1 źródło danych i powiązane obiekty bazy danych. Schemat:
  • dataSourceId (ciąg znaków, opcjonalnie) lub isAll (wartość logiczna, opcjonalnie) lub references (obiekt, opcjonalnie).
  • force (wartość logiczna, opcjonalnie): określa, czy wymusić odświeżenie.
  • cancelDataSourceRefresh: anuluje odświeżanie co najmniej jednego źródła danych i powiązanych obiektów bazy danych. Schemat:
  • dataSourceId (ciąg znaków, opcjonalnie) lub isAll (wartość logiczna, opcjonalnie) lub references (obiekt, opcjonalnie).
  • addTable: dodaje tabelę. Schemat:
  • table (obiekt, wymagany): definicja tabeli ({"range": GridRange, "name": string, "hasHeaderRow": bool, "hasTotalsRow": bool}).
  • updateTable: aktualizuje tabelę. Schemat:
  • table (obiekt, wymagany): definicja tabeli z tableId.
  • fields (ciąg znaków, wymagany): maska pola.
  • deleteTable: żądanie usunięcia tabeli. Schemat:
  • tableId (ciąg tekstowy, wymagany): identyfikator tabeli, którą chcesz usunąć.
  • insertComment: wstawia komentarz do arkusza kalkulacyjnego. Schemat:
  • content (ciąg znaków, wymagany): treść komentarza tekstowego w formie zwykłego tekstu.
  • coordinate (obiekt, wymagany): współrzędna siatki w arkuszu, do której ma zostać zakotwiczony komentarz:
    • sheetId (liczba całkowita, wymagana): identyfikator arkusza.
    • rowIndex (liczba całkowita, wymagana): indeks wiersza liczony od zera.
    • columnIndex (liczba całkowita, wymagana): indeks kolumny w skali od 0.
  • assigneeEmailAddress (ciąg znaków, opcjonalny): adres e-mail osoby, której przypisano komentarz.
  • addCommentReply: dodaje odpowiedź do istniejącego wątku komentarzy. Służy też do oznaczania wątku jako rozwiązanego lub do ponownego otwierania wątku. Schemat:
  • commentId (ciąg znaków, wymagany): identyfikator wątku komentarzy.
  • post (obiekt, wymagany):
    • content (ciąg tekstowy, wymagany, chyba że commentAction ma wartość RESOLVE lub REOPEN): treść odpowiedzi w formie zwykłego tekstu.
    • commentAction (ciąg znaków, opcjonalny): działanie podjęte w przypadku tej odpowiedzi ("RESOLVE" lub "REOPEN").
    • assigneeEmail (ciąg znaków, opcjonalny): adres e-mail, do którego ma zostać przypisany wątek.
  • updateCommentPost: aktualizuje treść komentarza w wątku komentarzy. Schemat:
  • commentId (ciąg znaków, wymagany): identyfikator wątku komentarzy.
  • postId (ciąg znaków, wymagany): identyfikator posta z komentarzem, który ma zostać zaktualizowany.
  • content (ciąg znaków, wymagany): zaktualizowana treść komentarza.
  • deleteComment: usuwa wątek komentarza. Schemat:
  • commentId (ciąg znaków, wymagany): identyfikator wątku komentarzy, który chcesz usunąć.
  • deleteCommentReply: usuwa odpowiedź. Schemat:
  • commentId (ciąg znaków, wymagany): identyfikator wątku komentarzy.
  • postId (ciąg tekstowy, wymagany): identyfikator posta z odpowiedzią, który chcesz usunąć.

Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP update_spreadsheet.

Żądanie 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
}'

Schemat wejściowy

UpdateContentRequest

Zapis JSON
{
  "spreadsheetId": string,
  "requests": [
    {
      object
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
Pola
spreadsheetId

string

Wymagane. Identyfikator arkusza kalkulacyjnego, który chcesz zaktualizować.

requests[]

object (Struct format)

Wymagane. Lista aktualizacji, które mają zostać zastosowane w arkuszu kalkulacyjnym. Każde żądanie powinno być prawidłowym obiektem żądania spreadsheets.batchUpdate, który używa schematu opisanego na stronie: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/request. Żądania będą stosowane w podanej kolejności. Jeśli którekolwiek żądanie jest nieprawidłowe, żadne żądania nie zostaną zastosowane.

writeControl

object (WriteControl)

Opcjonalnie: Zapewnia kontrolę nad sposobem wykonywania żądań zapisu.

Struct

Zapis JSON
{
  "fields": {
    string: value,
    ...
  }
}
Pola
fields

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

Nieuporządkowana mapa wartości o typie dynamicznym.

Obiekt zawierający listę par "key": value. Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" }

FieldsEntry

Zapis JSON
{
  "key": string,
  "value": value
}
Pola
key

string

value

value (Value format)

Wartość

Zapis JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Pola
Pole zbiorcze kind. Rodzaj wartości. kind może mieć tylko jedną z tych wartości:
nullValue

null

Reprezentuje obiekt JSON null.

numberValue

number

Reprezentuje liczbę JSON. Nie może to być NaN, Infinity ani -Infinity, ponieważ te wartości nie są obsługiwane w formacie JSON. Nie może też reprezentować dużych wartości Int64, ponieważ format JSON zwykle nie obsługuje ich w swoim typie liczbowym.

stringValue

string

Reprezentuje ciąg JSON.

boolValue

boolean

Reprezentuje wartość logiczną JSON (literał true lub false w JSON).

structValue

object (Struct format)

Reprezentuje obiekt JSON.

listValue

array (ListValue format)

Reprezentuje tablicę JSON.

ListValue

Zapis JSON
{
  "values": [
    value
  ]
}
Pola
values[]

value (Value format)

Pole powtarzane wartości wpisywanych dynamicznie.

WriteControl

Zapis JSON
{

  "requiredRevisionId": string
}
Pola
Pole zbiorcze control. Określa wersję arkusza kalkulacyjnego, do której ma zostać zapisany, oraz sposób działania żądania, jeśli ta wersja nie jest bieżącą wersją arkusza kalkulacyjnego. control może mieć tylko jedną z tych wartości:
requiredRevisionId

string

Identyfikator wersji arkusza kalkulacyjnego, do którego zostanie zastosowane żądanie zapisu. Jeśli nie jest to najnowsza wersja dokumentu, żądanie nie zostanie przetworzone i zwróci błąd 400 (Nieprawidłowe żądanie).

Gdy w odpowiedzi zwracany jest wymagany identyfikator wersji, wskazuje on identyfikator wersji arkusza kalkulacyjnego po zastosowaniu żądania.

NullValue

Reprezentuje obiekt JSON null.

NullValue to wartownik, który używa typu wyliczeniowego z tylko jedną wartością do reprezentowania wartości null dla unii typu Value.

Pole typu NullValue z dowolną wartością inną niż 0 jest uznawane za nieprawidłowe. Większość serializatorów ProtoJSON będzie emitować Value z ustawionym null_value jako JSON null niezależnie od wartości liczby całkowitej, więc będzie to wartość 0.

Wartości w polu enum
NULL_VALUE Wartość null.

Schemat wyjściowy

UpdateContentResponse

Zapis JSON
{
  "content": {
    object
  }
}
Pola
content

object (Struct format)

Odpowiedź spreadsheets.batchUpdate w formacie JSON interfejsu Sheets API oraz pole status.

Struct

Zapis JSON
{
  "fields": {
    string: value,
    ...
  }
}
Pola
fields

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

Nieuporządkowana mapa wartości o typie dynamicznym.

Obiekt zawierający listę par "key": value. Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" }

FieldsEntry

Zapis JSON
{
  "key": string,
  "value": value
}
Pola
key

string

value

value (Value format)

Wartość

Zapis JSON
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Pola
Pole zbiorcze kind. Rodzaj wartości. kind może mieć tylko jedną z tych wartości:
nullValue

null

Reprezentuje obiekt JSON null.

numberValue

number

Reprezentuje liczbę JSON. Nie może to być NaN, Infinity ani -Infinity, ponieważ te wartości nie są obsługiwane w formacie JSON. Nie może też reprezentować dużych wartości Int64, ponieważ format JSON zwykle nie obsługuje ich w swoim typie liczbowym.

stringValue

string

Reprezentuje ciąg JSON.

boolValue

boolean

Reprezentuje wartość logiczną JSON (literał true lub false w JSON).

structValue

object (Struct format)

Reprezentuje obiekt JSON.

listValue

array (ListValue format)

Reprezentuje tablicę JSON.

ListValue

Zapis JSON
{
  "values": [
    value
  ]
}
Pola
values[]

value (Value format)

Pole powtarzane wartości wpisywanych dynamicznie.

NullValue

Reprezentuje obiekt JSON null.

NullValue to wartownik, który używa typu wyliczeniowego z tylko jedną wartością do reprezentowania wartości null dla unii typu Value.

Pole typu NullValue z dowolną wartością inną niż 0 jest uznawane za nieprawidłowe. Większość serializatorów ProtoJSON będzie emitować Value z ustawionym null_value jako JSON null niezależnie od wartości liczby całkowitej, więc będzie to wartość 0.

Wartości w polu enum
NULL_VALUE Wartość null.

Adnotacje dotyczące narzędzi

Adnotacje narzędzi są wysyłane do klientów MCP, aby opisać podstawowe ryzyko związane z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich użyć do określenia, kiedy wysłać użytkownikowi prośbę o potwierdzenie.

Oprócz ciągu tytułu zdefiniowane są te wskazówki logiczne:

  • readOnlyHint: jeśli ma wartość „true”, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: false.
  • destructiveHint: jeśli ma wartość „true”, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość false, narzędzie może wykonywać tylko działania dodawania. Wartość domyślna: true.
  • idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: false.
  • openWorldHint: jeśli ma wartość true, narzędzie może wchodzić w interakcje z „otwartym światem” elementów zewnętrznych. Jeśli ma wartość false, narzędzie może wchodzić w interakcje tylko z elementami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie jest narzędziem typu Otwarty świat, ale narzędzie do zapamiętywania już nie.

Wskazówka dotycząca destrukcyjności: ❌ | Wskazówka dotycząca idempotencji: ❌ | Wskazówka dotycząca tylko do odczytu: ❌ | Wskazówka dotycząca otwartego świata: ✅

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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