Medium Risk

GOOGLESHEETS_UPSERT_ROWS

Upsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID). Features: - Auto-adds missing colum...

Single-target operation

Part of the Google Sheets MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.

google-sheets-mcp Write Risk 2/5

AI agents use GOOGLESHEETS_UPSERT_ROWS to create or modify resources in Google Sheets. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call GOOGLESHEETS_UPSERT_ROWS repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Google Sheets.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

google-sheets.yaml
tools:
  GOOGLESHEETS_UPSERT_ROWS:
    rules:
      - action: allow
        rate_limit:
          max: 30
          window: 60

See the full Google Sheets policy for all 38 tools.

Tool Name GOOGLESHEETS_UPSERT_ROWS
Category Write
Risk Level Medium

View all 38 tools →

Agents calling write-class tools like GOOGLESHEETS_UPSERT_ROWS have been implicated in these attack patterns. Read the full case and prevention policy for each:

Browse the full MCP Attack Database →

Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.

What does the GOOGLESHEETS_UPSERT_ROWS tool do? +

Upsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID). Features: - Auto-adds missing columns to sheet - Partial column updates (only update Phone + Status, preserve other columns) - Column order doesn't matter (auto-maps by header name) - Prevents duplicates by matching key column Example inputs: - Contact update: keyColumn='Email', headers=['Email','Phone','Status'], data=[['john@ex.com','555-0101','Active']] - Inventory sync: keyColumn='SKU', headers=['SKU','Stock','Price'], data=[['WIDGET-001',50,9.99],['GADGET-002',30,19.99]] - CRM lead update: keyColumn='Lead ID', headers=['Lead ID','Score','Status'], data=[['L-12345',85,'Hot']] - Partial update: keyColumn='Email', headers=['Email','Phone'] (only updates Phone, preserves Name/Address/etc). It is categorised as a Write tool in the Google Sheets MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on GOOGLESHEETS_UPSERT_ROWS? +

Add a rule in your Intercept YAML policy under the tools section for GOOGLESHEETS_UPSERT_ROWS. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Google Sheets MCP server.

What risk level is GOOGLESHEETS_UPSERT_ROWS? +

GOOGLESHEETS_UPSERT_ROWS is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit GOOGLESHEETS_UPSERT_ROWS? +

Yes. Add a rate_limit block to the GOOGLESHEETS_UPSERT_ROWS rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block GOOGLESHEETS_UPSERT_ROWS completely? +

Set action: deny in the Intercept policy for GOOGLESHEETS_UPSERT_ROWS. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides GOOGLESHEETS_UPSERT_ROWS? +

GOOGLESHEETS_UPSERT_ROWS is provided by the Google Sheets MCP server (google-sheets-mcp). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policies on Google Sheets

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.