Skip to main content
Glama
Runemal

Google Sheets and Drive MCP

by Runemal

Google Sheets and Drive MCP

Локальный пакет с двумя MCP-серверами по stdio:

  • google-sheets-mcp предоставляет 25 инструментов для предсказуемого чтения, изменения и анализа Google-таблиц;

  • google-drive-mcp предоставляет поиск и перечисление таблиц, а также отдельный чувствительный инструмент для выдачи editor-доступа к разрешённым файлам.

Инструменты MCP

  • health — диагностика конфигурации и лимитов;

  • get_spreadsheet — метаданные таблицы и список листов;

  • create_sheet — создание пустого листа с ограниченным начальным размером;

  • rename_sheet — переименование существующего листа;

  • copy_sheet — полное дублирование листа внутри той же таблицы;

  • read_range — чтение ограниченного A1-диапазона;

  • batch_read_ranges — чтение нескольких ограниченных диапазонов одним API-запросом;

  • read_sheet — безопасное постраничное чтение листа с next_start_row;

  • write_range — запись прямоугольной матрицы значений;

  • batch_write_ranges — запись нескольких прямоугольных диапазонов одним API-запросом;

  • clear_range — очистка значений в одном ограниченном диапазоне;

  • append_rows — добавление строк в конец табличного диапазона;

  • unpivot_range — преобразование широкой таблицы в длинную с записью результата;

  • create_pivot_table — создание нативной сводной таблицы Google Sheets;

  • create_chart — создание нативной диаграммы Google Sheets;

  • set_basic_filter и clear_basic_filter — установка и снятие фильтра;

  • sort_range — сортировка по одному или нескольким заголовкам;

  • add_conditional_format — цветовое условное форматирование;

  • freeze_panes — закрепление верхних строк и левых колонок;

  • write_formulas — запись прямоугольной матрицы формул;

  • insert_image — вставка изображения внутрь ячейки по HTTP(S)-URL;

  • copy_range — копирование значений, формул, форматов и правил;

  • grant_read_access — выдача пользователю права reader на всю таблицу;

  • set_sheet_visibility — скрытие и возврат листа.

create_chart поддерживает все нативные семейства диаграмм Google Sheets: COLUMN, BAR, LINE, AREA, SCATTER, COMBO, STEPPED_AREA, PIE, HISTOGRAM, BUBBLE, WATERFALL, SCORECARD, CANDLESTICK, TREEMAP и ORG. create_pivot_table поддерживает группировки по строкам и столбцам, итоги и стандартные функции агрегации: SUM, COUNT, AVERAGE, MIN, MAX и другие.

Для условного форматирования используются цвета #RRGGBB. Например, два вызова с условиями NUMBER_GREATER и NUMBER_LESS позволяют выделить положительные значения зелёным, а отрицательные — красным.

batch_read_ranges принимает список bounded A1-диапазонов и применяет лимит чтения к их суммарному потенциальному размеру. batch_write_ranges принимает список объектов {"range": ..., "values": ...} и применяет лимит записи к суммарному числу ячеек во всех прямоугольных матрицах. Порядок диапазонов сохраняется; batch-write является идемпотентной перезаписью указанных диапазонов.

clear_range требует явно указать лист и bounded A1-диапазон, например 'Data'!A1:D20. Операция учитывает общий write-лимит и очищает только значения: форматирование, data validation, комментарии и размеры листа не изменяются.

create_sheet создаёт пустой лист с настраиваемым числом строк и колонок; начальная сетка ограничена одним миллионом ячеек и 18 278 колонками. rename_sheet сохраняет данные, позицию и свойства листа. copy_sheet дублирует весь лист только внутри той же Google-таблицы, включая данные и оформление; копирование между разными spreadsheet_id не выполняется.

set_basic_filter создаёт один нативный Basic Filter и заменяет предыдущий Basic Filter листа. clear_basic_filter снимает его. freeze_panes принимает число закреплённых строк и колонок; нулевые значения снимают закрепление.

write_formulas принимает только строки, начинающиеся с =. insert_image использует нативную формулу IMAGE() и требует URL, доступный Google; локальные файлы сначала нужно разместить в доступном хранилище. Поддерживаются режимы вписывания, растягивания, исходного и пользовательского размера.

copy_range работает внутри одной Google-таблицы и поддерживает PASTE_VALUES, PASTE_FORMULA, PASTE_FORMAT, PASTE_NORMAL, перенос data validation, условного форматирования и транспонирование. Для копирования между разными таблицами можно использовать связку read_rangewrite_range.

grant_read_access работает через Google Drive API и выдаёт доступ ко всему файлу таблицы — Google не поддерживает отдельные права чтения для одного листа. Для работы с существующими файлами, которые были расшарены на service account, Drive-клиенту требуется полный scope https://www.googleapis.com/auth/drive: узкий drive.file такие файлы не видит. Сервисный аккаунт также должен иметь право делиться файлом, а доменная политика Google Workspace может запрещать внешний доступ.

set_sheet_visibility не является механизмом защиты: скрытый лист остаётся частью таблицы и доступен через API. Инструмент не позволяет скрыть последний видимый лист и поддерживает обратную операцию через hidden=false.

Related MCP server: Google Sheets MCP Server

Google Drive MCP

Отдельный google-drive-mcp предоставляет четыре инструмента:

  • health — диагностика credentials и собственных границ безопасности;

  • list_spreadsheets(page_size=50, page_token=null) — перечисление доступных Google-таблиц с пагинацией;

  • search_spreadsheets(name_query, page_size=50, page_token=null) — безопасный поиск по буквальной подстроке имени без произвольного Drive query;

  • grant_edit_access(file_id, email, send_notification_email=false) — выдача пользователю фиксированной роли writer на весь файл.

Read-инструменты возвращают только file_id, имя и время последнего изменения. Размер страницы ограничен диапазоном 1–100. Если allowlist пуст, используются нативные page tokens Google Drive. При включённом allowlist сервер запрашивает только явно разрешённые ID через files.get, фильтрует неподходящие и недоступные файлы и использует собственный непрозрачный page token.

Если permission отсутствует, сервер создаёт его. Существующий reader или commenter повышается до writer; writer, fileOrganizer, organizer и owner возвращают успешный no-op и никогда не понижаются. Произвольные роли, передача владения, доменные permissions, revoke и downgrade не поддерживаются. Google Drive не позволяет выдать editor-доступ только к одному листу или диапазону: операция меняет доступ ко всему файлу.

Требования

  • Python 3.12–3.14

  • uv

  • Google Cloud service account с включёнными Google Sheets API и Google Drive API

Установка

UV_CACHE_DIR=.uv-cache uv sync

Скопируйте .env.example в локальный .env либо экспортируйте переменные в окружение MCP-клиента. JSON-ключ и .env нельзя добавлять в репозиторий.

Подготовка Google Cloud

  1. Включите Google Sheets API в нужном Google Cloud project.

  2. Создайте service account и скачайте JSON-ключ в каталог вне репозитория.

  3. Расшарьте тестовую таблицу на email service account с нужными правами.

  4. Установите GOOGLE_APPLICATION_CREDENTIALS в абсолютный путь к ключу.

Запуск

UV_CACHE_DIR=.uv-cache uv run google-sheets-mcp
UV_CACHE_DIR=.uv-cache uv run google-drive-mcp

Оба сервера используют stdio: обычный вывод зарезервирован под MCP-протокол. Диагностический инструмент health проверяет конфигурацию без обращения к Google API.

Подключение к Codex

Codex CLI, IDE extension и desktop app используют общую MCP-конфигурацию. Зарегистрировать локальный сервер можно командой:

codex mcp add google_sheets \
  --env GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
  --env GOOGLE_SHEETS_MAX_READ_CELLS=100000 \
  --env GOOGLE_SHEETS_MAX_WRITE_CELLS=10000 \
  --env GOOGLE_SHEETS_REQUEST_TIMEOUT_SECONDS=30 \
  --env GOOGLE_SHEETS_MAX_RETRIES=2 \
  --env GOOGLE_SHEETS_RETRY_BASE_DELAY_SECONDS=0.5 \
  --env GOOGLE_SHEETS_READ_ONLY=true \
  --env GOOGLE_SHEETS_ALLOWED_SPREADSHEET_IDS=spreadsheet-id \
  -- /absolute/path/to/google_sheets_tool/.venv/bin/google-sheets-mcp

codex mcp add google_drive \
  --env GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
  --env GOOGLE_DRIVE_REQUEST_TIMEOUT_SECONDS=30 \
  --env GOOGLE_DRIVE_READ_ONLY=false \
  --env GOOGLE_DRIVE_ALLOWED_FILE_IDS=file-id \
  -- /absolute/path/to/google_sheets_tool/.venv/bin/google-drive-mcp

Проверить регистрацию:

codex mcp get google_sheets
codex mcp get google_drive
codex mcp list

После изменения MCP-конфигурации перезапустите Codex или IDE extension. В TUI список подключённых серверов доступен через /mcp. JSON-ключ не следует копировать в репозиторий или записывать непосредственно в config.toml; конфигурация хранит только абсолютный путь к нему.

Эквивалентная ручная конфигурация в ~/.codex/config.toml:

[mcp_servers.google_sheets]
command = "/absolute/path/to/google_sheets_tool/.venv/bin/google-sheets-mcp"
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true

[mcp_servers.google_sheets.env]
GOOGLE_APPLICATION_CREDENTIALS = "/absolute/path/to/service-account.json"
GOOGLE_SHEETS_MAX_READ_CELLS = "100000"
GOOGLE_SHEETS_MAX_WRITE_CELLS = "10000"
GOOGLE_SHEETS_REQUEST_TIMEOUT_SECONDS = "30"
GOOGLE_SHEETS_MAX_RETRIES = "2"
GOOGLE_SHEETS_RETRY_BASE_DELAY_SECONDS = "0.5"
GOOGLE_SHEETS_READ_ONLY = "true"
GOOGLE_SHEETS_ALLOWED_SPREADSHEET_IDS = "spreadsheet-id"

[mcp_servers.google_drive]
command = "/absolute/path/to/google_sheets_tool/.venv/bin/google-drive-mcp"
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true

[mcp_servers.google_drive.env]
GOOGLE_APPLICATION_CREDENTIALS = "/absolute/path/to/service-account.json"
GOOGLE_DRIVE_REQUEST_TIMEOUT_SECONDS = "30"
GOOGLE_DRIVE_READ_ONLY = "false"
GOOGLE_DRIVE_ALLOWED_FILE_IDS = "file-id"

Границы безопасности

GOOGLE_SHEETS_READ_ONLY=true запускает сервер с Google scope spreadsheets.readonly, убирает изменяющие инструменты из MCP discovery и дополнительно отклоняет прямые попытки их вызова. Доступными остаются health, get_spreadsheet, read_range, batch_read_ranges и read_sheet.

GOOGLE_SHEETS_ALLOWED_SPREADSHEET_IDS принимает разделённый запятыми список точных spreadsheet_id. Если список непустой, любой инструмент отклоняет работу с другими таблицами до создания Google API-клиента. Пустое значение сохраняет режим без ограничений. Параметры можно совмещать:

GOOGLE_SHEETS_READ_ONLY=true
GOOGLE_SHEETS_ALLOWED_SPREADSHEET_IDS=spreadsheet-id-1,spreadsheet-id-2

Инструмент health сообщает только состояние режимов и количество разрешённых таблиц, но не раскрывает сами идентификаторы.

GOOGLE_DRIVE_READ_ONLY=true убирает grant_edit_access из discovery и блокирует его прямой вызов; Drive-клиент получает scope drive.metadata.readonly вместо полного drive. GOOGLE_DRIVE_ALLOWED_FILE_IDS принимает разделённый запятыми список точных file_id. При непустом списке list/search обращаются только к этим ID, а editor-доступ к любому другому файлу отклоняется до создания API-клиента. Пустой список разрешает любой видимый service account файл. Drive health сообщает только факт включения allowlist и число файлов, не раскрывая ID.

