Skip to main content
Glama

List posts

list_posts
Read-only

List posts (calendar / queue). Optional filters: month (YYYY-MM), status. Pass limit to get only what you need (e.g. limit 5 + order "newest" for the most recent posts). Page with offset while hasMore is true.

Input Schema

NameRequiredDescriptionDefault
limitNoMax posts to return (1-50). Defaults to 20, or up to 100 posts of the month when month is set
monthNoCalendar month, e.g. "2026-04"
orderNoupcoming (default): by scheduled time, soonest first. newest: most recently created first. recently_published: latest published first. recently_updated: most recently changed first
offsetNoSkip this many posts (for paging)
statusNoFilter by status; omit for no status filter

Output Schema

NameRequiredDescriptionDefault
postsYes
countsNoWorkspace-wide totals per status
hasMoreNo
nextOffsetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / posts / items / properties / post_variants / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {
      -        "connected_account_id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "content": {
      -          "description": "Caption for this platform/account",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "error_message": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "id": {
      -          "type": "string"
      -        },
      -        "platform": {
      -          "description": "Platform id, e.g. instagram, linkedin",
      -          "type": "string"
      -        },
      -        "platform_post_id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "published_at": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "status": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "id",
      -        "platform"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "connected_account_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "content": {
      +          "description": "Caption for this platform/account",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "error_message": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "permalink": {
      +          "description": "Exact link to the published post when the platform gave one; otherwise build it from platform_post_id",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "platform": {
      +          "description": "Platform id, e.g. instagram, linkedin",
      +          "type": "string"
      +        },
      +        "platform_post_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "published_at": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "platform"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Max posts to return (1-50). Defaults to 20, or the whole month when month is set"New value: +"Max posts to return (1-50). Defaults to 20, or up to 100 posts of the month when month is set"
  3. Changed13 schema fields changed
    • removedOutput schema / properties / hasMore / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / hasMore / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / nextOffset / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / nextOffset / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / posts / items / properties / created_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / posts / items / properties / created_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / posts / items / properties / post_variants / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {
      -        "connected_account_id": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "content": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Caption for this platform/account"
      -        },
      -        "error_message": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "id": {
      -          "type": "string"
      -        },
      -        "platform": {
      -          "description": "Platform id, e.g. instagram, linkedin",
      -          "type": "string"
      -        },
      -        "platform_post_id": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "published_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "status": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        }
      -      },
      -      "required": [
      -        "id",
      -        "platform"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "connected_account_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "content": {
      +          "description": "Caption for this platform/account",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "error_message": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "platform": {
      +          "description": "Platform id, e.g. instagram, linkedin",
      +          "type": "string"
      +        },
      +        "platform_post_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "published_at": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "platform"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / posts / items / properties / published_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / posts / items / properties / published_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / posts / items / properties / raw_prompt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / posts / items / properties / raw_prompt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / posts / items / properties / scheduled_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / posts / items / properties / scheduled_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Changed4 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Max posts to return (1-50). Defaults to 20, or the whole month when month is set",
      +  "maximum": 50,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Skip this many posts (for paging)",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / order
      Added value: +{
      +  "description": "upcoming (default): by scheduled time, soonest first. newest: most recently created first. recently_published: latest published first. recently_updated: most recently changed first",
      +  "enum": [
      +    "upcoming",
      +    "newest",
      +    "recently_published",
      +    "recently_updated"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / status / enum
      Previous value: -[
      -  "scheduled",
      -  "published",
      -  "draft",
      -  "all"
      -]New value: +[
      +  "scheduled",
      +  "published",
      +  "draft",
      +  "failed",
      +  "all"
      +]
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "counts": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "drafts": {
      +              "type": "number"
      +            },
      +            "failed": {
      +              "type": "number"
      +            },
      +            "published": {
      +              "type": "number"
      +            },
      +            "scheduled": {
      +              "type": "number"
      +            },
      +            "total": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "total",
      +            "scheduled",
      +            "published",
      +            "drafts",
      +            "failed"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Workspace-wide totals per status"
      +    },
      +    "hasMore": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "nextOffset": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "posts": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "created_at": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "media_urls": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "post_variants": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "connected_account_id": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Caption for this platform/account"
      +                    },
      +                    "error_message": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "id": {
      +                      "type": "string"
      +                    },
      +                    "platform": {
      +                      "description": "Platform id, e.g. instagram, linkedin",
      +                      "type": "string"
      +                    },
      +                    "platform_post_id": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "published_at": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "status": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "platform"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "One entry per platform/account"
      +          },
      +          "published_at": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "raw_prompt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "scheduled_at": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "status": {
      +            "description": "draft | scheduled | publishing | published | failed",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "posts"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the pagination contract by referencing hasMore, which is real behavioral context beyond the annotations. Beyond that it discloses nothing about ordering defaults, result shape, or truncation, and an output schema already exists.

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?

Three short sentences, front-loaded with purpose before filters, then pagination. Minor waste in the quoted "newest" and slightly choppy phrasing, but nothing that obscures the call pattern.

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?

For a 5-parameter, zero-required read tool with full schema coverage and an output schema, the description covers purpose, filtering, limiting, and paging well enough to call correctly. The one gap is guidance on choosing between this and get_post when a specific post is wanted.

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%, so the schema already explains limit bounds/defers, month format, the four order values, offset, and the status enum. The description only restates filters and adds a mild hint about combining limit with order, which is close to what the schema provides; baseline 3 applies.

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?

States a specific verb and resource ("List posts") and adds scope context ("calendar / queue"), which distinguishes it from get_post and the mutation siblings. It stops short of naming those siblings explicitly, so differentiation relies on the reader inferring list-vs-single semantics.

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?

Gives concrete usage patterns: optional month/status filters, a limit tip with an example combination (limit 5 + order "newest"), and the paging recipe (offset while hasMore is true). It never says when to prefer get_post instead or when not to use this tool, so no explicit exclusions are present.

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