Skip to main content
Glama

List scheduled items

list_scheduled_items
Read-onlyIdempotent

List Notes and Articles in one bounded schedule view. Copy each items[].id and items[].kind exactly into get_scheduled_item_readiness; this id identifies the scheduled item, not its draft or provider post. Includes destination, content-readiness checks, stored provider receipt state, and next action. workspace and writer scope authorized team Notes; team Articles remain private to their owner. Each Note destination carries accountId (the connected account it names; null means the only account or the default) and accountCanChange. A held Note reports why in issues (social_account_choice_required, social_account_disconnected, missed_while_account_unavailable, x_account_changed) with a writer-facing deliveryNote. An Article with pendingScheduleChange has a Substack time change waiting on the writer’s code. Reads stored evidence without contacting a provider. advisories lists anything the writer must do before scheduled items can publish, such as resyncing Substack or resyncing LinkedIn Articles; tell the writer its message.

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

Input Schema

NameRequiredDescriptionDefault
toNo
fromNo
kindNo
limitNo
statusNoactive
writerNoOptional authorized team writer name, handle, or id. "me" selects the linked voice. Requires workspace.
workspaceNoOptional authorized team workspace name or id. Absence selects the authenticated user’s personal account.

Output Schema

NameRequiredDescriptionDefault
countYes
itemsYes
contextYes
advisoriesYes
schemaVersionYes
connectedAccountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / properties / items / items / properties / checks / properties / coverImage / description
      Added value: +"The article cover (thumbnail) only. missing does not mean the body has no images; see inlineImages."
    • addedOutput schema / properties / items / items / properties / checks / properties / inlineImages
      Added value: +{
      +  "description": "Images inside the article body, not counting the cover.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / checks / properties / placeholderText
      Added value: +{
      +  "description": "Bracketed placeholders such as [Image here] still in the text. Each one would be published as written.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / liveUrl
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / writerNextAction
      Added value: +{
      +  "enum": [
      +    "none",
      +    "enter_code",
      +    "resync",
      +    "open_narrareach"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / items / properties / writerState
      Added value: +{
      +  "description": "Where the article is, in the writer's words. Tell the writer it is published only when this is published.",
      +  "enum": [
      +    "scheduled",
      +    "publishing",
      +    "waiting_for_you",
      +    "in_review",
      +    "published",
      +    "saved_as_draft",
      +    "needs_attention",
      +    "cancelled"
      +  ],
      +  "type": "string"
      +}
  2. Changed5 schema fields changed
    • removedOutput schema / properties / advisories / items / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / advisories / items / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "type": "string"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "platform": {
      +        "const": "SUBSTACK",
      +        "type": "string"
      +      },
      +      "requestedAt": {
      +        "format": "date-time",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "platform",
      +      "code",
      +      "message",
      +      "action",
      +      "requestedAt"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "type": "string"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "platform": {
      +        "const": "LINKEDIN",
      +        "type": "string"
      +      },
      +      "reason": {
      +        "enum": [
      +          "signed_out",
      +          "session_rejected"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "platform",
      +      "code",
      +      "message",
      +      "action",
      +      "reason"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / advisories / items / properties
      Removed value: -{
      -  "action": {
      -    "type": "string"
      -  },
      -  "code": {
      -    "type": "string"
      -  },
      -  "message": {
      -    "type": "string"
      -  },
      -  "platform": {
      -    "const": "SUBSTACK",
      -    "type": "string"
      -  },
      -  "requestedAt": {
      -    "format": "date-time",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / advisories / items / required
      Removed value: -[
      -  "platform",
      -  "code",
      -  "message",
      -  "action",
      -  "requestedAt"
      -]
    • removedOutput schema / properties / advisories / items / type
      Removed value: -"object"
  3. Changed2 schema fields changed
    • addedOutput schema / properties / advisories
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "type": "string"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "platform": {
      +        "const": "SUBSTACK",
      +        "type": "string"
      +      },
      +      "requestedAt": {
      +        "format": "date-time",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "platform",
      +      "code",
      +      "message",
      +      "action",
      +      "requestedAt"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "schemaVersion",
      -  "context",
      -  "count",
      -  "items"
      -]New value: +[
      +  "schemaVersion",
      +  "context",
      +  "count",
      +  "items",
      +  "advisories"
      +]
  4. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / pendingScheduleChange
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "connectionId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "requestedAt": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "requestedScheduledFor": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "requestedTimezone": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "verificationRequired": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "requestedScheduledFor",
      +        "requestedTimezone",
      +        "requestedAt",
      +        "verificationRequired",
      +        "connectionId"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "schemaVersion",
      -  "id",
      -  "itemUrl",
      -  "kind",
      -  "revision",
      -  "title",
      -  "status",
      -  "scheduledFor",
      -  "timezone",
      -  "platforms",
      -  "destinations",
      -  "checks",
      -  "readiness",
      -  "nextAction",
      -  "issues",
      -  "deliveryNote",
      -  "accountCanChange"
      -]New value: +[
      +  "schemaVersion",
      +  "id",
      +  "itemUrl",
      +  "kind",
      +  "revision",
      +  "title",
      +  "status",
      +  "scheduledFor",
      +  "timezone",
      +  "platforms",
      +  "destinations",
      +  "checks",
      +  "readiness",
      +  "nextAction",
      +  "issues",
      +  "deliveryNote",
      +  "accountCanChange",
      +  "pendingScheduleChange"
      +]
  5. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / checks / properties / substackAudience
      Added value: +{
      +  "description": "Who can read past the opening on Substack: freewall (free and paid subscribers), paywall (paid subscribers below the wall), paid_subscribers (whole post), or everyone.",
      +  "enum": [
      +    "freewall",
      +    "paywall",
      +    "paid_subscribers",
      +    "everyone",
      +    "not_applicable"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / items / items / properties / checks / required
      Previous value: -[
      -  "coverImage",
      -  "subscribeButtons",
      -  "paywall",
      -  "emailDelivery",
      -  "remoteReceipt"
      -]New value: +[
      +  "coverImage",
      +  "subscribeButtons",
      +  "paywall",
      +  "substackAudience",
      +  "emailDelivery",
      +  "remoteReceipt"
      +]
  6. Changed4 schema fields changed
    • addedOutput schema / properties / items / items / properties / accountCanChange
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / destinations / items / properties / accountId
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / destinations / items / required
      Previous value: -[
      -  "platform",
      -  "kind",
      -  "label"
      -]New value: +[
      +  "platform",
      +  "kind",
      +  "label",
      +  "accountId"
      +]
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "schemaVersion",
      -  "id",
      -  "itemUrl",
      -  "kind",
      -  "revision",
      -  "title",
      -  "status",
      -  "scheduledFor",
      -  "timezone",
      -  "platforms",
      -  "destinations",
      -  "checks",
      -  "readiness",
      -  "nextAction",
      -  "issues",
      -  "deliveryNote"
      -]New value: +[
      +  "schemaVersion",
      +  "id",
      +  "itemUrl",
      +  "kind",
      +  "revision",
      +  "title",
      +  "status",
      +  "scheduledFor",
      +  "timezone",
      +  "platforms",
      +  "destinations",
      +  "checks",
      +  "readiness",
      +  "nextAction",
      +  "issues",
      +  "deliveryNote",
      +  "accountCanChange"
      +]
  7. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / deliveryNote
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "schemaVersion",
      -  "id",
      -  "itemUrl",
      -  "kind",
      -  "revision",
      -  "title",
      -  "status",
      -  "scheduledFor",
      -  "timezone",
      -  "platforms",
      -  "destinations",
      -  "checks",
      -  "readiness",
      -  "nextAction",
      -  "issues"
      -]New value: +[
      +  "schemaVersion",
      +  "id",
      +  "itemUrl",
      +  "kind",
      +  "revision",
      +  "title",
      +  "status",
      +  "scheduledFor",
      +  "timezone",
      +  "platforms",
      +  "destinations",
      +  "checks",
      +  "readiness",
      +  "nextAction",
      +  "issues",
      +  "deliveryNote"
      +]
  8. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already mark it read-only and idempotent, and the description adds genuine behavioral context beyond them: reads stored evidence without contacting a provider, workspace/writer scope rules with team Articles private to owner, held-Note issue codes, pendingScheduleChange meaning, and the advisories block. That is exactly the kind of detail an agent needs to interpret results.

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 and the id-routing rule are front-loaded, and each subsequent sentence carries real payload (scope, accountId, held reasons, advisories). The middle section is dense and run-on, packing issue codes and field semantics into long clauses, but little is truly wasted.

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?

Given an output schema exists, the description need not explain return shapes, and it still covers scope, held states, and pre-publication advisories thoroughly. The remaining gap is inadequate explanation of the date-range, limit, and status parameters in a tool with 7 inputs.

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 coverage is only 29%, and the description compensates only partly: it implies kind (Notes vs Articles) and explains workspace/writer authorization semantics, largely mirroring the two documented parameters. It says nothing about to/from range semantics, limit paging behavior, or what status=active vs terminal returns.

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

Purpose4/5

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

The opening sentence states a specific verb and resource ('List Notes and Articles') and bounds the view ('one bounded schedule view'), which is enough to distinguish it from readiness/amend/cancel siblings. It stops short of explicitly contrasting with list_scheduled_posts, which is the nearest ambiguous alternative.

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

Usage Guidelines3/5

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

It gives a clear downstream instruction ('Copy each items[].id and items[].kind exactly into get_scheduled_item_readiness') and clarifies the id is the scheduled item, not the draft or provider post. However, it never says when to prefer this tool over list_scheduled_posts, nor when to omit from/to/status filters.

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