Повторы временных ошибок

Для HTTP 429, 500, 502, 503 и 504 сервер выполняет ограниченный exponential backoff. По умолчанию разрешены два повтора с задержками 0,5 и 1 секунду. GOOGLE_SHEETS_MAX_RETRIES=0 полностью отключает повторы; допустимый диапазон — от 0 до 5. Начальная задержка задаётся через GOOGLE_SHEETS_RETRY_BASE_DELAY_SECONDS: больше 0 и не более 60 секунд.

Автоматически повторяются только чтения и операции с однозначным конечным состоянием: write_range (включая формулы и изображения), batch_write_ranges, clear_range, rename_sheet, установка и снятие Basic Filter, freeze panes и visibility. Сервер никогда автоматически не повторяет append_rows, grant_read_access, create_sheet, copy_sheet, создание диаграмм, pivot-таблиц и условных правил, сортировку или копирование диапазона.

google-drive-mcp также не повторяет create/update permission. После timeout вызывающая сторона должна сначала проверить фактическую роль и только затем решать, нужен ли отдельный ручной повтор.

Ограничения

  • сервер рассчитан на локальный однопользовательский запуск по stdio;

  • авторизация выполняется только через Google Cloud service account;

  • allowlist ограничивает таблицы целиком, но не отдельные листы или диапазоны;

  • grant_read_access использует полный Google Drive scope и меняет доступ ко всему файлу, а не к одному листу;

  • grant_edit_access находится только в google-drive-mcp, всегда запрашивает роль writer для всего файла и требует capability canShare;

  • insert_image требует HTTP(S)-URL, доступный серверам Google;

  • сервер не создаёт и не удаляет Google-таблицы целиком;

  • multi-step операции не являются транзакциями Google Sheets;

  • после timeout неоднозначной операции вызывающая сторона должна проверить фактическое состояние перед ручным повтором.

Разработка

UV_CACHE_DIR=.uv-cache uv run ruff check .
UV_CACHE_DIR=.uv-cache uv run pytest
UV_CACHE_DIR=.uv-cache uv build
UV_CACHE_DIR=.uv-cache .venv/bin/python scripts/check_release_artifacts.py
UV_CACHE_DIR=.uv-cache .venv/bin/python scripts/smoke_package.py

GitHub Actions выполняет те же проверки на Python 3.12 для каждого push и pull request: устанавливает зависимости строго из uv.lock, запускает Ruff и Pytest, затем собирает sdist и wheel и устанавливает wheel в чистое временное окружение.

Явный smoke-тест чтения не выводит значения ячеек:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_read.py

Smoke-тест записи создаёт или переиспользует изолированный лист _mcp_test, очищает только A:Z на этом листе и проверяет запись чтением обратно:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_write.py

Аналитический smoke-тест пересоздаёт только _mcp_test, затем проверяет постраничное чтение, unpivot, нативную сводную таблицу и диаграмму:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_analytics.py

Smoke-тест представления проверяет все типы диаграмм, фильтр, сортировку, условное форматирование и закрепление панелей:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_presentation.py

Smoke-тест содержимого проверяет формулы, копирование значений и формул, а также вставку изображения в ячейку:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_content.py

Smoke-тест доступа проверяет Drive capability canShare, временно скрывает _mcp_test, подтверждает состояние и возвращает лист видимым:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_access.py

Отдельный smoke-тест безопасно выдаёт право чтения: сначала проверяет наличие permission, не создаёт дубликат и подтверждает результат чтением обратно. Уведомление пользователю не отправляется:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
GOOGLE_SHEETS_TEST_READER_EMAIL=user@example.com \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_grant_access.py

Полный последовательный прогон всех smoke-тестов:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
GOOGLE_SHEETS_TEST_READER_EMAIL=user@example.com \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_all.py

Прогон изменяет только тестовый лист _mcp_test. Аналитические, presentation и content-сценарии пересоздают этот лист, поэтому хранить на нём рабочие данные нельзя.

Проверка всех инструментов через настоящий MCP stdio-протокол:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
GOOGLE_SHEETS_TEST_READER_EMAIL=user@example.com \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_mcp_stdio.py

Отдельный Drive MCP smoke проверяет discovery четырёх инструментов, list/search строго внутри allowlist, выдачу writer-доступа без уведомления и восстановление исходного permission в finally:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_DRIVE_TEST_FILE_ID=file-id \
GOOGLE_DRIVE_TEST_EDITOR_EMAIL=user@example.com \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_drive_mcp_stdio.py

Полный release-smoke объединяет Sheets API, оба MCP stdio сценария и временные проверки permissions. Подробный вывод дочерних сценариев подавляется, а исходный permission тестового пользователя восстанавливается в finally:

GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json \
GOOGLE_SHEETS_TEST_SPREADSHEET_ID=spreadsheet-id \
GOOGLE_SHEETS_TEST_READER_EMAIL=user@example.com \
UV_CACHE_DIR=.uv-cache uv run python scripts/smoke_release.py

Лицензия и релиз

Проект распространяется по лицензии MIT. История изменений находится в CHANGELOG.md, а обязательные проверки перед публикацией — в RELEASE_CHECKLIST.md.

Полный план и границы MVP описаны в PLAN.md.

Available Tools

25 tools
add_conditional_formatC

Add a native conditional-formatting rule using #RRGGBB colors.

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNo
rangeYes
rule_indexNo
text_colorNo
condition_typeYes
spreadsheet_idYes
background_colorNo
condition_valuesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as whether the rule overrides existing ones, permissions required, or immediate effect. It only states the action without behavioral details.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it lacks structure and does not earn its space by providing sufficient detail for the tool's complexity. It is too brief for an 8-parameter tool.

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

Completeness1/5

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

The tool has 8 parameters, no annotations, no schema descriptions, yet the description only mentions colors. It fails to explain critical parameters like condition_type, condition_values, range, or the output schema, leaving the agent with insufficient context.

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

