Skip to main content
Glama
thenavidm

Buffer MCP Server

by thenavidm

Get content items

get_content_items
Read-onlyIdempotent

Fetch an organization's content items with sorting and filters, using cursor pagination to retrieve pages newest first by default.

Instructions

Fetch an organization's content items in the requested order, newest first by default. Uses standard cursor pagination: pass the previous page's pageInfo.endCursor as after to fetch the next page. Requesting more than 100 items in a single page is rejected.

This API is an early preview and can change without a deprecation period.. Current Buffer GraphQL contentItems. One request, no automatic pagination. Use upstream fields to bound data; provider errors are failures even with HTTP 200.

Input Schema

NameRequiredDescriptionDefault
sortNo
afterNoOpaque cursor from pageInfo.endCursor. One page per ordinary call.
firstNoLocal page-size cap 100, default 25; provider may impose additional query limits.
fieldsNoUpstream field paths relative to the result, as in official CLI --fields. Default fields are bounded. Use items.id for connection nodes; pageInfo.endCursor for cursors.
filterNo
accountNoPrivate account profile name. Selects credentials only; an organization default does not restrict provider token permissions.
payloadNoComplete native input object instead of individual input fields.
payload_fileNoRegular local JSON input file, no symlink, at most 1 MiB; cannot mix with payload or individual input fields.
organizationIdNoOrganization to list content items for. The caller must be a member of this organization.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed19 schema fields changedv3.0.1
    • addedInput schema / $defs
      Added value: +{
      +  "filter": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "contentStatus": {
      +        "description": "Only return content items with this content status. When omitted, content\nitems in every status are returned.",
      +        "enum": [
      +          "draftContent",
      +          "postContent"
      +        ],
      +        "type": "string"
      +      },
      +      "tags": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "in": {
      +            "description": "Include results that have any of the specified tags (union/OR).",
      +            "items": {
      +              "description": "Include results that have any of the specified tags (union/OR).",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "isEmpty": {
      +            "description": "When true, include results that have no tags assigned.\nCan be combined with 'in' for union filtering.\nDefaults to false if not specified.",
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "in"
      +        ],
      +        "type": "object"
      +      },
      +      "targetDate": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "presence": {
      +            "description": "Only return content items by whether a target date is set: `present`\nreturns only dated items, `absent` only undated ones.",
      +            "enum": [
      +              "absent",
      +              "present"
      +            ],
      +            "type": "string"
      +          },
      +          "range": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "end": {
      +                "description": "Include results with dates equal to or before\nthe specified date",
      +                "type": "string"
      +              },
      +              "start": {
      +                "description": "Include results with dates equal to or after\nthe specified date",
      +                "type": "string"
      +              }
      +            },
      +            "required": [],
      +            "type": "object"
      +          }
      +        },
      +        "required": [],
      +        "type": "object"
      +      }
      +    },
      +    "required": [],
      +    "type": "object"
      +  },
      +  "sort": {
      +    "description": "Sorting to apply, each entry breaking ties in the one before it. Defaults to\nnewest first. A pagination cursor is only valid for the sort that produced\nit, so reset `after` to null whenever the sort changes.",
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "direction": {
      +          "description": "The direction to sort by.",
      +          "enum": [
      +            "asc",
      +            "desc"
      +          ],
      +          "type": "string"
      +        },
      +        "field": {
      +          "description": "The field to sort by.",
      +          "enum": [
      +            "targetDate",
      +            "createdAt"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "direction",
      +        "field"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +}
    • addedInput schema / properties / filter / $ref
      Added value: +"#/$defs/filter"
    • removedInput schema / properties / filter / additionalProperties
      Removed value: -false
    • removedInput schema / properties / filter / properties
      Removed value: -{
      -  "contentStatus": {
      -    "description": "Only return content items with this content status. When omitted, content\nitems in every status are returned.",
      -    "enum": [
      -      "draftContent",
      -      "postContent"
      -    ],
      -    "type": "string"
      -  },
      -  "tags": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "in": {
      -        "description": "Include results that have any of the specified tags (union/OR).",
      -        "items": {
      -          "description": "Include results that have any of the specified tags (union/OR).",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "isEmpty": {
      -        "description": "When true, include results that have no tags assigned.\nCan be combined with 'in' for union filtering.\nDefaults to false if not specified.",
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "in"
      -    ],
      -    "type": "object"
      -  },
      -  "targetDate": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "presence": {
      -        "description": "Only return content items by whether a target date is set: `present`\nreturns only dated items, `absent` only undated ones.",
      -        "enum": [
      -          "absent",
      -          "present"
      -        ],
      -        "type": "string"
      -      },
      -      "range": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "end": {
      -            "description": "Include results with dates equal to or before\nthe specified date",
      -            "type": "string"
      -          },
      -          "start": {
      -            "description": "Include results with dates equal to or after\nthe specified date",
      -            "type": "string"
      -          }
      -        },
      -        "required": [],
      -        "type": "object"
      -      }
      -    },
      -    "required": [],
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / filter / required
      Removed value: -[]
    • removedInput schema / properties / filter / type
      Removed value: -"object"
    • addedInput schema / properties / payload / properties / filter / $ref
      Added value: +"#/$defs/filter"
    • removedInput schema / properties / payload / properties / filter / additionalProperties
      Removed value: -false
    • removedInput schema / properties / payload / properties / filter / properties
      Removed value: -{
      -  "contentStatus": {
      -    "description": "Only return content items with this content status. When omitted, content\nitems in every status are returned.",
      -    "enum": [
      -      "draftContent",
      -      "postContent"
      -    ],
      -    "type": "string"
      -  },
      -  "tags": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "in": {
      -        "description": "Include results that have any of the specified tags (union/OR).",
      -        "items": {
      -          "description": "Include results that have any of the specified tags (union/OR).",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "isEmpty": {
      -        "description": "When true, include results that have no tags assigned.\nCan be combined with 'in' for union filtering.\nDefaults to false if not specified.",
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "in"
      -    ],
      -    "type": "object"
      -  },
      -  "targetDate": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "presence": {
      -        "description": "Only return content items by whether a target date is set: `present`\nreturns only dated items, `absent` only undated ones.",
      -        "enum": [
      -          "absent",
      -          "present"
      -        ],
      -        "type": "string"
      -      },
      -      "range": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "end": {
      -            "description": "Include results with dates equal to or before\nthe specified date",
      -            "type": "string"
      -          },
      -          "start": {
      -            "description": "Include results with dates equal to or after\nthe specified date",
      -            "type": "string"
      -          }
      -        },
      -        "required": [],
      -        "type": "object"
      -      }
      -    },
      -    "required": [],
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / payload / properties / filter / required
      Removed value: -[]
    • removedInput schema / properties / payload / properties / filter / type
      Removed value: -"object"
    • addedInput schema / properties / payload / properties / sort / $ref
      Added value: +"#/$defs/sort"
    • removedInput schema / properties / payload / properties / sort / description
      Removed value: -"Sorting to apply, each entry breaking ties in the one before it. Defaults to\nnewest first. A pagination cursor is only valid for the sort that produced\nit, so reset `after` to null whenever the sort changes."
    • removedInput schema / properties / payload / properties / sort / items
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "direction": {
      -      "description": "The direction to sort by.",
      -      "enum": [
      -        "asc",
      -        "desc"
      -      ],
      -      "type": "string"
      -    },
      -    "field": {
      -      "description": "The field to sort by.",
      -      "enum": [
      -        "targetDate",
      -        "createdAt"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "direction",
      -    "field"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / payload / properties / sort / type
      Removed value: -"array"
    • addedInput schema / properties / sort / $ref
      Added value: +"#/$defs/sort"
    • removedInput schema / properties / sort / description
      Removed value: -"Sorting to apply, each entry breaking ties in the one before it. Defaults to\nnewest first. A pagination cursor is only valid for the sort that produced\nit, so reset `after` to null whenever the sort changes."
    • removedInput schema / properties / sort / items
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "direction": {
      -      "description": "The direction to sort by.",
      -      "enum": [
      -        "asc",
      -        "desc"
      -      ],
      -      "type": "string"
      -    },
      -    "field": {
      -      "description": "The field to sort by.",
      -      "enum": [
      -        "targetDate",
      -        "createdAt"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "direction",
      -    "field"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / sort / type
      Removed value: -"array"
  2. First observedv2.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so safety is covered. The description adds real value beyond that: default ordering (newest first), the 100-item rejection rule, single-request-no-auto-pagination behavior, that provider errors surface as failures even on HTTP 200, and an early-preview instability warning. These are meaningful behavioral traits not in the annotations.

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?

Front-loaded with the core behavior in the first sentence and pagination rules immediately after, so the agent gets the essentials fast. Slightly marred by a stray double period and the telegraphic run-on 'Current Buffer GraphQL contentItems' fragment, but overall compact and well ordered.

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 9-parameter, nested-object tool with no output schema, the description covers the operational essentials: pagination model, default sort, page cap, single-request behavior, and preview fragility. Returned-field selection is left to the schema's `fields` param, which is acceptable; only minor gaps (auth/membership requirement is only in the schema) remain.

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 78%, so the schema documents most parameters (sort, filter, fields, account, orgId, payload). The description reinforces pagination semantics ('pass pageInfo.endCursor as after') and the page-size cap, and implies sort defaults to newest-first, but adds little syntax or format detail beyond the schema. Baseline 3 is appropriate.

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+resource+scope: 'Fetch an organization's content items in the requested order, newest first by default.' An agent can tell this is a listing/read tool. It does not explicitly name the sibling get_content_item (singular) or contrast a collection fetch from a single-resource fetch, so differentiation is implicit rather than stated.

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?

The description gives operational guidance (use cursor pagination, pass pageInfo.endCursor as after, 100-item cap) but no explicit when-to-use/when-not guidance, e.g. vs get_content_item or the graphql_query sibling. Usage is implied by 'fetch an organization's content items' rather than spelled out against alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.