add_sheet_dropdown
Set, replace or remove the dropdown on a range — the one dropdown tool.
writeGoogle Sheets, Docs & Drive
Pass values for a fixed list, source_range for a list kept in other cells, or values=[] to remove the dropdown. The reply echoes the rule as written, in the shape get_sheet_cell reads, so no second read is needed to check it. Writing a value into a dropdown cell is write_sheet, with one of the values exactly as listed.
Call it
In an AI client (MCP)
{
"name": "add_sheet_dropdown",
"arguments": {
"spreadsheet_id": "<spreadsheet_id>",
"range_": "<range_>"
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/add_sheet_dropdown \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"spreadsheet_id":"<spreadsheet_id>","range_":"<range_>"}'Early access — the Tool API is open on request, contact us.
Arguments
| Name | Type | Description |
|---|---|---|
spreadsheet_idrequired | string | the spreadsheet ID (from its URL or get_sheet_metadata). |
range_required | string | the cells to put the dropdown on, an A1 range that names its tab ('Plan!D2:D100'); an open end runs to the edge ('Plan!D2:D', 'Plan!A:D'). |
values | object[] | the options, in order; a number is sent as its text ('1'). values=[] removes the dropdown from range_. Pass this or source_range, not both. |
source_range | string | the cells that hold the options, an A1 range that names its tab ('Lists!A2:A30'); the dropdown follows them when they change. The echo and get_sheet_cell quote a tab name that needs it ("'my-tab'!A2:A30"). |
strict | boolean | True (default) = the sheet rejects a value a person types that is not an option; False = it keeps the value and marks it invalid. Neither applies to write_sheet: a written value is kept as written, so write an option verbatim.Default: true |
Result
Every tool answers {notification, data, human_action}; data carries:
data.dropdown— the rule as written — {values, strict} or {source_range, strict}; null when the dropdown was removed.data.range / data.rowCount / data.colCount— the cells it covers (a count is null on an open side).
Example
add_sheet_dropdown("1ABC...", "Plan!D2:D100",
values=["PENDING", "IN_PROGRESS", "DONE", "CANCELLED"])
add_sheet_dropdown("1ABC...", "Plan!E2:E100", source_range="Lists!A2:A30")
add_sheet_dropdown("1ABC...", "Plan!D2:D100", values=[]) # remove