Parameters1/5

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

With 0% schema description coverage, the description must compensate but only references '#RRGGBB colors', which weakly explains two of eight parameters (text_color and background_color). Most parameters like condition_type, condition_values, rule_index, etc., are not explained at all.

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

Purpose4/5

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

The description clearly states the verb 'Add' and resource 'native conditional-formatting rule', and specifies color format '#RRGGBB'. It distinguishes the tool's function from siblings like 'set_basic_filter' or 'create_pivot_table', but does not explicitly contrast with them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No prerequisites, contexts, or exclusions are provided. The description simply states what the tool does without usage context.

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

append_rowsC

Append rows to the table detected in an A1 range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
valuesYes
spreadsheet_idYes
insert_data_optionNoINSERT_ROWS
value_input_optionNoUSER_ENTERED

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It does not mention whether rows are inserted at the end, how existing data is handled, or required permissions.

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

Conciseness3/5

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

The description is concise in a single sentence, but it is too terse and lacks structure. It could be improved with a brief overview and purpose.

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

Completeness2/5

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

Given the tool has 5 parameters and no annotations, the description fails to cover behavioral traits, parameter details, or output characteristics. The output schema exists but the description does not reference it.

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

Parameters1/5

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

The schema coverage is 0%, and the description adds no explanation for the five parameters. The agent has no understanding of what 'values', 'insert_data_option', or 'value_input_option' mean beyond schema definitions.

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

Purpose4/5

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

The description specifies the action 'append rows' and the target 'table detected in an A1 range', which is clear. However, it does not differentiate from sibling tools like write_range or batch_write_ranges.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as write_range or batch_write_ranges. The description lacks context about preconditions or typical use cases.

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

batch_read_rangesC

Read several explicitly bounded A1 ranges in one API request.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangesYes
spreadsheet_idYes
major_dimensionNoROWS
value_render_optionNoFORMATTED_VALUE

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Minimal disclosure beyond 'one API request'; no mention of behavior like range ordering, limits, or error handling. No annotations provided to supplement.

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

Conciseness3/5

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

Single sentence, concise but omits critical details. Could be more structured to cover usage and parameters.

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

Completeness2/5

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

Given the tool's complexity (batch operation, multiple parameters, output schema), the description is insufficiently complete. Missing guidance on range format, options, and batching behavior.

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

Parameters2/5

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

Only the 'ranges' parameter is described ('explicitly bounded A1 ranges'). Other parameters (spreadsheet_id, major_dimension, value_render_option) are not mentioned. With 0% schema coverage, the description should add more meaning.

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

Purpose4/5

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

The description clearly states it reads multiple A1 ranges in one request, distinguishing it from read_range which reads a single range. However, it could be more explicit about the batch nature.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like read_range; the batching benefit is implied but not stated explicitly.

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

batch_write_rangesB

Write several rectangular ranges in one idempotent API request.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
spreadsheet_idYes
value_input_optionNoUSER_ENTERED

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavioral traits. It only mentions idempotency, but omits critical details like side effects (e.g., overwriting data), authentication needs, rate limits, or error behavior. Significant gaps remain.

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

Conciseness4/5

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

The description is a single sentence with no wasted words, achieving high conciseness. However, it sacrifices completeness for brevity. It could include more detail while remaining efficient, hence not a 5.

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

Completeness2/5

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

Despite having an output schema (not shown), the description does not explain return values, the structure of the data array, or the behavior of the optional value_input_option parameter. Given the tool's complexity (nested objects, enums), the description is far from complete.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must elaborate on parameters. It provides zero information about spreadsheet_id, data (the array of BatchWriteRange objects), or value_input_option (though an enum is defined). The agent cannot infer correct parameter usage from the description alone.

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?

The description clearly states the action 'write' and the resource 'several rectangular ranges', and includes 'idempotent' as a key qualifier. It distinguishes this tool from siblings like write_range (single range) and batch_read_ranges (read), making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies use for batch writing multiple ranges, but it does not explicitly state when to use this tool versus alternatives like write_range, nor does it mention any prerequisites or when not to use it (e.g., for non-rectangular writes). The context is clear but lacks exclusions.

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

clear_basic_filterC

Remove the native basic filter from a sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as what happens if no filter exists, whether data is affected, or if any permissions are required. This leaves the agent with significant uncertainty about the tool's behavior.

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

Conciseness4/5

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

The description is a single, concise sentence. It is efficient and front-loaded with the key action. However, it could include slightly more context without becoming verbose.

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

Completeness3/5

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

For a simple tool with 2 parameters and no annotations, the description is minimally adequate. It defines the action but lacks details on behavior when the filter doesn't exist, return values (though output schema exists), or edge cases. It does not fully leverage the available context.

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

Parameters1/5

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

The input schema has 2 required parameters with 0% description coverage. The description does not add any meaning beyond the parameter names (spreadsheet_id, sheet_name). No formats, constraints, or examples are provided.

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?

The description clearly states the verb 'Remove' and the object 'native basic filter' from a 'sheet', making it unambiguous. It effectively distinguishes from the sibling tool 'set_basic_filter' which adds a filter.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'set_basic_filter' or conditions like the filter must exist. It does not mention prerequisites or exclusions.

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

clear_rangeB

Clear values from one bounded, sheet-qualified A1 range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided. The description only says 'Clear values', but it does not disclose whether formatting, formulas, or data validation are preserved. It also does not mention authorization needs or whether the operation is reversible. For a potentially destructive action, this is insufficient.

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

Conciseness4/5

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

The description is only 8 words in a single sentence, which is concise. The verb 'Clear' is front-loaded. However, it is so brief that it sacrifices necessary detail; therefore it earns a 4 rather than a 5.

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

Completeness3/5

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

The tool has a simple purpose and an output schema exists, so return values are likely documented elsewhere. However, for a destructive operation, details about side effects (e.g., formatting preservation) and required permissions are missing. An agent may need to rely on external knowledge, making completeness only adequate.

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

