Ferrule

Google Sheets

13 tools OpenAPI spec ↗

MCPREST
GETget_spreadsheet/spreadsheets/:spreadsheetId

Get metadata for a spreadsheet including its sheets, properties, and URL. Use this to discover sheet names and IDs before reading or writing data.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to retrieve.

Query Parameters

NameTypeRequiredDescription
includeGridDatabooleanNoWhether to include grid data (cell values). Default false. Use get_values for reading cell data instead.

Response

spreadsheetIdobject
propertiesobject
sheetsobject
spreadsheetUrlobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "get_spreadsheet"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "get_spreadsheet",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
GETget_values/spreadsheets/:spreadsheetId/values

Read cell values from a range in a spreadsheet. Use A1 notation for the range (e.g. 'Sheet1!A1:D10', 'Sheet1', 'A1:B5'). Returns a 2D array of cell values.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to read from.

Query Parameters

NameTypeRequiredDescription
rangestringNoThe A1 notation range to read (e.g. 'Sheet1!A1:D10', 'Sheet1', 'A:A').
majorDimensionstringNoThe major dimension of the values: 'ROWS' (default) or 'COLUMNS'.
valueRenderOptionstringNoHow values should be rendered: 'FORMATTED_VALUE' (default), 'UNFORMATTED_VALUE', or 'FORMULA'.
dateTimeRenderOptionstringNoHow dates should be rendered: 'SERIAL_NUMBER' or 'FORMATTED_STRING' (default).

Response

rangeobject
majorDimensionobject
valuesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "get_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "get_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTbatch_get_values/spreadsheets/:spreadsheetId/values/batch-get

Read cell values from multiple ranges in a spreadsheet in a single request. More efficient than multiple get_values calls.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to read from.

Query Parameters

NameTypeRequiredDescription
rangesarrayNoArray of A1 notation ranges to read (e.g. ['Sheet1!A1:D10', 'Sheet2!A1:B5']).
majorDimensionstringNoThe major dimension of the values: 'ROWS' (default) or 'COLUMNS'.
valueRenderOptionstringNoHow values should be rendered: 'FORMATTED_VALUE' (default), 'UNFORMATTED_VALUE', or 'FORMULA'.
dateTimeRenderOptionstringNoHow dates should be rendered: 'SERIAL_NUMBER' or 'FORMATTED_STRING' (default).

Response

spreadsheetIdobject
valueRangesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "batch_get_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "batch_get_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
PATCHupdate_values/spreadsheets/:spreadsheetId/values

Write cell values to a range in a spreadsheet. Overwrites existing data in the specified range. Use A1 notation for the range.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to write to.

Query Parameters

NameTypeRequiredDescription
rangestringNoThe A1 notation range to write to (e.g. 'Sheet1!A1:D10').
valuesarrayNo2D array of values to write. Each inner array is a row (e.g. [['Name', 'Age'], ['Alice', 30]]).
valueInputOptionstringNoHow input values should be interpreted: 'RAW' or 'USER_ENTERED' (default). USER_ENTERED parses formulas and formats.

Response

spreadsheetIdobject
updatedRangeobject
updatedRowsobject
updatedColumnsobject
updatedCellsobject
updatedDataobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "update_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "update_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTbatch_update_values/spreadsheets/:spreadsheetId/values/batch-update

Write cell values to multiple ranges in a spreadsheet in a single request. More efficient than multiple update_values calls.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to write to.

Query Parameters

NameTypeRequiredDescription
dataarrayNoArray of range-value pairs to write.
valueInputOptionstringNoHow input values should be interpreted: 'RAW' or 'USER_ENTERED' (default).

Response

spreadsheetIdobject
totalUpdatedRowsobject
totalUpdatedColumnsobject
totalUpdatedCellsobject
totalUpdatedSheetsobject
responsesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "batch_update_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "batch_update_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTappend_values/spreadsheets/:spreadsheetId/values/append

Append rows of data after the last row with content in a range. Useful for adding new rows to a table without overwriting existing data.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to append to.

Query Parameters

NameTypeRequiredDescription
rangestringNoThe A1 notation of the table range to append to (e.g. 'Sheet1!A:E'). Data is appended after the last row with content.
valuesarrayNo2D array of values to append. Each inner array is a row (e.g. [['Alice', 30], ['Bob', 25]]).
valueInputOptionstringNoHow input values should be interpreted: 'RAW' or 'USER_ENTERED' (default).
insertDataOptionstringNoHow the data should be inserted: 'OVERWRITE' or 'INSERT_ROWS' (default). INSERT_ROWS adds new rows for the data.

Response

spreadsheetIdobject
tableRangeobject
updatesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "append_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "append_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTclear_values/spreadsheets/:spreadsheetId/values/clear

Clear all values from a range in a spreadsheet. Only clears values, not formatting or other properties.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to clear values from.

Query Parameters

NameTypeRequiredDescription
rangestringNoThe A1 notation range to clear (e.g. 'Sheet1!A1:D10', 'Sheet1').

Response

spreadsheetIdobject
clearedRangeobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "clear_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "clear_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTbatch_clear_values/spreadsheets/:spreadsheetId/values/batch-clear

Clear values from multiple ranges in a spreadsheet in a single request. More efficient than multiple clear_values calls.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to clear values from.

Query Parameters

NameTypeRequiredDescription
rangesarrayNoArray of A1 notation ranges to clear (e.g. ['Sheet1!A1:D10', 'Sheet2!A1:B5']).

Response

spreadsheetIdobject
clearedRangesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "batch_clear_values"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "batch_clear_values",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTcreate_spreadsheet/spreadsheets

Create a new Google Sheets spreadsheet. Optionally specify a title and initial sheet names.

Request

Query Parameters

NameTypeRequiredDescription
titlestringNoThe title for the new spreadsheet (default 'Untitled').
sheetTitlesarrayNoOptional array of sheet names to create (e.g. ['Data', 'Summary']). If omitted, a single default sheet is created.

Response

spreadsheetIdobject
propertiesobject
sheetsobject
spreadsheetUrlobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "create_spreadsheet"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "create_spreadsheet",
      "params": {}
    }
  }
}
POSTadd_sheet/spreadsheets/:spreadsheetId/sheets

Add a new sheet (tab) to an existing spreadsheet. Returns the properties of the newly created sheet.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to add a sheet to.

Query Parameters

NameTypeRequiredDescription
titlestringNoThe title for the new sheet.
indexnumberNoThe zero-based index where the sheet should be inserted. If omitted, the sheet is added at the end.

Response

propertiesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "add_sheet"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "add_sheet",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
DELETEdelete_sheet/spreadsheets/:spreadsheetId/sheets

Delete a sheet (tab) from a spreadsheet by its sheet ID. Use get_spreadsheet to find sheet IDs first.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to delete a sheet from.

Query Parameters

NameTypeRequiredDescription
sheetIdnumberNoThe numeric ID of the sheet to delete (not the sheet name). Use get_spreadsheet to find sheet IDs.

Response

spreadsheetIdobject
repliesobject
updatedSpreadsheetobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "delete_sheet"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "delete_sheet",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTcopy_sheet_to/spreadsheets/:spreadsheetId/sheets/copy

Copy a sheet from one spreadsheet to another. Returns the properties of the newly created sheet in the destination spreadsheet.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the source spreadsheet containing the sheet.

Query Parameters

NameTypeRequiredDescription
sheetIdnumberNoThe numeric ID of the sheet to copy (not the sheet name). Use get_spreadsheet to find sheet IDs.
destinationSpreadsheetIdstringNoThe ID of the destination spreadsheet to copy the sheet to.

Response

propertiesobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "copy_sheet_to"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "copy_sheet_to",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}
POSTbatch_update_spreadsheet/spreadsheets/:spreadsheetId/batch-update

Execute one or more structured update requests against a spreadsheet. Supports a wide variety of operations: formatting, merging cells, adding/removing named ranges, creating charts, auto-resizing, sorting, and more. See the Google Sheets API batchUpdate documentation for the full list of request types.

Request

Path Parameters

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet to update.

Query Parameters

NameTypeRequiredDescription
requestsarrayNoArray of request objects. Each object should have a single key matching the request type (e.g. 'repeatCell', 'mergeCells', 'autoResizeDimensions'). See Google Sheets API batchUpdate documentation for available request types and their parameters.
includeSpreadsheetInResponsebooleanNoWhether to include the full spreadsheet resource in the response (default false).

Response

spreadsheetIdobject
repliesobject
updatedSpreadsheetobject

Runtime output is unvalidated JSON (raw passthrough).

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-sheets",
      "method": "batch_update_spreadsheet"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-sheets",
    "arguments": {
      "method": "batch_update_spreadsheet",
      "params": {
        "spreadsheetId": "<spreadsheetId>"
      }
    }
  }
}