Ducto

Google Sheets

Put the reporting where someone already reads it

Every other mount is a place your agent reads from or changes. This one is a destination: instead of pasting a table into chat where it dies, the agent writes the numbers into a spreadsheet your team already has open — on the same Google connection, under the same gate.

7 tools3 read4 writemcp.getducto.com/sheets
connect the sheets mount

$ claude mcp add --transport http sheets \

https://mcp.getducto.com/sheets

✓ connected — 7 tools

read-only until you set a policy

What your agent does here

Real Google Sheets work, in conversation

Read a sheet without reading the whole file

Tab names and sizes come back separately from cell values, so an agent can find the right range before pulling any data into its context.

sheets_get_spreadsheetsheets_read_valuessheets_status

Create the report and append to it

Create a spreadsheet with named tabs, then append rows to the end of a range — additive, so a weekly run never overwrites last week.

sheets_create_spreadsheetsheets_append_values

Overwrite or clear a range deliberately

Updating a range replaces what is there; clearing one empties it. Both are separate tools with separate gates, because they are separate decisions.

sheets_update_valuessheets_clear_values

Governed writes

How writes are enforced

Writing rows is the one thing agents own outright — nothing here spends money or reaches a customer, and the sheet's own version history is the undo. Clearing a range is blocked by default: the API tells you which range it emptied and never what was in it.

read-only defaultcaps ← policy rowpreview before applyapproval on flagged classeshash-chained audit

The full request path is on the security architecture page.

Tool reference

Every tool in the sheets mount

Generated from the running gateway's tool registry — this is the complete list, not a highlight reel.

sheets_append_valueswriteAppend rows after the last row of data in a range. Additive — never overwrites an existing cell. ``values`` is a list of rows. ``value_input_option`` ``USER_ENTERED`` parses input like typing into the UI (numbers, dates, formulas); ``RAW`` stores everything as-is. Preview first (``apply=false``), then call again with ``apply=true``.
sheets_clear_valueswriteClear every value in a range. The API keeps no history of cleared cells — recovery is the spreadsheet's own version history, by hand. Blocked by default; preview then apply when the gate allows it.
sheets_create_spreadsheetwriteCreate a spreadsheet, optionally with named sheet tabs. With ``apply=false`` (the default) this returns a preview of the exact request; call again with ``apply=true`` to execute it.
sheets_get_spreadsheetreadSpreadsheet metadata: title, URL, and each sheet tab with its size. Never returns cell data — use ``sheets_read_values`` for that.
sheets_read_valuesreadRead a range of cell values. ``range`` is A1 notation (e.g. ``Sheet1!A1:C10``).
sheets_statusreadReport this token's Google Sheets connector policy and connection health.
sheets_update_valueswriteOverwrite a range of cells with the given rows. Preview first (``apply=false``) — the preview is the exact body an apply will send — then call again with ``apply=true``.