Parameters2/5

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

Schema description coverage is 0%, so parameters 'range' and 'spreadsheet_id' have no documentation. The description adds minimal value: it qualifies 'range' as a 'bounded, sheet-qualified A1 range', but does not explain spreadsheet_id or provide formatting constraints. The agent must infer parameter meaning from the name alone.

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?

The description clearly states the verb ('clear') and the resource ('values from ... range'). It specifies 'one bounded, sheet-qualified A1 range', which distinguishes it from sibling tools like read_range, sort_range, or freeze_panes. No ambiguity about what action is performed.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as write_range (to overwrite values) or delete_sheet. No mention of prerequisites, limitations, or typical use cases. An agent has no context for decision-making beyond the tool name.

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

copy_rangeC

Copy values, formulas, formatting, or rules within one spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
paste_typeNoPASTE_VALUES
orientationNoNORMAL
source_rangeYes
spreadsheet_idYes
target_start_cellYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so description carries full burden. It only states basic copy behavior, omitting details like target overwrite, reversibility, or permissions. Insufficient for a mutation tool.

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?

Single sentence with no redundancy. Front-loads action and scope. Every word earns its place.

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

Completeness2/5

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

Tool has 5 parameters and a meaningful operation, yet description is minimal. No explanation of output (though output schema exists), range formats, or paste behavior. Incomplete given complexity.

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

Parameters1/5

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

Schema has 0% description coverage for 5 parameters. Description does not explain any parameter (e.g., source_range format, paste_type enum, orientation). Relies entirely on schema, which lacks descriptions.

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?

The description clearly states the verb (Copy) and the resource (within one spreadsheet), listing specific items (values, formulas, formatting, or rules). It distinguishes from siblings like copy_sheet or write_range.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., copy_sheet). Does not mention constraints like same-spreadsheet-only or when to prefer other tools.

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

copy_sheetC

Duplicate one complete sheet within the same spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_sheet_nameYes
spreadsheet_idYes
source_sheet_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing details like whether formatting, formulas, or data validation are copied, or if the source sheet remains unchanged. The minimal description lacks behavioral context.

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

Conciseness4/5

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

The description is a single, efficient sentence that captures the core functionality. It is front-loaded and to the point. However, it could include a bit more context without becoming verbose.

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

Completeness2/5

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

Given the existence of an output schema, the description could be slightly lighter on return details, but it fails to mention important context such as that the source sheet is preserved, cannot copy to another spreadsheet, or any constraints on sheet names. The description is inadequate for a complete understanding.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain any of the three parameters beyond their names. It adds no semantic value, e.g., it does not specify that 'source_sheet_name' must match an existing sheet name exactly or that 'new_sheet_name' must be unique.

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?

The description uses a specific verb 'duplicate' and explicitly names the resource 'sheet' and context 'within the same spreadsheet'. It clearly distinguishes from sibling tools like 'copy_range' (copies a range, not entire sheet) and 'create_sheet' (creates new blank sheet).

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives. For instance, it doesn't state that the copy must be within the same spreadsheet or mention when to use 'copy_range' instead. Users must infer usage from the description alone.

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

create_chartC

Create a native chart using the first source column as its domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
chart_typeNoCOLUMN
anchor_cellYes
header_rowsNo
source_rangeYes
width_pixelsNo
height_pixelsNo
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

The description only reveals that the domain comes from the first source column, but fails to disclose whether the tool modifies data, requires permissions, or has side effects. With no annotations, the burden is high, and this is insufficient.

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

Conciseness3/5

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

The description is a single sentence that is front-loaded, but it is too brief to be considered efficient given the tool's complexity. It sacrifices substance for brevity.

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

Completeness1/5

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

With 8 parameters, 3 required, no schema descriptions, and no output schema details, the description is woefully incomplete. An agent cannot reliably invoke this tool without additional documentation.

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

Parameters1/5

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

The description does not explain any of the 8 parameters, and the schema has 0% coverage. Users are left to infer the meaning of title, chart_type, anchor_cell, etc., without any added context.

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?

The description clearly states the verb 'Create' and resource 'native chart', and adds specificity with 'using the first source column as its domain.' This distinguishes it from sibling tools like create_pivot_table and other non-chart tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or exclusion criteria mentioned. The description lacks context for decision-making.

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

create_pivot_tableC

Create a native Google Sheets pivot table from a bounded source range.

ParametersJSON Schema
NameRequiredDescriptionDefault
row_columnsYes
show_totalsNo
target_cellYes
source_rangeYes
value_columnsYes
column_columnsNo
spreadsheet_idYes
summarize_functionNoSUM

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'create a pivot table' without detailing side effects, permissions needed, or error handling for invalid ranges.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks necessary detail. It could be restructured to include key parameter info while remaining succinct.

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

Completeness1/5

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

For a tool with 8 parameters, 5 required, and a complex operation, the description is severely incomplete. It does not address parameter arrays, default values, or return value (despite having an output schema).

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

Parameters1/5

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

Schema parameter descriptions have 0% coverage, and the tool description does not explain any parameters (e.g., row_columns, value_columns, summarize_function). The agent has no understanding of what each parameter means.

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?

The description uses a specific verb 'Create' and identifies the resource as 'native Google Sheets pivot table', with a constraint 'from a bounded source range'. This clearly differentiates it from sibling tools like read_range or create_chart.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Lacks context such as prerequisites (e.g., data must be contiguous) or when not to use (e.g., if data is not tabular).

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

create_sheetC

Create one empty sheet with a bounded initial grid size.

ParametersJSON Schema
NameRequiredDescriptionDefault
row_countNo
sheet_nameYes
column_countNo
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions 'bounded' but does not clarify limits, side effects on other sheets, authorization needs, or what the output contains (though an output schema exists). Significant gaps remain.

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

Conciseness2/5

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

The description is extremely short but omits critical information; it is under-specified rather than concise. A single sentence is insufficient for a tool with 4 parameters and no parameter descriptions.

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

