Skip to main content
Glama
thenavidm

Buffer MCP Server

by thenavidm

Create a content item together with all of its channel-specific post variants in a single operation. Validation is all-or-nothing: if any variant fails validation, no content item and no variants are created. Variants that fail while being processed after creation are reported per channel in the failure payload; the content item and its variants are still created in that case. This API is an early preview and can change without a deprecation period.

create_content_item
Destructive

Create a content item together with its channel-specific post variants in one call, with all-or-nothing validation that blocks partial saves.

Instructions

Create a content item together with all of its channel-specific post variants in a single operation. Validation is all-or-nothing: if any variant fails validation, no content item and no variants are created. Variants that fail while being processed after creation are reported per channel in the failure payload; the content item and its variants are still created in that case.

This API is an early preview and can change without a deprecation period.. Current Buffer GraphQL createContentItem. Requires explicit confirmation. Use upstream fields to bound data; provider errors are failures even with HTTP 200.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
postsNoThe channel-specific post variants to create, one per channel. Provide at least one variant, and at most one variant per channel.
titleNoOptional title describing what this piece of content is about.
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.
tagIdsNoTags to apply to this content item. Omit to create it with no tags.
accountNoPrivate account profile name. Selects credentials only; an organization default does not restrict provider token permissions.
confirmNoMust be true for this exact user-requested Buffer mutation.
payloadNoComplete native input object instead of individual input fields.
targetDateNoOptional date indicating when this piece of content should go out. This is a planning aid only and does not schedule any posts.
payload_fileNoRegular local JSON input file, no symlink, at most 1 MiB; cannot mix with payload or individual input fields.
organizationIdNoOrganization that owns the content item and all variants created in it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructive=true, idempotent=false), the description discloses genuinely non-obvious behavior: all-or-nothing validation that rolls back creation on pre-creation failures, per-channel failure reporting for post-creation failures where the item and variants persist, a mandatory confirmation gate, provider errors surfacing as failures even with HTTP 200, and the fragility of an early-preview API.

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 is front-loaded and the extra sentences (confirmation, field bounding, provider errors) each carry weight. It loses a point because the entire title block is duplicated verbatim in the description, including a stray double period, adding length without new information.

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 high-complexity, destructive, non-idempotent 10-parameter mutation with no output schema, the description covers the critical gaps: creation semantics, rollback vs partial-failure outcome, and preview instability. It does not describe the returned payload structure or how the caller learns which channels failed beyond the per-channel mention, but the core decision-relevant behavior is present.

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 the baseline is 3, but the description adds real meaning for two parameters: it ties the explicit-confirmation requirement to `confirm` and explains the purpose of `fields` (upstream field paths that bound data). The large nested post/metadata payloads are left entirely to the schema, which is reasonable given its richness.

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?

The description states a specific verb and composite resource: creating a content item together with all of its channel-specific post variants in a single operation. This clearly separates it from siblings like create_post, create_content_item_draft, and add_post_to_content_item without the agent needing to open any schema.

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?

It conveys clear operating context: the call requires explicit confirmation and upstream `fields` should be used to bound the response. It does not, however, explicitly say when to prefer this over create_post or create_content_item_draft, so the agent must infer the alternative-routing decision.

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