Skip to main content
Glama

List scheduled pins

list_schedules
Read-onlyIdempotent

List scheduled pins in this workspace, latest run_at first, with search and filters.

    Use to find a schedule's id (search its title with q), see what is
    queued for a period (status=scheduled, sort=run_at_asc), or list failed
    schedules to retry. For one known schedule use get_schedule; for pins
    that already published use list_pins.

    Returns one page: {items, total, limit, offset, has_more}. items are
    the schedules (id, pinterest_account_id, run_at, status, payload with
    board_id, title and media, pin_id once it ran, last_error, created_at,
    updated_at). total counts every match across all pages, so "how many
    pins are scheduled for next week?" is one call with status=scheduled,
    since/until and limit=1. To read further, repeat the call with the same
    filters, q and sort and offset = offset + limit while has_more is true.
    Fails with account_not_permitted for an account outside the key's
    allow-list and validation_error for a bad status, sort or timestamp.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoCase-insensitive text to find in the title, description or link URL; % and _ match literally.
sortNoOrder: run_at, created_at, title or status, each _asc or _desc. run_at_asc lists the next run first.run_at_desc
limitNoPage size, 1-200.
sinceNoISO 8601 timestamp with timezone; lower bound, inclusive.
untilNoISO 8601 timestamp with timezone; upper bound, exclusive.
offsetNoRows to skip. For the next page pass offset + limit from the last result.
statusNoOne of scheduled, queued, deferred, running, done, failed, canceled.
board_idNoPinterest board ID (numeric string), from list_boards.
account_idNoUUID of a connected Pinterest account, from list_pinterest_accounts.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesSchedules on this page in the requested order, each with id, pinterest_account_id, run_at, status, payload (board_id, title, media), pin_id once it ran, last_error, created_at and updated_at. Empty when nothing matches.
limitYesPage size used for this call.
totalYesHow many rows match the filters and search across all pages. Answer "how many ...?" from this; limit=1 is enough. Null only when the PinBridge API is older than 1.34.
offsetYesRows skipped before this page.
has_moreYestrue when more rows follow: call again with the same filters, q and sort and offset = offset + limit. When total is null it only means this page was full.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • changedInput schema / properties / offset / description
      Previous value: -"Rows to skip for pagination."New value: +"Rows to skip. For the next page pass offset + limit from the last result."
    • addedInput schema / properties / q
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Case-insensitive text to find in the title, description or link URL; % and _ match literally.",
      +  "title": "Q"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "default": "run_at_desc",
      +  "description": "Order: run_at, created_at, title or status, each _asc or _desc. run_at_asc lists the next run first.",
      +  "enum": [
      +    "run_at_desc",
      +    "run_at_asc",
      +    "created_at_desc",
      +    "created_at_asc",
      +    "title_asc",
      +    "title_desc",
      +    "status_asc",
      +    "status_desc"
      +  ],
      +  "title": "Sort",
      +  "type": "string"
      +}
    • addedOutput schema / description
      Added value: +"One page of list_schedules results plus the total number of matching schedules."
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "true when more rows follow: call again with the same filters, q and sort and offset = offset + limit. When total is null it only means this page was full.",
      +  "title": "Has More",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items
      Added value: +{
      +  "description": "Schedules on this page in the requested order, each with id, pinterest_account_id, run_at, status, payload (board_id, title, media), pin_id once it ran, last_error, created_at and updated_at. Empty when nothing matches.",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "title": "Items",
      +  "type": "array"
      +}
    • addedOutput schema / properties / limit
      Added value: +{
      +  "description": "Page size used for this call.",
      +  "title": "Limit",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Rows skipped before this page.",
      +  "title": "Offset",
      +  "type": "integer"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "items": {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  "title": "Result",
      -  "type": "array"
      -}
    • addedOutput schema / properties / total
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How many rows match the filters and search across all pages. Answer \"how many ...?\" from this; limit=1 is enough. Null only when the PinBridge API is older than 1.34.",
      +  "title": "Total"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "items",
      +  "total",
      +  "limit",
      +  "offset",
      +  "has_more"
      +]
    • changedOutput schema / title
      Previous value: -"list_schedulesOutput"New value: +"ScheduleListPage"
  2. Changed10 schema fields changed
    • addedInput schema / properties / account_id / description
      Added value: +"UUID of a connected Pinterest account, from list_pinterest_accounts."
    • addedInput schema / properties / board_id / description
      Added value: +"Pinterest board ID (numeric string), from list_boards."
    • addedInput schema / properties / limit / description
      Added value: +"Page size, 1-200."
    • addedInput schema / properties / limit / maximum
      Added value: +200
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / offset / description
      Added value: +"Rows to skip for pagination."
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • addedInput schema / properties / since / description
      Added value: +"ISO 8601 timestamp with timezone; lower bound, inclusive."
    • addedInput schema / properties / status / description
      Added value: +"One of scheduled, queued, deferred, running, done, failed, canceled."
    • addedInput schema / properties / until / description
      Added value: +"ISO 8601 timestamp with timezone; upper bound, exclusive."
  3. Changed4 schema fields changed
    • addedInput schema / properties / account_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Account Id"
      +}
    • addedInput schema / properties / board_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Board Id"
      +}
    • addedInput schema / properties / since
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Since"
      +}
    • addedInput schema / properties / until
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Until"
      +}
  4. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint; the description adds meaningful behavior beyond that: one-page result shape, total counting across pages, pagination loop via offset + limit, and error cases like account_not_permitted and validation_error. No contradiction.

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?

Well-structured: a one-line summary, then use cases and alternatives, then return/pagination/errors. Despite its length, every sentence earns its place given the tool has 9 parameters and a paged response.

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 description need not restate every return field, but it still covers the page envelope, pagination technique, filtering semantics, and failure modes. An agent has everything needed to call and page through results correctly.

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 contextual guidance over the schema, such as using status=scheduled with since/until and limit=1 to count matching schedules, and clarifying that run_at_asc lists the next run first.

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 ('List'), resource ('scheduled pins'), scope ('in this workspace'), and default ordering ('latest run_at first'). It also distinguishes itself from siblings by explicitly naming get_schedule and list_pins as alternatives.

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

Usage Guidelines5/5

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

Gives three concrete use cases: finding a schedule id by search, viewing queued items, and listing failed schedules to retry. It also explicitly routes to alternatives: 'For one known schedule use get_schedule; for pins that already published use list_pins.'

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