Skip to main content
Glama

Create Scheduled Post

postnitro_create_scheduled_post

Create a scheduled post or draft for LinkedIn, Instagram, TikTok, and/or Threads.

Workflow:

  1. postnitro_list_social_accounts → pick account IDs for selectedAccounts

  2. (optional) attach a designId — a carousel you created with PostNitro. Use the design's ID (the 'designId' field returned by postnitro_get_output / postnitro_generate_and_wait), NOT the generation embedPostId.

  3. provide a caption via postContent and/or a designId (a post needs at least one)

Rules enforced by the API (surfaced as error messages here):

  • scheduledAt must be a future ISO-8601 datetime.

  • A post must have either a designId or non-empty postContent. designId may be null only for DRAFT.

  • Per-platform *PostSettings are conditionally required based on the selected accounts' platforms and whether a designId is set (see each field's description). LinkedIn requires a designId when SCHEDULED.

  • postSettings (video render settings) applies when any postType resolves to 'reel'. You may omit it: the API fills the duration and audio from the attached design's own settings, falling back to 30 seconds with no audio.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYes'DRAFT' or 'SCHEDULED'
designIdNoID of a design in your workspace to attach. This is the design ID (the `designId` field from a carousel's output / postnitro_get_output), NOT the generation job's embedPostId — passing an embedPostId here fails with 'Design not found.' A post must have either a designId or non-empty postContent. May only be null/omitted for DRAFT.
postContentNoCaption text keyed by platform. Required unless a designId is set; at least one key must be non-empty. Hashtags are extracted automatically.
scheduledAtYesISO-8601 datetime string. Must be in the future (for both drafts and scheduled posts).
postSettingsNoVideo render settings, used when any resolved postType is 'reel'. Optional: when omitted, the API fills each field from the videoSettings the attached design was generated with, falling back to 30 seconds with no audio. Same shape as a VIDEO post's videoSettings.
selectedAccountsNoSocial-account IDs to publish to (from postnitro_list_social_accounts). The platforms among these determine which *PostSettings are required.
tiktokPostSettingsNoRequired when a TikTok account is selected AND a designId is set. When SCHEDULED: if isBrandedContent is true, at least one of isYourBrand/isThirdPartyBrand must be true, and isBrandedContent cannot be true with privacyLevel SELF_ONLY.
threadsPostSettingsNoRequired when a Threads account is selected AND a designId is set
linkedinPostSettingsNoRequired when a LinkedIn account is selected. A designId is required when status is SCHEDULED (text-only LinkedIn posts can only be drafts).
instagramPostSettingsNoRequired when an Instagram account is selected AND a designId is set

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
postYesA scheduled post or draft
messageYesConfirmation message
successYes
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
scheduledPostIdYesID of the scheduled post — pass to get/update/delete

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description thoroughly discloses behavioral requirements and edge cases: scheduledAt must be in the future, a post must have either a designId or non-empty postContent, platform-specific settings are conditionally required, and postSettings fallback behavior is explained. It also warns about the embedPostId pitfall. This goes well beyond the annotations, which only indicate low-level flags.

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?

The description is fairly long, but the content is well-organized into 'Workflow' and 'Rules enforced by the API' sections. Each sentence provides necessary information for correct usage. Some redundancy with schema descriptions exists, but it is purposeful for emphasis. The structure makes complex conditional logic approachable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is comprehensive for the tool's complexity. It references dependent tools (postnitro_list_social_accounts, postnitro_list_audio, postnitro_get_output), explains the designId vs embedPostId pitfall, details platform-specific settings requirements, and covers fallback behavior. An agent has all necessary context to correctly invoke the tool without needing to infer hidden rules.

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?

The schema description coverage is 100% and each parameter already has detailed descriptions. The tool description adds value by reinforcing the designId vs embedPostId distinction, explaining the postSettings fallback, and outlining the conditional requirements across platforms (e.g., LinkedIn document rule). It does not introduce new parameter semantics beyond what the schema already provides, but it contextualizes them effectively.

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 clearly states the tool's purpose: 'Create a scheduled post or draft for LinkedIn, Instagram, TikTok, and/or Threads.' The verb 'Create' is specific, and the resource (a scheduled post/draft) is unambiguous. It also names the target platforms, so an agent knows exactly what to expect.

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?

The description provides a step-by-step workflow (list social accounts, attach a design, provide caption, set post settings) and clarifies key rules (e.g., designId vs embedPostId, required platform-specific settings, postSettings fallback). It does not explicitly compare against sibling tools like postnitro_generate_and_schedule or postnitro_update_scheduled_post, but the workflow and conditions give strong practical guidance.

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.

TDQS

A4/5.0
Disambiguation4/5

Most tools are clearly separated by verb and noun (generate_carousel vs generate_image vs generate_video, import_* vs generate_*). The generic convenience names like generate_and_wait and import_and_wait are slightly ambiguous, but their descriptions and the _wait/_schedule suffixes make them distinguishable.

Naming Consistency4/5

All tools share the postnitro_ prefix and snake_case verb-first convention. A few compound names (generate_and_schedule, import_and_wait) break the strict verb_noun pattern, but the convention is otherwise consistent and predictable.

Tool Count2/5

With 35 tools, the surface exceeds the rubric's 25+ 'too many' threshold. Many entries are convenience wrappers (_wait, _and_schedule) around the same core operations and could be consolidated to reduce overload.

Completeness4/5

The domain is well covered: generation, import, output retrieval, scheduling, brands, social accounts, audio, templates, presets, and defaults. Minor gaps remain (no delete_brand, no upload/connect for audio/social accounts), but those are largely external or non-critical.

Resources