Skip to main content
Glama

List items

list_items
Read-onlyIdempotent

List items on a sheet without a search term. Page size is 10-100. Sorted by created_at descending, then id ascending, so a tie on created_at does not skip or repeat a row across pages. totalItems is the live count of rows with no Shopify store id at the time of this call. list_sheets item_count for that manual sheet is the same count. A later page can show a different totalItems when rows are added or removed between calls. A currency column keeps the stored decimal text. The row adds formatted, a map of those column names to the symbol view. Empty Data columns (null or blank on every returned row) are omitted. created_at and updated_at are omitted.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
page_sizeNo
sheet_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, non-destructive, idempotent), yet the description still adds substantial behavioral context: the exact sort key and tiebreaker that guarantee stable paging, the liveness semantics of totalItems, currency formatting behavior, omission of empty columns, and omission of created_at/updated_at. None of that is derivable from the annotations or schema.

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?

Purpose is front-loaded, followed by tightly packed behavioral detail with no filler. A few sentences are compressed to the point of opacity ("list_sheets item_count for that manual sheet is the same count"), but virtually every sentence carries information.

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?

With no output schema and 0% parameter coverage, the description does the heavy lifting well: it explains totalItems, the formatted currency map, and omitted fields. It falls short on pagination control semantics (paging past the end, how to detect the last page) and on what a typical item row otherwise contains.

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 carry the load. It documents page_size's 10-100 bound and covers sheet_number implicitly (items belong to a sheet), but the page parameter—its default, and what happens past the last page—is never explained, leaving a real gap.

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?

Opens with a specific verb and resource ("List items on a sheet") and immediately scopes it with "without a search term," which distinguishes it from the sibling search_items tool. An agent can identify the right tool without opening the schema.

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

Usage Guidelines4/5

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

The "without a search term" clause effectively routes the agent: use this for unfiltered enumeration, search_items when a term exists. It never names search_items as the alternative explicitly, but the conditional is clear enough to act on.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources