Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Description:
When calling the user-google-sheets MCP tool update_values, the 2D array parameter values gets incorrectly serialized into a string before reaching the Google Sheets API, causing a 400 Bad Request error.
Tool:
user-google-sheets → update_values / update_spreadsheet
Actual Behavior:
The inner arrays are stringified into escaped JSON strings (e.g. ["[\"a\", \"b\"]", "[\"c\", \"d\"]"]), which violates Google API’s Protobuf schema.
Error Message:
Invalid value at ‘values[0]’ (type.googleapis.com/google.protobuf.ListValue), “["test1", "test2"]”
Environment:
- OS: Windows 11
- Cursor Version: Latest
Steps to Reproduce
- Configure and authenticate the Google Sheets MCP server (
user-google-sheets) in Cursor Settings. - In Composer / Chat (Agent mode), ask the agent to write data to a Google Spreadsheet using the
update_valuestool with a 2D array parameter (e.g.,values: [["test1", "test2"]]). - Observe that the tool execution fails with a 400 Bad Request error.
Root cause:
The inner arrays in the 2D array parameter are incorrectly stringified into escaped JSON strings (e.g. ["[\"test1\", \"test2\"]"]) instead of raw arrays before reaching the Google Sheets API, triggering the error:
Invalid value at 'values[0]' (type.googleapis.com/google.protobuf.ListValue), "[\"test1\", \"test2\"]"
Expected Behavior
valuesshould be passed as a nested array (e.g.[[“a”, “b”], [“c”, “d”]]->ListValue`).
The nested 2D array parameter values should be correctly serialized as an array of arrays (Protobuf ListValue) when passed to the Google Sheets MCP server and API, successfully writing cell values to the spreadsheet.
Operating System
Windows 10/11
Version Information
Version: 3.17.21
Does this stop you from using Cursor
No - Cursor works, but with this issue