Skip to main content
Glama

List collections

list_collections
Read-onlyIdempotent

Lists the user's saved-ad collections, the private folders that saved ads are sorted into, with each collection id, name, description and ad count, one page at a time with next_cursor. Read-only; list_saved_ads reads the ads inside one.

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_collections"
  }
}

Input Schema

NameRequiredDescriptionDefault
cursorNonext_cursor from the previous page of this same list; absent or null for the first page.
page_sizeNoCollections per page, 1 to 50.
response_formatNoOutput format: text (default) or json. table is not available for this tool.

Output Schema

NameRequiredDescriptionDefault
doneNoDeprecated for one release: inverse of has_more.
rowsNoItems in this page of your saved ads or collections.
has_moreNoWhether another bounded page is available with next_cursor.
pageSizeNoDeprecated for one release: alias of page_size.
allowanceNoFree daily ad-return allowance for this workspace, resetting at midnight UTC.
page_sizeNoEffective number of rows requested per page.
nextCursorNoDeprecated for one release: alias of next_cursor.
next_cursorNoContinuation handle for the same filters; null when no further page is offered.
reading_useNoreading use value in this response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / cursor / anyOf
      Previous value: -[
      -  {
      -    "description": "Continuation handle from the same tool and filters; absent for the first page.",
      -    "maxLength": 24000,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "next_cursor from the previous page of the same tool and filters; absent for the first page.",
      +    "maxLength": 24000,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / cursor / description
      Previous value: -"Continuation handle from the same tool and filters; absent for the first page."New value: +"next_cursor from the previous page of this same list; absent or null for the first page."
    • changedInput schema / properties / page_size / description
      Previous value: -"Number of rows in this page, constrained by the field maximum."New value: +"Collections per page, 1 to 50."
    • changedInput schema / properties / response_format / description
      Previous value: -"Output format: text or json for capped research examples; table is available only for tracked rival rows."New value: +"Output format: text (default) or json. table is not available for this tool."
  2. Changed3 schema fields changed
    • changedOutput schema / properties / allowance / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Daily scanned-row allowance for this workspace, resetting at midnight UTC.",
      -    "properties": {
      -      "daily_limit": {
      -        "description": "Maximum scanned rows allowed per UTC day.",
      -        "type": "number"
      -      },
      -      "remaining": {
      -        "description": "Scanned rows still available today.",
      -        "type": "number"
      -      },
      -      "resets_at": {
      -        "description": "ISO timestamp when the allowance or credits reset.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "daily_limit",
      -      "remaining",
      -      "resets_at"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "Free daily ad-return allowance for this workspace, resetting at midnight UTC.",
      +    "properties": {
      +      "daily_limit": {
      +        "description": "Maximum free ad examples returned per UTC day.",
      +        "type": "number"
      +      },
      +      "remaining": {
      +        "description": "Free ad examples still available today.",
      +        "type": "number"
      +      },
      +      "resets_at": {
      +        "description": "ISO timestamp when the allowance or credits reset.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "daily_limit",
      +      "remaining",
      +      "resets_at"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / allowance / description
      Previous value: -"Daily scanned-row allowance for this workspace, resetting at midnight UTC."New value: +"Free daily ad-return allowance for this workspace, resetting at midnight UTC."
    • addedOutput schema / properties / reading_use
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "description": "reading use value in this response.",
      +      "properties": {
      +        "ads_returned": {
      +          "anyOf": [
      +            {
      +              "description": "ads returned value in this response.",
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "ads returned value in this response."
      +        },
      +        "message": {
      +          "anyOf": [
      +            {
      +              "description": "message value in this response.",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "message value in this response."
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "reading use value in this response."
      +}
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds useful context beyond that: pagination is page-at-a-time with next_cursor, and each row carries id, name, description and ad count. It does not discuss permissions or ordering of results, which is the main remaining gap.

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?

A single dense sentence that is front-loaded with the verb and resource, then layers in definition, returned fields, pagination and the sibling hand-off. Every clause carries information, though the run-on structure makes it slightly harder to scan than a two-sentence split.

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

Completeness5/5

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

For a read-only, zero-required-parameter list tool with full schema coverage, an output schema and complete annotations, nothing essential is missing. Pagination, scope of results, and the alternative tool for ad contents are all stated.

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

Parameters3/5

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

Schema description coverage is 100%, with cursor, page_size and response_format all documented in the schema itself. The description only echoes the next_cursor pagination concept and says nothing about page_size limits or the response_format enum, so it adds little beyond structured data. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Lists the user's saved-ad collections') and immediately defines the concept ('the private folders that saved ads are sorted into'), so there is no ambiguity about what a collection is. It also names the returned fields (id, name, description, ad count) and separates itself from list_saved_ads, which lists the ads inside a collection.

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 gives a clear routing rule: this tool enumerates collections, while 'list_saved_ads reads the ads inside one.' That resolves the single most likely confusion among the siblings. It does not cover adjacent actions such as creating a collection (create_collection) or broader list_* tools, but the primary decision point is explicit.

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.