sheets_write

Pack: google_sheets · Endpoint: https://gateway.pipeworx.io/google_sheets/mcp

Write data to a Google Sheet range, overwriting existing values. Specify sheet name, range (e.g., ‘A1:C10’), and row data.

Parameters

NameTypeRequiredDescription
spreadsheet_idstringyesSpreadsheet ID
rangestringyesA1 notation range (e.g., “Sheet1!A1”)
valuesarrayyesArray of rows, each row is an array of cell values
itemsarrayno
itemsstringno
value_input_optionstringnoHow to interpret input. USER_ENTERED (default) parses formulas/dates/numbers. RAW stores literal strings.

Example call

Arguments

{
  "spreadsheet_id": "1BxiMVs0XRA5nFMmqvzausWYMYq6nS8twLu0gKBvMZsk",
  "range": "Sheet1!A1",
  "values": [
    [
      "Name",
      "Age",
      "City"
    ],
    [
      "Alice",
      "30",
      "New York"
    ],
    [
      "Bob",
      "25",
      "Los Angeles"
    ]
  ]
}

curl

curl -X POST https://gateway.pipeworx.io/google_sheets/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"sheets_write","arguments":{"spreadsheet_id":"1BxiMVs0XRA5nFMmqvzausWYMYq6nS8twLu0gKBvMZsk","range":"Sheet1!A1","values":[["Name","Age","City"],["Alice","30","New York"],["Bob","25","Los Angeles"]]}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('sheets_write', {
  "spreadsheet_id": "1BxiMVs0XRA5nFMmqvzausWYMYq6nS8twLu0gKBvMZsk",
  "range": "Sheet1!A1",
  "values": [
    [
      "Name",
      "Age",
      "City"
    ],
    [
      "Alice",
      "30",
      "New York"
    ],
    [
      "Bob",
      "25",
      "Los Angeles"
    ]
  ]
});

More examples

{
  "spreadsheet_id": "1BxiMVs0XRA5nFMmqvzausWYMYq6nS8twLu0gKBvMZsk",
  "range": "Data!B2:C5",
  "values": [
    [
      "100",
      "200"
    ],
    [
      "300",
      "400"
    ]
  ],
  "value_input_option": "USER_ENTERED"
}

Response shape

FieldTypeDescription
spreadsheetIdstringSpreadsheet ID that was written to
updatedRangestringRange that was updated
updatedRowsintegerNumber of rows updated
updatedColumnsintegerNumber of columns updated
updatedCellsintegerTotal number of cells updated
errorstringError code if connection required
messagestringError message if connection required
Full JSON Schema
{
  "type": "object",
  "properties": {
    "spreadsheetId": {
      "type": "string",
      "description": "Spreadsheet ID that was written to"
    },
    "updatedRange": {
      "type": "string",
      "description": "Range that was updated"
    },
    "updatedRows": {
      "type": "integer",
      "description": "Number of rows updated"
    },
    "updatedColumns": {
      "type": "integer",
      "description": "Number of columns updated"
    },
    "updatedCells": {
      "type": "integer",
      "description": "Total number of cells updated"
    },
    "error": {
      "type": "string",
      "description": "Error code if connection required"
    },
    "message": {
      "type": "string",
      "description": "Error message if connection required"
    }
  }
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "google_sheets": {
      "url": "https://gateway.pipeworx.io/google_sheets/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build May 9, 2026