Sheets Update Values
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
destructive - Catalog version:
google-2026.07.12.2 - Descriptor hash:
1b079f215214e17fe86203362f0897a918f0e6623d096942289ce3333ef67bde
Use this destructive Google Sheets values tool to overwrite cells in one A1 range. It writes values and returns update counts. It can overwrite, send, move, remove, or permanently delete Google data. Use it only after preview and the manifest-defined confirmation; it requires per-request Google OAuth.
Request Body
{
"jsonrpc": "2.0",
"id": "google-sheets-update-values-example",
"method": "tools/call",
"params": {
"name": "google.sheets_update_values",
"arguments": {
"spreadsheet_id": "spreadsheet_id_123",
"range_a1": "range_a1_example",
"values": [],
"value_input_option": "RAW"
}
}
}
Arguments Schema
{
"type": "object",
"title": "sheets_update_valuesArguments",
"required": [
"spreadsheet_id",
"range_a1",
"values"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"title": "Values",
"description": "Two-dimensional array of cell values."
},
"range_a1": {
"type": "string",
"title": "Range A1",
"description": "A1 notation range, for example Sheet1!A1:C20."
},
"spreadsheet_id": {
"type": "string",
"title": "Spreadsheet Id",
"description": "Google Sheets spreadsheet ID."
},
"value_input_option": {
"enum": [
"RAW",
"USER_ENTERED"
],
"type": "string",
"title": "Value Input Option",
"default": "RAW",
"description": "How Google Sheets should interpret written values."
}
},
"additionalProperties": false
}
Output Schema
{
"type": "object",
"required": [
"ok",
"data",
"error",
"meta"
],
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the local or Google provider operation completed successfully."
},
"data": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "array",
"items": {}
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Bounded local navigation or Google provider result when ok is true."
},
"meta": {
"type": "object",
"description": "Safe timing, pagination, cache, request, and truncation metadata.",
"additionalProperties": true
},
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Safe structured error when ok is false."
}
},
"description": "Google MCP normalized operation envelope.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "google-sheets-update-values-example",
"method": "tools/call",
"params": {
"name": "google.sheets_update_values",
"arguments": {
"spreadsheet_id": "spreadsheet_id_123",
"range_a1": "range_a1_example",
"values": [],
"value_input_option": "RAW"
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "google-sheets-update-values-example",
"method": "tools/call",
"params": {
"name": "google.sheets_update_values",
"arguments": {
"spreadsheet_id": "spreadsheet_id_123",
"range_a1": "range_a1_example",
"values": [],
"value_input_option": "RAW"
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "google-sheets-update-values-example",
"method": "tools/call",
"params": {
"name": "google.sheets_update_values",
"arguments": {
"spreadsheet_id": "spreadsheet_id_123",
"range_a1": "range_a1_example",
"values": [],
"value_input_option": "RAW"
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool google.sheets_update_values executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}