# add_sheet_dropdown (https://sellersheetai.com/docs/mcp-api/tools/add_sheet_dropdown)

> Set, replace or remove the dropdown on a range — the one dropdown tool.

Access: **WRITE** · toolset google_workspace · family null

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

MCP tool call:

```json
{
  "name": "add_sheet_dropdown",
  "arguments": {
    "spreadsheet_id": "<spreadsheet_id>",
    "range_": "<range_>"
  }
}
```

Tool API (early access — contact us):

```bash
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_>"}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `spreadsheet_id` | string | yes | the spreadsheet ID (from its URL or get_sheet_metadata). |
| `range_` | string | yes | 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. |

## Result

- `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