Skip to main content
Glama

Create list in Google Doc

create_bulleted_list
Idempotent

Turns paragraphs in a Google Doc range into bulleted, numbered, or checkbox list items for structured, scannable documents.

Instructions

Turn every paragraph that overlaps the index range [startIndex, endIndex) of a Google Doc into a list item: listType "bulleted" (default), "numbered" (1., a., i.) or "checkbox". Consecutive paragraphs become one list; to build a list from new content, append or insert the items as separate lines ("\n"-separated) first, then call this with their range. Leading tab characters in the paragraphs are converted into nesting levels and removed, which shifts later indexes; otherwise indexes are unchanged. Get paragraph indexes from get_document’s structure outline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endIndexYesEnd of the range (exclusive); must be greater than startIndex.
listTypeNobulleted (•), numbered (1. 2. 3.) or checkbox (☐). Default: bulleted.bulleted
documentIdYesThe Google Docs document ID (the part between /d/ and /edit in the document URL). A full Google Docs URL is also accepted.
startIndexYesStart of the range (inclusive). Get exact indexes from get_document or find_text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=true, so safety is covered. The description adds substantive behavior beyond that: consecutive paragraphs merge into one list, leading tabs become nesting levels and are removed, which shifts later indexes while otherwise indexes are unchanged. Auth/permission and error behavior are not covered.

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

Conciseness5/5

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

Three dense sentences, front-loaded with the core action, then the listType options and default, then the new-content workflow and index-shift caveat. Every clause carries information; there is no filler.

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 non-destructive, idempotent mutation tool with no output schema, the definition covers purpose, options, workflow, and index side effects well. It does not mention permissions/scope requirements or what the call returns, leaving minor gaps.

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?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema: it explains the nested-file default for listType, the '1., a., i.' numbering forms, and—most importantly—that leading-tab characters in the target paragraphs drive nesting levels, which is not captured in any parameter description.

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

Purpose5/5

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

States a specific verb and resource: turning paragraphs in an index range of a Google Doc into list items. It names concrete variants (bulleted/numbered/checkbox) and is easily distinguished from siblings like format_text or set_paragraph_style, which don't create list structure.

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?

Gives clear context for use and a workflow: to build a list from new content, append/insert the items as newline-separated lines first, then call this with their range. It also points to get_document for obtaining indexes. No explicit exclusions or when-not-to-use against specific siblings, so slightly short of 5.

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