Completeness2/5

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

Given the complexity (4 params, no parameter docs, no annotations) and the presence of an output schema, the description should provide more context about usage and behavior. It does not adequately compensate for the lack of structured documentation.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The tool description does not explain any parameter beyond its name, so the agent cannot infer meaning or constraints for row_count, column_count, etc.

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?

The description clearly states the verb 'create' and resource 'sheet', specifying it creates an empty sheet with a bounded initial grid size, which distinguishes it from siblings like copy_sheet or read_sheet.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like copy_sheet, or what prerequisites are needed (e.g., existing spreadsheet). The agent receives no context for decision-making among siblings.

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

freeze_panesA

Freeze top rows and left columns; use zero counts to unfreeze.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYes
frozen_rowsNo
frozen_columnsNo
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It covers the core action and the unfreeze mechanism, but omits any safety considerations, permission requirements, or side effects. The behavior is minimally explained.

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?

The description is a single concise sentence that front-loads the purpose and includes a key usage instruction. Every word is necessary and contributes to understanding.

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

Completeness3/5

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

Given the tool's simplicity and the presence of an output schema, the description covers the essential freeze/unfreeze functionality. However, it does not mention required parameters or the sheet-specific context, making it marginally complete for a zero-annotation, zero-schema-coverage scenario.

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 0%, so the description must compensate. It adds meaning to 'frozen_rows' and 'frozen_columns' by linking them to 'top rows and left columns' and explaining zero counts for unfreezing, but does not clarify the required parameters 'spreadsheet_id' and 'sheet_name'.

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?

The description uses a specific verb 'freeze' and resource 'top rows and left columns', clearly distinguishing the tool from siblings like 'clear_range' or 'sort_range'. It also covers the dual purpose of freezing and unfreezing via zero counts.

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

Usage Guidelines4/5

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

The description explicitly states when to use zero counts (to unfreeze), providing clear context. It does not elaborate on when not to use the tool or compare with alternatives, but since no sibling tool handles freeze/unfreeze, the guidance is sufficient.

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

get_spreadsheetA

Get spreadsheet metadata and its list of sheets.

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYes
include_grid_propertiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided. Description indicates read operation, but no details on rate limits, auth needs, or side effects. Minimal but adequate for a simple get.

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

Conciseness4/5

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

Single concise sentence. To the point, though could mention that output includes sheet IDs for context.

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?

Has output schema, so return values covered. Description covers main aspects (metadata + sheets). Lacks mention of optional parameters but sufficient for a read tool.

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

Parameters2/5

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

No parameter descriptions in schema or description. Schema coverage 0%. Description does not explain include_grid_properties or add value beyond parameter names.

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?

Description clearly states it gets spreadsheet metadata and sheet list. Verb 'get' and resource 'spreadsheet' are specific. Distinguishable from siblings like read_sheet or clear_range.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use. Implied that it's for retrieving overall structure, but no guidance on selecting over siblings like read_sheet.

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

grant_read_accessC

Grant a user reader access to the entire spreadsheet through Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
spreadsheet_idYes
send_notification_emailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden but only states the high-level effect. It omits important behaviors such as whether the user is added as a collaborator, whether a notification email is sent (though hinted by the schema parameter), and what happens if access already exists.

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

Conciseness3/5

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

The description is a single concise sentence, but it is too brief to be informative. It would benefit from additional detail without losing conciseness.

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

Completeness2/5

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

Given the tool's purpose (sharing) and the presence of an output schema, the description lacks crucial context such as required permissions, side effects on existing permissions, and behavior for invalid inputs. It is insufficient for a complete understanding.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no information about the parameters. Parameter names are self-explanatory, but the description fails to clarify format, constraints, or usage beyond the schema titles.

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?

The description clearly and specifically states the action (grant), resource (reader access to the entire spreadsheet), and method (through Google Drive). It effectively distinguishes the tool from siblings, which focus on data manipulation rather than sharing.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., required permissions), and no exclusions. The agent is left without context for decision-making.

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

healthA

Report server status and whether Google credentials are configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; description only says 'reports' but doesn't disclose read-only nature, required permissions, or output behavior.

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

Conciseness4/5

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

Single, clear sentence with no fluff, but could benefit from bullet points for structure.

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?

For a zero-parameter health tool with output schema, description is sufficient; doesn't need to detail return values.

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

Parameters4/5

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

No parameters; baseline 4 applies as description doesn't need to add param info.

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?

The description clearly states it reports server status and credential configuration, differentiating it from sibling spreadsheet tools.

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

Usage Guidelines3/5

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

No explicit when-to-use or exclusions, but context implies it's for checking server/credential health before other operations.

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

insert_imageC

Insert an in-cell image from an HTTP(S) URL using IMAGE().

ParametersJSON Schema
NameRequiredDescriptionDefault
cellYes
modeNoFIT
image_urlYes
width_pixelsNo
height_pixelsNo
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It only states the basic action without disclosing side effects, error cases, or constraints (e.g., URL must return valid image, supported formats, size limits).

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it omits necessary details. It is not excessively verbose, but the brevity sacrifices clarity.

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

Completeness2/5

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

Given six parameters (three required), an output schema (not shown), and no annotation, the description is insufficient. It does not cover behaviors, return format, or parameter relationships.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the six parameters (e.g., what 'mode' does, how 'width_pixels' interacts). The agent must infer entirely from parameter names and enums.

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?

The description clearly states the verb 'Insert' and resource 'in-cell image from an HTTP(S) URL using IMAGE()', which is specific and distinguishes this tool from sibling tools (none of which deal with images).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or context. The agent receives no help in deciding between this and other tools.

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

read_rangeC

Read an explicitly bounded A1 range from a spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
spreadsheet_idYes
major_dimensionNoROWS
value_render_optionNoFORMATTED_VALUE

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It only states the basic action, missing details like read-only behavior, effect of parameters, or any side effects. Minimal disclosure.

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

Conciseness3/5

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

