Skip to main content
Glama

List pages

list_pages
Read-onlyIdempotent

The brand's Content Studio pages, newest first, with their status: drafting, sent (to the CMS as a draft), live (locked, with results tracked) or revising. Start here to find a page_id for get_page.

Input Schema

NameRequiredDescriptionDefault
brandYesBrand or study: its ID from list_brands, or its name (exact or a unique prefix).
limitNoRows per page. Defaults to 25, max 100. A page may hold fewer rows to stay within the response size; follow next_cursor.
cursorNonext_cursor from the previous page. Leave out for the first page.
statusNoOptional filter.

Output Schema

NameRequiredDescriptionDefault
dataYes
generated_atYesRFC 3339 time the response was made.
schema_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • removedInput schema / properties / lane
      Removed value: -{
      -  "description": "Optional filter.",
      -  "enum": [
      -    "in_progress",
      -    "live",
      -    "needs_refresh"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / status
      Added value: +{
      +  "description": "Optional filter.",
      +  "enum": [
      +    "drafting",
      +    "sent",
      +    "live",
      +    "revising"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / pages / items / properties / agent_state
      Added value: +{
      +  "description": "idle, working (Cleotic's page agent is on it), or failed.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / pages / items / properties / claims_to_refresh
      Removed value: -{
      -  "description": "Claims that may be out of date when the refresh is due.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / content_type
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / crawlers
      Removed value: -{
      -  "description": "AI crawlers that have read it since it went live.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / lane
      Removed value: -{
      -  "description": "in_progress, live, or needs_refresh.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / live_at
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / new_first_citation
      Removed value: -{
      -  "description": "An AI answer cited it for the first time since it was last viewed.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / question
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / refresh_due_at
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / results
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Once live: AI answers to its question that name or cite the brand.",
      -  "properties": {
      -    "answers": {
      -      "type": "integer"
      -    },
      -    "cited": {
      -      "description": "Answers that cite the page.",
      -      "type": "integer"
      -    },
      -    "named": {
      -      "description": "Answers that name the brand.",
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "answers",
      -    "named",
      -    "cited"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / sections_drafted
      Removed value: -{
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / sections_total
      Removed value: -{
      -  "type": "integer"
      -}
    • removedOutput schema / properties / data / properties / pages / items / properties / stage
      Removed value: -{
      -  "description": "writing, live, read (AI crawlers read it), mentioned, cited, or refresh.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / properties / pages / items / properties / status / description
      Previous value: -"draft, generating, generated, failed, published, or archived."New value: +"drafting, sent (sent to the CMS as a draft), live (locked; results are tracked), or revising."
    • addedOutput schema / properties / data / properties / pages / items / properties / words
      Added value: +{
      +  "type": "integer"
      +}
    • changedOutput schema / properties / data / properties / pages / items / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "question",
      -  "content_type",
      -  "lane",
      -  "stage",
      -  "status",
      -  "sections_drafted",
      -  "sections_total",
      -  "live_at",
      -  "results",
      -  "crawlers",
      -  "refresh_due_at",
      -  "claims_to_refresh",
      -  "new_first_citation",
      -  "updated_at"
      -]New value: +[
      +  "id",
      +  "title",
      +  "status",
      +  "agent_state",
      +  "words",
      +  "updated_at"
      +]
  2. Changed5 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / brand / minLength
      Added value: +1
    • changedInput schema / properties / cursor / description
      Previous value: -"next_cursor from the previous page."New value: +"next_cursor from the previous page. Leave out for the first page."
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page. Defaults to 25, max 100."New value: +"Rows per page. Defaults to 25, max 100. A page may hold fewer rows to stay within the response size; follow next_cursor."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "brand": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "description": "The brand's website, or empty when none is set.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "url"
      +          ],
      +          "type": "object"
      +        },
      +        "pages": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "claims_to_refresh": {
      +                "description": "Claims that may be out of date when the refresh is due.",
      +                "type": "integer"
      +              },
      +              "content_type": {
      +                "type": "string"
      +              },
      +              "crawlers": {
      +                "description": "AI crawlers that have read it since it went live.",
      +                "type": "integer"
      +              },
      +              "id": {
      +                "description": "Page ID for get_page.",
      +                "type": "string"
      +              },
      +              "lane": {
      +                "description": "in_progress, live, or needs_refresh.",
      +                "type": "string"
      +              },
      +              "live_at": {
      +                "type": "string"
      +              },
      +              "new_first_citation": {
      +                "description": "An AI answer cited it for the first time since it was last viewed.",
      +                "type": "boolean"
      +              },
      +              "question": {
      +                "type": "string"
      +              },
      +              "refresh_due_at": {
      +                "type": "string"
      +              },
      +              "results": {
      +                "additionalProperties": false,
      +                "description": "Once live: AI answers to its question that name or cite the brand.",
      +                "properties": {
      +                  "answers": {
      +                    "type": "integer"
      +                  },
      +                  "cited": {
      +                    "description": "Answers that cite the page.",
      +                    "type": "integer"
      +                  },
      +                  "named": {
      +                    "description": "Answers that name the brand.",
      +                    "type": "integer"
      +                  }
      +                },
      +                "required": [
      +                  "answers",
      +                  "named",
      +                  "cited"
      +                ],
      +                "type": [
      +                  "null",
      +                  "object"
      +                ]
      +              },
      +              "sections_drafted": {
      +                "type": "integer"
      +              },
      +              "sections_total": {
      +                "type": "integer"
      +              },
      +              "stage": {
      +                "description": "writing, live, read (AI crawlers read it), mentioned, cited, or refresh.",
      +                "type": "string"
      +              },
      +              "status": {
      +                "description": "draft, generating, generated, failed, published, or archived.",
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              },
      +              "updated_at": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "title",
      +              "question",
      +              "content_type",
      +              "lane",
      +              "stage",
      +              "status",
      +              "sections_drafted",
      +              "sections_total",
      +              "live_at",
      +              "results",
      +              "crawlers",
      +              "refresh_due_at",
      +              "claims_to_refresh",
      +              "new_first_citation",
      +              "updated_at"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "pagination": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "next_cursor": {
      +              "description": "Pass as cursor to get the next page; empty on the last page.",
      +              "type": "string"
      +            },
      +            "total": {
      +              "description": "Items across all pages; null when not counted.",
      +              "type": [
      +                "null",
      +                "integer"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "next_cursor",
      +            "total"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "brand",
      +        "pages",
      +        "pagination"
      +      ],
      +      "type": "object"
      +    },
      +    "generated_at": {
      +      "description": "RFC 3339 time the response was made.",
      +      "type": "string"
      +    },
      +    "schema_version": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "schema_version",
      +    "generated_at",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, non-destructive), so the description's contribution is the domain semantics: what 'drafting', 'sent', 'live' (locked, results tracked) and 'revising' actually mean, plus newest-first ordering. That is real context beyond the structured fields, though it says nothing about result size or truncation behavior.

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?

Two sentences, front-loaded with the resource and ordering, then the status vocabulary, then the routing hint. No sentence is redundant and nothing is buried.

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?

With an output schema present the return shape need not be described, and pagination is fully covered by the limit/cursor schema descriptions. Ordering, status semantics, and the next-step tool are all supplied, leaving no gap an agent needs filled before calling it.

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 the baseline is 3. The description earns the extra point by giving meaning to the status values the schema only labels as "Optional filter", clarifying the lifecycle states an agent will see in results and can filter on.

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 the resource (the brand's Content Studio pages), the ordering (newest first), and the status vocabulary the list exposes. It also distinguishes itself from get_page by positioning itself as the entry point that yields a page_id, so an agent can tell it apart from get_page/create_page without opening a 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?

"Start here to find a page_id for get_page" gives explicit when-to-use guidance and names the follow-on sibling. It stops short of stating when NOT to use it (e.g. when you already hold a page_id) or naming list_brands/search alternatives, so it is clear context without exclusions.

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