MCP Tools Reference: sheetsmcp.googleapis.com

Tool: get_spreadsheet

Returns the spreadsheet content for the given spreadsheet. Returns titles, sheet names, grid properties, and other metadata for the given spreadsheet ID. Also returns full grid data if requested.

Corresponds to spreadsheets.get in the REST API: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/get

Schema: - spreadsheet_id (string, required): The ID of the spreadsheet to request. - include_grid_data (boolean, optional): True if grid data should be returned. Defaults to false. - fields (array of strings, optional): Field masks specifying which properties to return (e.g. ["sheets.properties.sheetId", "sheets.properties.title"]). - comments_included (boolean, optional): If true, comments will be included in the response. Defaults to false. - ranges (array of strings, optional): The A1 or R1C1 ranges to retrieve from the spreadsheet. If not specified, the entire spreadsheet is returned.

The following code sample shows how to use curl to call the get_spreadsheet MCP tool.

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

Input Schema

GetContentRequest

JSON representation
{
  "spreadsheetId": string,
  "includeGridData": boolean,
  "fields": [
    string
  ],
  "ranges": [
    string
  ],

  "commentsIncluded": boolean
}
Fields
spreadsheetId

string

Required. The ID of the spreadsheet to request.

includeGridData

boolean

True if grid data should be returned.

fields[]

string

Optional. A field mask to specify which properties to return of the Spreadsheets API, see https://developers.google.com/workspace/sheets/api/guides/field-masks for more on how to use the field masks. IMPORTANT: Use hierarchical paths based on the response JSON structure of the Sheets API. - For example, to get the sheet title and ID, use 'sheets.properties.sheetId' and 'sheets.properties.title' instead of 'title,sheetId'. - Only include the fields you need. - To get tables, use: 'sheets.tables' or 'sheets.properties'. - To get sheet titles and IDs, use: 'sheets.properties.sheetId' and 'sheets.properties.title'.

ranges[]

string

Optional. The A1 notation or R1C1 notation of the ranges to retrieve from the spreadsheet. If not specified, the entire spreadsheet is returned.

Union field _comments_included.

_comments_included can be only one of the following:

commentsIncluded

boolean

Optional. If true, comments will be included in the response. By default, comments are not included.

Output Schema

Represents a JSON object.

An unordered key-value map, intending to perfectly capture the semantics of a JSON object. This enables parsing any arbitrary JSON payload as a message field in ProtoJSON format.

This follows RFC 8259 guidelines for interoperable JSON: notably this type cannot represent large Int64 values or NaN/Infinity numbers, since the JSON format generally does not support those values in its number type.

If you do not intend to parse arbitrary JSON into your message, a custom typed message should be preferred instead of using this type.

Struct

JSON representation
{
  "fields": {
    string: value,
    ...
  }
}
Fields
fields

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

Unordered map of dynamically typed values.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON representation
{
  "key": string,
  "value": value
}
Fields
key

string

value

value (Value format)

Value

JSON representation
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Fields
Union field kind. The kind of value. kind can be only one of the following:
nullValue

null

Represents a JSON null.

numberValue

number

Represents a JSON number. Must not be NaN, Infinity or -Infinity, since those are not supported in JSON. This also cannot represent large Int64 values, since JSON format generally does not support them in its number type.

stringValue

string

Represents a JSON string.

boolValue

boolean

Represents a JSON boolean (true or false literal in JSON).

structValue

object (Struct format)

Represents a JSON object.

listValue

array (ListValue format)

Represents a JSON array.

ListValue

JSON representation
{
  "values": [
    value
  ]
}
Fields
values[]

value (Value format)

Repeated field of dynamically typed values.

NullValue

Represents a JSON null.

NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.

A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.

Enums
NULL_VALUE Null value.

Tool Annotations

Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.

Along with the title string, the following boolean hints are defined as follows:

  • readOnlyHint: If true, the tool doesn't modify its environment. Default: false.
  • destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.
  • idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.
  • openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ✅

Authorization Scopes

Requires one of the following OAuth scopes:

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