The description is concise with a single sentence, but it is too minimal and omits important details. It is not overly verbose, but under-specified.

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

Completeness2/5

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

Given 4 parameters and no description of output (though output schema exists), the description is insufficient. It does not cover parameter roles or behavioral nuance needed for effective use.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no information about parameters. The schema itself is clear but the description does not assist the agent in understanding parameter semantics beyond the schema.

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

Purpose4/5

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

The description clearly states the tool reads an A1 range from a spreadsheet, distinguishing it from siblings like read_sheet (likely reads entire sheet) and batch_read_ranges (multiple ranges). The verb 'Read' and resource 'explicitly bounded A1 range' are specific.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or usage context provided.

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

read_sheetC

Read a safe page of a whole sheet; use next_start_row to continue.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_rowsNo
start_rowNo
end_columnNo
sheet_nameYes
start_columnNoA
spreadsheet_idYes
value_render_optionNoFORMATTED_VALUE

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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

The description hints at pagination via 'use next_start_row to continue' and suggests a 'safe' (possibly bounded) read, but does not disclose request limits, output behavior, or read-only nature. With no annotations, the burden is higher but only partially met.

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

Conciseness4/5

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

Single sentence, 13 words, efficient and front-loaded. Could include more detail without harming conciseness, but current length is appropriate.

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

Completeness2/5

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

