Skip to main content
Glama

Search Posts

search_posts
Read-onlyIdempotent

Finds posts by status (including awaiting_review, i.e. the review queue), channel, scheduled time range, angle, pillar, text, or website CMS delivery state. Returns each post's current rev, updatedAt, mediaCount (assets, a website cover and images from the CMS; 0 means no media, so finding posts without an image needs no get_post per post) and, for website posts, the buyer questions it answers (buyerQuestions). A refresh of a live website page Mark published carries refresh: { text, pageUrl }, the reason Mark queued it for review; refresh is null on every other post. An approved social post moves to scheduled within seconds while Mark hands it to the publisher; handoff says handing_off then, or stuck with the reason and fix when it can't go (no scheduled time, no connected account, or no progress 5 minutes after approval). An approved LinkedIn Article carries handoff publish_by_hand before its scheduled time and publish_now from it on, each with the reason (a person publishes it on LinkedIn). handoff is null on every other post. status: approved still matches handing-off, stuck, publish_by_hand and publish_now posts. rev is the frozen revision: it stays 0 on drafts and only advances when the post is submitted (or frozen). updatedAt confirms a draft save. from and to filter by scheduled time, not created or updated. Each accepts YYYY-MM-DD or a full ISO timestamp. A date-only to includes that whole day in the workspace timezone. Unscheduled drafts never match a date range. websiteState filters blog, FAQ and competitor posts by CMS delivery: preview (a pre-approval preview draft in the CMS, not live), queued, sent_to_cms (saved in the CMS, not live), published, taken_down, failed, removed, conflict, out_of_sync, or none — the same values as get_post's website.state. Use awaiting_review to open the review queue. Optional timezone (IANA) renders scheduled and published times in that zone; it does not change stored data. Does not change anything. Related: get_post, approve_posts, review_post.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoScheduled-to: YYYY-MM-DD (includes that whole day in the workspace timezone) or a full ISO timestamp.
fromNoScheduled-from: YYYY-MM-DD (start of that day in the workspace timezone) or a full ISO timestamp.
textNoCase-insensitive match in the body.
limitNoHow many rows to return. Default 20, max 100.
cursorNoOpaque cursor from a previous call's nextCursor.
statusNoFilter by status. awaiting_review is the review queue.
angleIdNoAngle id.
channelNoChannel id, e.g. linkedin.
pillarIdNoPillar id.
timezoneNoIANA zone to render times in. Does not change stored data. Defaults to the workspace timezone.
websiteStateNoFilter website posts by CMS delivery state: queued, sent_to_cms (saved in the CMS, not live), published, taken_down, failed, removed, conflict, out_of_sync, or none. Same values as get_post's website.state.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
moreYes
itemsYes
nextCursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / mediaCount
      Added value: +{
      +  "description": "Media on the post: assets, a website cover and images from the CMS. 0 means none.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "angleId",
      -  "appUrl",
      -  "buyerQuestions",
      -  "channel",
      -  "excerpt",
      -  "handoff",
      -  "id",
      -  "pillarId",
      -  "publishedAt",
      -  "refresh",
      -  "rev",
      -  "scheduledAt",
      -  "status",
      -  "updatedAt"
      -]New value: +[
      +  "angleId",
      +  "appUrl",
      +  "buyerQuestions",
      +  "channel",
      +  "excerpt",
      +  "handoff",
      +  "mediaCount",
      +  "id",
      +  "pillarId",
      +  "publishedAt",
      +  "refresh",
      +  "rev",
      +  "scheduledAt",
      +  "status",
      +  "updatedAt"
      +]
  2. Changed2 schema fields changed
    • changedOutput schema / properties / items / items / properties / handoff / anyOf
      Previous value: -[
      -  {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "state": {
      -            "const": "handing_off",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "state"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "reason": {
      -            "type": "string"
      -          },
      -          "state": {
      -            "const": "stuck",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "reason",
      -          "state"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "state": {
      +            "const": "handing_off",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "state"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "reason": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "const": "stuck",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "reason",
      +          "state"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "reason": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "const": "publish_by_hand",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "reason",
      +          "state"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "reason": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "const": "publish_now",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "reason",
      +          "state"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / handoff / description
      Previous value: -"An approved social post's handoff to the publisher: handing_off (it moves to scheduled within seconds), stuck with the reason and fix (no scheduled time, no connected account for the channel, or no progress 5 minutes after approval), or null for every other status and every website post."New value: +"An approved social post's handoff to the publisher: handing_off (it moves to scheduled within seconds), stuck with the reason and fix (no scheduled time, no connected account for the channel, or no progress 5 minutes after approval), or null for every other status and every website post. An approved LinkedIn Article has no publisher: publish_by_hand before its scheduled time and publish_now from it on, until someone records its URL with record_post_published."
  3. Changed2 schema fields changed
    • changedInput schema / properties / websiteState / description
      Previous value: -"Filter website posts by CMS delivery state: queued, draft (saved in the CMS, not live), published, failed, removed, conflict, out_of_sync, or none. Same values as get_post's website.state."New value: +"Filter website posts by CMS delivery state: queued, sent_to_cms (saved in the CMS, not live), published, taken_down, failed, removed, conflict, out_of_sync, or none. Same values as get_post's website.state."
    • changedInput schema / properties / websiteState / enum
      Previous value: -[
      -  "preview",
      -  "queued",
      -  "draft",
      -  "published",
      -  "failed",
      -  "removed",
      -  "conflict",
      -  "out_of_sync",
      -  "none"
      -]New value: +[
      +  "preview",
      +  "queued",
      +  "sent_to_cms",
      +  "published",
      +  "taken_down",
      +  "failed",
      +  "removed",
      +  "conflict",
      +  "out_of_sync",
      +  "none"
      +]
  4. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / handoff
      Added value: +{
      +  "anyOf": [
      +    {
      +      "oneOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "state": {
      +              "const": "handing_off",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "state"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "reason": {
      +              "type": "string"
      +            },
      +            "state": {
      +              "const": "stuck",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "reason",
      +            "state"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "An approved social post's handoff to the publisher: handing_off (it moves to scheduled within seconds), stuck with the reason and fix (no scheduled time, no connected account for the channel, or no progress 5 minutes after approval), or null for every other status and every website post."
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "angleId",
      -  "appUrl",
      -  "buyerQuestions",
      -  "channel",
      -  "excerpt",
      -  "id",
      -  "pillarId",
      -  "publishedAt",
      -  "refresh",
      -  "rev",
      -  "scheduledAt",
      -  "status",
      -  "updatedAt"
      -]New value: +[
      +  "angleId",
      +  "appUrl",
      +  "buyerQuestions",
      +  "channel",
      +  "excerpt",
      +  "handoff",
      +  "id",
      +  "pillarId",
      +  "publishedAt",
      +  "refresh",
      +  "rev",
      +  "scheduledAt",
      +  "status",
      +  "updatedAt"
      +]
  5. Changed3 schema fields changed
    • changedInput schema / properties / websiteState / enum
      Previous value: -[
      -  "queued",
      -  "draft",
      -  "published",
      -  "failed",
      -  "removed",
      -  "conflict",
      -  "out_of_sync",
      -  "none"
      -]New value: +[
      +  "preview",
      +  "queued",
      +  "draft",
      +  "published",
      +  "failed",
      +  "removed",
      +  "conflict",
      +  "out_of_sync",
      +  "none"
      +]
    • addedOutput schema / properties / items / items / properties / refresh
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "pageUrl": {
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "pageUrl",
      +        "text"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "angleId",
      -  "appUrl",
      -  "buyerQuestions",
      -  "channel",
      -  "excerpt",
      -  "id",
      -  "pillarId",
      -  "publishedAt",
      -  "rev",
      -  "scheduledAt",
      -  "status",
      -  "updatedAt"
      -]New value: +[
      +  "angleId",
      +  "appUrl",
      +  "buyerQuestions",
      +  "channel",
      +  "excerpt",
      +  "id",
      +  "pillarId",
      +  "publishedAt",
      +  "refresh",
      +  "rev",
      +  "scheduledAt",
      +  "status",
      +  "updatedAt"
      +]
  6. Changed2 schema fields changed
    • addedOutput schema / properties / items / items / properties / buyerQuestions
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "question": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "question"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / items / items / required
      Previous value: -[
      -  "angleId",
      -  "appUrl",
      -  "channel",
      -  "excerpt",
      -  "id",
      -  "pillarId",
      -  "publishedAt",
      -  "rev",
      -  "scheduledAt",
      -  "status",
      -  "updatedAt"
      -]New value: +[
      +  "angleId",
      +  "appUrl",
      +  "buyerQuestions",
      +  "channel",
      +  "excerpt",
      +  "id",
      +  "pillarId",
      +  "publishedAt",
      +  "rev",
      +  "scheduledAt",
      +  "status",
      +  "updatedAt"
      +]
  7. Changed1 schema field changed
    • addedInput schema / properties / websiteState
      Added value: +{
      +  "description": "Filter website posts by CMS delivery state: queued, draft (saved in the CMS, not live), published, failed, removed, conflict, out_of_sync, or none. Same values as get_post's website.state.",
      +  "enum": [
      +    "queued",
      +    "draft",
      +    "published",
      +    "failed",
      +    "removed",
      +    "conflict",
      +    "out_of_sync",
      +    "none"
      +  ],
      +  "type": "string"
      +}
  8. Changed1 schema field changed
    • addedInput schema / properties / timezone
      Added value: +{
      +  "description": "IANA zone to render times in. Does not change stored data. Defaults to the workspace timezone.",
      +  "type": "string"
      +}
  9. Changed2 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"Scheduled-from ISO date."New value: +"Scheduled-from: YYYY-MM-DD (start of that day in the workspace timezone) or a full ISO timestamp."
    • changedInput schema / properties / to / description
      Previous value: -"Scheduled-to ISO date."New value: +"Scheduled-to: YYYY-MM-DD (includes that whole day in the workspace timezone) or a full ISO timestamp."
  10. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources