Skip to main content
Glama

Find rows

find_rows

Filter Google Sheets rows by column criteria or free text and return only matching rows with absolute row numbers, so you can update them without reading long ranges.

Instructions

Finds rows matching one or more criteria and returns only those, along with their absolute row numbers. Prefer this over read_range on long tables: it avoids pulling hundreds of irrelevant rows into the conversation. The row numbers it returns can be passed straight to update_row.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows returned.
queryNoFree text searched across all columns.
sheetYesTab name, e.g. 'Log'.
whereNoCriteria combined with AND. Omit together with query to return every row.
headerRowNoRow holding the headers.
spreadsheetIdYesSpreadsheet ID, or its full URL. The ID is the segment between /d/ and /edit in the URL.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the return shape (matching rows + absolute row numbers), the efficiency rationale versus read_range, and the chaining contract with update_row. It never states the operation is non-mutating, what happens on zero matches, or that results are capped, so it falls short of a full behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose then routing then chaining, with zero filler. Every sentence changes how the agent behaves.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, when to prefer it, what comes back, and how to reuse the result — strong for a six-parameter read tool with no output schema. Minor gaps remain: the 50-row default/200 max cap and zero-match behavior are only discoverable from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (limit, query, where, sheet, headerRow, spreadsheetId) is already documented in the schema. The description only alludes to 'one or more criteria' without adding filter syntax, AND-combination, or default-limits context, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('finds rows matching one or more criteria') and explicitly says what is returned: only matching rows plus their absolute row numbers. It also distinguishes itself from the sibling read_range, so an agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection guidance: 'Prefer this over read_range on long tables' with the reason (avoids pulling hundreds of irrelevant rows into context). It also names the downstream use ('The row numbers it returns can be passed straight to update_row'), covering the main alternatives an agent would weigh.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.