With 7 parameters, no descriptions, and no annotations, the description is too sparse. It omits crucial context like pagination mechanics, parameter ranges, and output format (though output schema exists, description doesn't leverage it).

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no parameter explanations. It mentions 'next_start_row' which is not a parameter (actual param is start_row). No additional meaning beyond the bare schema.

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

Purpose4/5

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

The description clearly states the tool reads a sheet, using verb 'Read' and resource 'sheet', and distinguishes from siblings like read_range by implying it reads the whole sheet in pages. However, 'safe page' is vague, slightly reducing clarity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like read_range or batch_read_ranges. Only mentions using next_start_row for continuation, but no context on when to stop or switch tools.

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

rename_sheetA

Rename one sheet without changing its data or position.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYes
new_sheet_nameYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits. It states that data and position are unchanged, which is the key behavioral guarantee. It does not mention any side effects or prerequisites (e.g., unique new name), but for a simple rename, the provided detail is sufficient to avoid misunderstanding.

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?

The description is a single, well-structured sentence that immediately conveys the core action and its constraints. Every word is necessary, with no redundancy or filler. It is front-loaded with the verb and resource.

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

Completeness3/5

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

Given the tool's simplicity (3 required parameters, no nested objects) and the presence of an output schema (so return values need not be explained), the description is minimally adequate. However, it omits parameter details and does not specify constraints like unique new name, leaving gaps for an agent to fill by inference.

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

Parameters2/5

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

Schema coverage is 0%, so the description should compensate by explaining parameter meanings. It does not describe spreadsheet_id, sheet_name, or new_sheet_name beyond what their names imply. The agent must infer parameter purposes from parameter names alone, which is insufficient for correct invocation.

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?

The description clearly states the tool renames a single sheet, using a specific verb ('rename') and resource ('sheet'). It adds the constraint 'without changing its data or position', which distinguishes it from siblings like copy_sheet or create_sheet. This leaves no ambiguity about the tool's function.

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

Usage Guidelines4/5

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

The description implicitly indicates when to use this tool (when renaming a sheet) and what it does not do (alter data or position). However, it does not explicitly state when not to use it or mention alternatives among siblings. The context is clear for a straightforward operation.

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

set_basic_filterC

Set a native sheet filter on one named column; replaces the existing basic filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
column_nameYes
hidden_valuesNo
condition_typeYes
spreadsheet_idYes
condition_valuesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses that the tool replaces the existing basic filter, but does not mention side effects, authorization needs, or output behavior. Adequate but not rich.

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

Conciseness3/5

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

Very concise (one sentence) and front-loaded, but lacks necessary detail for a 6-parameter tool, making it under-specified rather than efficiently concise.

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

Completeness2/5

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

Despite having an output schema and a complex condition type enum, the description fails to explain how to use conditions, what the return value represents, or any constraints. Incomplete for the tool's complexity.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation of any parameter. The condition_type enum and condition_values remain unexplained despite being critical for correct use.

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?

Description clearly states the action ('set a native sheet filter'), resource ('one named column'), and that it replaces existing basic filter, distinguishing it from sibling 'clear_basic_filter'.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives like 'clear_basic_filter' or other filtering methods. The description implies it replaces an existing filter but lacks usage context.

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

set_sheet_visibilityC

Hide or show a sheet; hiding is not an access-control boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
hiddenNo
sheet_nameYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

The description discloses a key behavioral trait: hiding does not restrict access. However, with no annotations, it does not cover other behaviors such as error states or prerequisites, leaving gaps.

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?

The description is a single sentence that efficiently conveys the core action and a critical caveat. No unnecessary words, well front-loaded.

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

Completeness3/5

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

Given the tool's simplicity and the presence of an output schema, the description covers the basic purpose. However, it omits prerequisites, error handling, and relationship to other sheet operations, leaving some gaps.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no information about the three parameters (spreadsheet_id, sheet_name, hidden). The agent receives no parameter guidance beyond the schema's type and required fields.

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

Purpose4/5

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

The description clearly states the tool's action ('Hide or show a sheet') and adds an important caveat about access control. It does not explicitly differentiate from sibling tools but the action is specific enough.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The caveat about access-control boundary hints at a limitation but does not direct the agent to other tools like grant_read_access.

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

sort_rangeC

Sort a bounded range by named columns while preserving header rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
sort_orderNoASCENDING
header_rowsNo
sort_columnsYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral disclosure burden. It only mentions 'preserving header rows', but omits critical details like that sorting modifies the range in-place, requires edit permissions, or how ties are handled. This is insufficient for a mutation tool.

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

Conciseness3/5

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

The description is a single sentence with no fluff, but it sacrifices necessary detail for brevity. While front-loaded with the core action, it lacks the completeness expected for a tool with five parameters.

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

Completeness2/5

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

Despite having an output schema, the description fails to provide essential context for a mutable operation: it does not state that the sort is applied in-place, that header rows are preserved but not sorted, or any side effects. The minimal information leaves significant gaps for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% and the tool description does not explain any parameters beyond implying 'named columns' corresponds to sort_columns. Key parameters like range syntax, sort_order effect, and header_rows interpretation are undocumented, leaving the agent to infer from names alone.

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?

The description 'Sort a bounded range by named columns while preserving header rows' clearly states the action (sort), the resource (bounded range), and key constraints (by named columns, preserving headers). It distinguishes this tool from siblings like read_range or write_range, making its purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as when sorting is preferable to filtering or other data manipulation. There are no conditions, prerequisites, or exclusion criteria mentioned.

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

unpivot_rangeC

Convert a wide range into normalized rows and write the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
id_columnsYes
source_rangeYes
target_rangeYes
spreadsheet_idYes
skip_empty_valuesNo
value_column_nameNovalue
variable_column_nameNovariable

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description must reveal behavioral traits. It implies a write operation but fails to specify whether it overwrites, appends, or affects existing data, nor does it mention permissions or side effects.

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

Conciseness4/5

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

The description is a single, direct sentence with no wasted words. However, it could be slightly longer to include essential context without losing conciseness.

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

Completeness2/5

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

Given the tool has seven parameters, no annotations, and an output schema, the description is too brief. It does not explain what 'normalized rows' means, how id_columns work, or what the output looks like.

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

Parameters1/5

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

Schema coverage is 0% (no parameter descriptions in the schema), and the description adds no information about the seven parameters, their roles, or defaults. The description is completely silent on parameter semantics.

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

Purpose4/5

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

The description clearly states the tool converts a wide range into normalized rows and writes the result, matching the tool name 'unpivot_range'. However, it does not differentiate from sibling tools like 'write_range' or 'read_range'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, conditions, or scenarios where unpivoting is appropriate.

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

write_formulasC

Write a rectangular matrix of formulas beginning with '='.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
formulasYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so description must cover behavior. It mentions formulas start with '=' but omits whether it overwrites, clears existing data, or affects formatting. For a write tool, these are critical gaps.

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

Conciseness4/5

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

Single sentence with no waste. Efficient but lacks structure like bullet points or sections. Appropriate for minimalism, but could be improved.

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

Completeness2/5

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

With 3 required params, no param descriptions in schema, and a sibling set of similar tools, the description fails to provide sufficient detail for correct invocation and selection. Output schema exists but return behavior not explained.

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 has 0% description coverage. The description adds that 'formulas' is a 'rectangular matrix' and must begin with '=', but does not explain 'spreadsheet_id' or 'range' format. Partial compensation.

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

Purpose4/5

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

The description clearly states it writes formulas beginning with '=', specifying 'rectangular matrix'. This distinguishes it from write_range (values) and append_rows, but does not explicitly differentiate from other siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like write_range or batch_write_ranges. No prerequisites or exclusions provided.

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

write_rangeB

Write a rectangular values matrix to an A1 range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYes
valuesYes
spreadsheet_idYes
value_input_optionNoUSER_ENTERED

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It only states 'write', implying mutation, but does not disclose effects like overwriting, permissions, or limitations. For a write tool with zero annotation coverage, this is insufficient.

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?

The description is a single sentence with no unnecessary words. It is front-loaded and efficient, earning its place.

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

Completeness2/5

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

With 4 parameters, required fields, and an output schema, the description is too brief. It omits details on return values, behavioral effects (e.g., overwrite behavior), and context relative to siblings. For a mutation tool without annotations, completeness is lacking.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds minimal context. It clarifies that 'values' is a rectangular matrix and 'range' is in A1 notation, but fails to explain 'spreadsheet_id' or the 'value_input_option' enum. Given the low coverage, the description does not adequately compensate.

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?

The description 'Write a rectangular values matrix to an A1 range' clearly states the action (write), the resource (rectangular values matrix), and the target (A1 range). It distinguishes from siblings like 'batch_write_ranges' or 'append_rows' by specifying 'rectangular matrix' and 'A1 range'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Siblings include 'batch_write_ranges', 'append_rows', and others, but the description does not mention when to prefer this tool or exclusions. The agent has no context for choice.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 25 tool updatesv0.2.0
    • First observedadd_conditional_format
    • First observedappend_rows
    • First observedbatch_read_ranges
    • First observedbatch_write_ranges
    • First observedclear_basic_filter
    • First observedclear_range
    • First observedcopy_range
    • First observedcopy_sheet
    • First observedcreate_chart
    • First observedcreate_pivot_table
    • First observedcreate_sheet
    • First observedfreeze_panes
    • First observedget_spreadsheet
    • First observedgrant_read_access
    • First observedhealth
    • First observedinsert_image
    • First observedread_range
    • First observedread_sheet
    • First observedrename_sheet
    • First observedset_basic_filter
    • First observedset_sheet_visibility
    • First observedsort_range
    • First observedunpivot_range
    • First observedwrite_formulas
    • First observedwrite_range

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a distinct and clearly defined purpose. Even similar tools like read_range, batch_read_ranges, and read_sheet are differentiated by scope (bounded range, multiple ranges, entire sheet page). No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_spreadsheet, clear_range, create_sheet). The only exception is 'health', but it is a simple status check and fits the pattern if considered as a verb implied. Overall, naming is highly predictable.

Tool Count4/5

25 tools is slightly above the typical 3-15 range, but each tool provides a specific, non-redundant operation. The count is justified by the breadth of Google Sheets functionality covered, though it could be trimmed (e.g., batch operations could be merged).

Completeness3/5

The tool set covers many common operations but has notable gaps: no delete_sheet, no create_spreadsheet, no delete_rows, and no cross-spreadsheet copy/move. This will cause agents to struggle with basic workflows like creating and deleting spreadsheets or deleting data.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Runemal/google_sheets_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server