Skip to main content
Glama

Server Details

The PostNitro MCP server lets AI assistants and agents — Claude (Desktop, Code, and Cowork), Cursor, ChatGPT, and any other Model Context Protocol client — create carousels, image posts, and videos, manage brand kits, audio tracks, and connected social accounts, and schedule posts directly. Instead of writing REST API calls, you connect the server once and your AI assistant gets ready-made tools covering carousel, image, and video generation, brands, audio, social accounts, and scheduling.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

35 tools
postnitro_check_statusCheck Post StatusA
Read-onlyIdempotent
Inspect

Check the generation status and processing logs for a post. When AI image generation was requested (generateImages), a GENERATE_IMAGES step appears in the logs — status COMPLETED with a count, or FAILED with a skip reason (the overall post can still be COMPLETED, since images are best-effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
embedPostIdYesThe embed post ID to check

Output Schema

ParametersJSON Schema
NameRequiredDescription
logsYesProcessing log, oldest first
statusYesOverall job status: 'PENDING', 'PROCESSING', 'COMPLETED', or 'FAILED'
createdAtNoISO-8601 creation time
updatedAtNoISO-8601 last-update time
embedPostIdYesThe generation-job ID

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent behavior. The description adds meaningful behavioral nuance beyond the annotations, such as the GENERATE_IMAGES log status values and the fact that the overall post can still be COMPLETED even if image generation fails. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using two focused sentences. It provides necessary context without any redundant or irrelevant 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?

The description conveys the expected outcome (status and processing logs) and highlights an important edge case about image generation failures. While it does not detail the exact output schema, that information is indicated as externally available, so the description is sufficiently complete for usage.

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?

There is only one parameter, embedPostId, and its schema description ('The embed post ID to check') fully covers its meaning. The tool description adds no additional semantic detail about the parameter, so the score stays at the baseline for full schema coverage.

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?

The description clearly identifies the tool's purpose: checking generation status and processing logs for a post. It includes useful specific detail about the GENERATE_IMAGES step, which distinguishes it from general post retrieval tools, though it does not explicitly name sibling alternatives.

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 implicit guidance about what to expect, especially the best-effort nature of image generation and the possibility of COMPLETED overall status despite an image failure. However, it does not explicitly state when to use this tool versus related siblings like get_scheduled_post or get_output.

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

postnitro_create_brandCreate BrandAInspect

Create a new brand kit (the logo, name, and handle stamped onto generated carousels).

All seven fields are required. The new brand's ID is returned — use it as a brandId in generate/import or save it via postnitro_set_defaults.

Note: plans cap the number of brands; exceeding it returns an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBrand display name (required)
imageYesLogo image URL (required)
handleYesSocial handle, e.g. '@postnitroai' (required)
showNameYesRender the name on slides
showImageYesRender the logo on slides
showHandleYesRender the handle on slides
isCompanyDetailYesTreat as a company brand (vs personal)

Output Schema

ParametersJSON Schema
NameRequiredDescription
brandYesThe brand that was created
messageYesConfirmation message
successYes

TDQS

A4.2/5.0
Behavior4/5

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

Discloses required fields, the plan cap failure condition, and that an ID is returned; complements annotations by specifying error behavior and output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences plus a note; no fluff, purpose is front-loaded, and all key information is presented efficiently.

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?

Covers purpose, output usage, and an error condition. Although no explicit output schema is shown, the description of the returned ID is sufficient for basic usage.

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% and each parameter is described. The tool description restates that all fields are required but does not add deeper semantics beyond the schema.

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?

Clearly states it creates a new brand kit (logo, name, handle) and distinguishes from sibling tools like update_brand, list_brands, and get_brand.

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?

Provides guidance on using the returned brand ID for generate/import or setting defaults, and mentions the plan cap error; does not explicitly contrast with update_brand but context makes it clear.

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

postnitro_create_scheduled_postCreate Scheduled PostAInspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
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

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.

postnitro_delete_audioDelete Audio FileA
DestructiveIdempotent
Inspect

Permanently delete an audio file from the workspace, including the stored file. This cannot be undone — confirm with the user first.

An audio file still referenced by a scheduled post is refused (the reel would lose its soundtrack at publish time); remove it from those posts first. Videos already rendered to MP4 keep their audio, since the track is baked into the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioIdYesThe audio ID to delete (get from postnitro_list_audio)

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesConfirmation message
successYes

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond the annotations (destructiveHint=true, idempotentHint=true) by explaining irreversibility, the requirement to confirm with the user, the refusal behavior for audio in scheduled posts, and the fact that rendered MP4s keep their audio. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs: the first states the action and irreversibility; the second covers two important edge cases. No redundant words, and the critical information is front-loaded.

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 covers all key operational aspects: irreversibility, confirmation need, dependency on scheduled posts, and behavior with rendered videos. With an output schema present and the simplicity of one parameter, nothing essential is missing for an agent to invoke it correctly.

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% — the audioId parameter has a clear description ('The audio ID to delete (get from postnitro_list_audio)'). The tool description adds no extra parameter semantics, but the schema already handles it, so baseline 3 is appropriate.

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 function: 'Permanently delete an audio file from the workspace, including the stored file.' It specifies the verb (delete), resource (audio file), and scope (workspace and stored file), distinguishing it from sibling tools like postnitro_delete_scheduled_post.

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 gives practical guidance: confirm with the user first due to irreversibility, and warns that audio referenced by scheduled posts is refused, requiring removal from those posts first. It doesn't explicitly name alternatives, but none exist for this operation; the context is clear enough.

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

postnitro_delete_scheduled_postDelete Scheduled PostA
DestructiveIdempotent
Inspect

Delete a scheduled post (or draft) and all of its related content. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduledPostIdYesThe scheduled-post ID to delete (get from postnitro_list_scheduled_posts)

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesConfirmation message
successYes

TDQS

A4.5/5.0
Behavior5/5

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

Explicitly warns that the action cannot be undone, reinforcing the destructiveHint annotation. Also mentions deletion of related content, providing side-effect detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, concise and front-loaded with the primary action.

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?

Adequate for a simple delete operation; no extra context needed.

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 single parameter scheduledPostId is well-described in the schema with a source reference. The tool description does not add extra meaning but is consistent.

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?

Clearly states the action (delete) and the target (scheduled post or draft) and scope (related content). Distinguishes from other scheduled post tools by its destructive nature.

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?

Does not explicitly compare to alternatives like update_scheduled_post, but the destructive intent is clear. Lacks guidance on when to use vs other tools, so a moderate score.

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

postnitro_disconnect_social_accountDisconnect Social AccountA
DestructiveIdempotent
Inspect

Disconnect (delete) a connected social account. This also removes it from every scheduled post it was attached to. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
socialAccountIdYesThe social-account ID to disconnect (get from postnitro_list_social_accounts)

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesConfirmation message
successYes

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses that the action cannot be undone and that it removes the account from every scheduled post, which are essential side effects. This aligns well with the destructiveHint annotation and provides sufficient transparency for the user.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using only two sentences with no redundancy. It covers the action, the key consequence, and the irreversible nature without unnecessary detail.

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 destructive delete operation, the description covers the primary effects (account removal and scheduled post removal) and irreversibility. It doesn't address edge cases like non-existent account IDs, but that is not essential for typical use. Overall, the description is complete enough for an agent to understand the tool's purpose and impact.

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?

The single parameter 'socialAccountId' has its meaning and source fully described in the schema itself ('get from postnitro_list_social_accounts'). The description adds no additional semantic value beyond the schema, so the baseline score of 3 is appropriate.

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 verb 'disconnect' and the resource 'social account', and explicitly notes that it deletes the account and removes it from scheduled posts, making it unambiguous. It is distinct from list/get operations for social accounts.

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?

While it doesn't explicitly name alternatives, the description implicitly guides usage by emphasizing the irreversible nature and the impact on scheduled posts, which are critical warnings for when to use this operation. The sibling tools for listing/retrieving accounts are obvious non-destructive alternatives.

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

postnitro_generate_and_scheduleGenerate Carousel and Schedule ItAInspect

Convenience tool: generates a post with AI (postType 'CAROUSEL' by default, 'IMAGE' for a single-image post, or 'VIDEO' for a video), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 30-180 seconds (longer for a rendered video).

templateId, brandId, presetId, and responseType are optional if saved via postnitro_set_defaults.

The design that gets attached is the completed carousel's design ID (result.designId from the generation output) — NOT the generation job ID. You normally don't set designId; it's resolved automatically. Pass designId only to attach a pre-existing design instead of the freshly generated one.

If scheduling fails after the carousel is already generated (e.g. an invalid platform-settings combination), this tool returns the generated designId so you can fix the inputs and retry with postnitro_create_scheduled_post — WITHOUT regenerating (which would burn credits again).

Provide the scheduling fields (status, scheduledAt, selectedAccounts, captions, and any required per-platform settings) just as you would for postnitro_create_scheduled_post.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes'DRAFT' or 'SCHEDULED'
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
designIdNoAttach a pre-existing design instead of the freshly generated one. Leave unset to use the generated carousel's design.
postTypeNo'CAROUSEL' (default) generates a multi-slide carousel; 'IMAGE' generates a single-image post; 'VIDEO' generates a video whose slides are its scenes. The rest of the request is identical, except VIDEO also accepts videoSettings and only supports responseType 'MP4' or 'DESIGN'.CAROUSEL
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
postContentNoCaption text keyed by platform. Required unless a designId is set; at least one key must be non-empty. Hashtags are extracted automatically.
requestorIdNoOptional custom tracking ID
scheduledAtYesISO-8601 datetime string. Must be in the future.
aiGenerationYes
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.
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back, or 'MP4' for a rendered video (postType 'VIDEO' only). Optional if saved via postnitro_set_defaults.
videoSettingsNoVideo render settings — postType 'VIDEO' only. Required when responseType is 'MP4'. Scheduling a reel reuses these automatically, so you usually don't also need postSettings.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.
selectedAccountsNoSocial-account IDs to publish to (from postnitro_list_social_accounts)
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

ParametersJSON Schema
NameRequiredDescription
postYesA scheduled post or draft
messageYesConfirmation message
successYes
designIdYesThe design attached to the scheduled post
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesThe generation/import job ID
scheduledPostIdYesID of the created scheduled post

TDQS

A4.7/5.0
Behavior5/5

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

The description is highly transparent about side effects: it generates AI content, waits, attaches a design, schedules the post, may consume credits, and can fail during scheduling while still returning a designId to avoid regenerating. It also mentions latency (30-180 seconds), optional image generation behavior, and plan/quota implications. This matches the annotations (readOnlyHint false, destructiveHint false, idempotentHint false).

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 well-structured and front-loaded with a one-sentence summary, followed by clarifications about designId, failure retry, and scheduling fields. It is somewhat long and repeats concepts also present in the schema, but the complexity of the tool justifies the length and the prose is organized and scannable.

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 provides sufficient context for what the tool does, how long it may take, what to do on failure, and how to supply required scheduling fields. Since the output schema is present, the lack of explicit return-value details is acceptable; the description still covers the important designId failure-return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers 95% of parameters, and the description adds meaningful detail beyond the schema: it clarifies designId's role, explains postSettings reuse for reels, gives instructions for generateImages.context, and elaborates on responseType and videoSettings. Even nested parameters benefit from extra context such as the LinkedIn document/carousel distinction and TikTok requirements.

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: it generates a post with AI, waits for completion, then creates a scheduled post with the resulting design. It also distinguishes itself as a 'convenience tool' that combines generation and scheduling, and references the related postnitro_create_scheduled_post for the scheduling portion.

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 gives practical guidance on how to use the tool, including how to handle scheduling failures by retrying with postnitro_create_scheduled_post, and notes that scheduling fields should be provided exactly as they would be for that sibling tool. It could be more explicit about when to choose this over sequentially calling generate_and_wait and create_scheduled_post, but the convenience-tool framing makes the usage intent reasonably clear.

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

postnitro_generate_and_waitGenerate Carousel and Wait for OutputAInspect

Convenience tool: generates a carousel with AI, polls until completion, and returns the final output. May take 30-180 seconds.

For a single-image post instead of a carousel, use postnitro_generate_image_and_wait.

templateId, brandId, presetId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
aiGenerationYes
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.2/5.0
Behavior3/5

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

The description discloses that the tool polls until completion, returns the final output, and may take up to 180 seconds. It does not mention side effects such as credit consumption or that repeated calls may create multiple generations, but annotations do not contradict the described behavior.

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 well-structured and includes several helpful usage notes, but it is somewhat long and repeats the 'optional if saved via defaults' point multiple times. Overall it remains focused and readable.

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?

Given the complexity of the nested parameters, the description covers key operational details such as polling, response types, image generation behavior, and failure best-effort outcomes. It does not describe the exact return shape, but the context indicates an output schema exists, so this is not a critical gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value beyond the schema, especially for generateImages.context by instructing the agent to author the brief itself and not ask the user. It also clarifies responseType 'DESIGN' behavior, image strategy and placement choices, and the paid-plan/quota/latency implications of image generation.

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?

Description clearly states the tool generates a carousel with AI, polls until completion, and returns the final output. It explicitly distinguishes itself from the single-image sibling tool, making its purpose and scope unambiguous.

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 useful usage context: it is a convenience tool that waits and returns output, may take 30-180 seconds, and notes where optional defaults apply. It points to an alternative for single-image posts, though it does not explicitly contrast with all related generation/scheduling tools.

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

postnitro_generate_imageGenerate Image Post with AIAInspect

Generate a single-image post (postType IMAGE) using PostNitro's AI engine. Returns an embedPostId to track progress.

The content is AI-generated from your aiGeneration prompt — you do NOT provide slides. (To supply your own image content instead, use postnitro_import_image.)

templateId, brandId, presetId, and responseType are optional if you've saved defaults via postnitro_set_defaults. Otherwise provide them here (use the list tools to find valid IDs).

Use postnitro_check_status to monitor, then postnitro_get_output to retrieve. Or use postnitro_generate_image_and_wait for one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
aiGenerationYes
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial job status ('PENDING')
messageNoMessage returned by the PostNitro API
successYesTrue when the job was accepted
nextStepYesThe suggested follow-up call
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesGeneration-job ID — pass to postnitro_check_status, then postnitro_get_output
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.7/5.0
Behavior4/5

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

Discloses async behavior, that a trackable embedPostId is returned, and points to status/output retrieval. It does not mention credit consumption or possible failure modes, but the annotations do not contradict the described behavior and the readOnly/destructive hints are consistent with a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Organized with purpose first, then alternative tool, then parameter guidance, then workflow. Each sentence earns its place and there is no filler or redundancy despite covering several operational details.

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?

Covers the full lifecycle: create, get embedPostId, monitor, retrieve, and the wait variant. Since an output schema is present, the description need not spell out return fields, and it gives enough context for correct invocation.

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 already high (86%), so the description adds limited new parameter-level detail. It usefully clarifies that slides are not provided for this tool, that IDs come from list tools, and that defaults can make optional fields unnecessary—reinforcing the schema without contradicting it.

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?

Opens with a specific verb and resource: 'Generate a single-image post (postType IMAGE) using PostNitro's AI engine.' It explicitly distinguishes this from postnitro_import_image and implies contrast with carousel/video siblings, so an agent knows exactly when to select it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational guidance: use postnitro_check_status then postnitro_get_output, or call postnitro_generate_image_and_wait for one-step. It also tells the agent to use list tools for valid IDs and explains optional defaults, leaving no ambiguity about how to proceed.

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

postnitro_generate_image_and_waitGenerate Image Post and Wait for OutputAInspect

Convenience tool: AI-generates a single-image post (postType IMAGE), polls until completion, and returns the final output. May take 30-180 seconds.

The content is AI-generated from your aiGeneration prompt — you do NOT provide slides. (To supply your own image content instead, use postnitro_import_image_and_wait.)

templateId, brandId, presetId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
aiGenerationYes
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4/5.0
Behavior3/5

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

The description adds useful behavior beyond the annotations: it will poll until completion, may take 30-180 seconds, and the content is AI-generated from the prompt rather than supplied as slides. However, it does not mention side effects such as credit consumption, non-idempotency, or what happens on failure/timeout. With annotations all false and carrying little safety information, the description leaves some behavioral burden unmet.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences/paragraphs, each earning its place: the first states purpose, scope, and latency; the second clarifies the content source and routes to the import alternative; the third covers optional defaults. The critical information is front-loaded and there is no filler.

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 blocking generation tool with a rich input schema, an output schema, and a clear sibling alternative, the description covers the essential call flow, latency expectation, and default-saving behavior. It does not explain the optional generateImages object or failure handling, but the schema's detailed generateImages description and the output schema reduce the need for the main description to repeat them.

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 high (86%), so the schema already documents most parameter meanings. The description adds a useful consolidation that templateId, brandId, presetId, and responseType can be omitted when defaults are saved, and clarifies that aiGeneration is a prompt rather than slide content. This is helpful but not a substantial departure from the schema's own parameter descriptions.

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 opens with a specific verb and resource: it 'AI-generates a single-image post (postType IMAGE), polls until completion, and returns the final output.' This clearly identifies the tool's action, output, and blocking behavior, and distinguishes it from the import path by stating that content is AI-generated rather than user-supplied.

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 gives an explicit alternative for the main competing case: 'To supply your own image content instead, use postnitro_import_image_and_wait.' It also notes that several parameters can be omitted if defaults were saved. It does not explicitly contrast with the non-waiting sibling postnitro_generate_image or with carousel tools, but the 'polls until completion' phrase and IMAGE postType make the intended use fairly clear.

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

postnitro_generate_videoGenerate Video Post with AIAInspect

Generate a video post (postType VIDEO) using PostNitro's AI engine. Returns an embedPostId to track progress.

The content is AI-generated from your aiGeneration prompt — you do NOT provide slides. Each slide the AI writes becomes a scene in the video. (To supply your own scene content instead, use postnitro_import_video.)

Output: 'DESIGN' (default) creates the design without rendering; 'MP4' renders the video file and requires videoSettings (duration, optional audio track).

templateId, brandId, presetId, and responseType are optional if you've saved defaults via postnitro_set_defaults. Otherwise provide them here (use the list tools to find valid IDs).

Use postnitro_check_status to monitor, then postnitro_get_output to retrieve. Or use postnitro_generate_video_and_wait for one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
aiGenerationYes
responseTypeNoOutput format for a video. 'DESIGN' (default) creates the design without rendering — fastest, and enough for scheduling or finishing in the editor. 'MP4' renders the video file and requires videoSettings. A video cannot be rendered as PDF or PNG.
videoSettingsNoVideo render settings. REQUIRED when responseType is 'MP4' (a render needs a duration); optional for 'DESIGN'. When this video is later scheduled as a reel, the API reuses these settings automatically.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial job status ('PENDING')
messageNoMessage returned by the PostNitro API
successYesTrue when the job was accepted
nextStepYesThe suggested follow-up call
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesGeneration-job ID — pass to postnitro_check_status, then postnitro_get_output
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A5/5.0
Behavior5/5

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

Discloses asynchronous behavior (returns embedPostId for progress tracking), best-effort image generation with failure/completion notes, quota and plan requirements, latency impact, and audio ID validation semantics (rejects URLs/non-audio IDs). It also explains rendering limitations (cannot be PDF/PNG) and future reuse of videoSettings for reels.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but every sentence serves a purpose, covering core action, async workflow, parameter nuances, and cross-tool references. The structure uses clear paragraphs and inline parentheticals that keep related information together without redundancy.

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?

Given the output schema is present, the description still adds key operational context: that a returned embedPostId is used for tracking, how to check results and retrieve output, the distinction between DESIGN and MP4, and the conditions under which images may fail. This is sufficient for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds substantial meaning beyond the schema: explains that slides become scenes, clarifies videoDuration bounds and requirement, specifies audioId must be a media ID not URL, instructs the agent to author generateImages.context itself rather than asking the user, and details imageStrategy/imagePlacement behavior. This goes well beyond the raw property descriptions.

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?

States the tool generates a video post via AI and returns an embedPostId, clearly distinguishing it from import-based video creation by noting it uses AI-generated scenes rather than user-supplied slides. It also mentions the postType VIDEO and contrasts with postnitro_import_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use which responseType, when videoSettings is required, and references related tools for defaults, listing, status checking, and retrieval. It also names the synchronous alternative postnitro_generate_video_and_wait, making usage conditions clear.

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

postnitro_generate_video_and_waitGenerate Video Post and Wait for OutputAInspect

Convenience tool: AI-generates a video post (postType VIDEO), polls until completion, and returns the final output. Rendering a video takes longer than a carousel — typically 15-45 seconds when responseType is 'MP4', and longer for designs with animations or GIFs (which use the enhanced renderer).

The content is AI-generated from your aiGeneration prompt — you do NOT provide slides. (To supply your own scene content instead, use postnitro_import_video_and_wait.)

Output: 'DESIGN' (default) creates the design without rendering; 'MP4' renders the video file and requires videoSettings.

templateId, brandId, presetId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
presetIdNoAI preset ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
aiGenerationYes
responseTypeNoOutput format for a video. 'DESIGN' (default) creates the design without rendering — fastest, and enough for scheduling or finishing in the editor. 'MP4' renders the video file and requires videoSettings. A video cannot be rendered as PDF or PNG.
videoSettingsNoVideo render settings. REQUIRED when responseType is 'MP4' (a render needs a duration); optional for 'DESIGN'. When this video is later scheduled as a reel, the API reuses these settings automatically.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses behavioral details beyond annotations: it waits and polls, has typical latency, may still complete if image generation fails, consumes AI-image quota, and requires specific conditions for MP4 rendering. This aligns with the annotations (non-destructive, non-idempotent) without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loaded with the core purpose, and each paragraph adds value covering distinct aspects: latency, AI generation vs import, output types, and optional defaults. Despite length, it is not verbose and every sentence serves a purpose.

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?

Given the tool's complexity (nested objects, many optional parameters), the description is thorough. It explains the waiting behavior, output options, image generation fallback, and how to check status via postnitro_check_status. Together with the rich schema, it provides enough context for an agent to use the tool effectively.

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 input schema already covers most parameters with descriptions (coverage 88%). The description adds extra clarifications such as 'A video cannot be rendered as PDF or PNG' and the relationship between responseType and videoSettings, which go slightly beyond the schema and aid understanding.

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 primary function: AI-generates a video post, polls until completion, and returns the final output. It also distinguishes itself from the import tool, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with postnitro_import_video_and_wait, advising to use this tool for AI-generated content and the import tool for custom slides. It also explains the trade-offs between DESIGN and MP4 response types and mentions optional defaults, giving clear guidance for selecting this tool over alternatives.

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

postnitro_get_brandGet BrandA
Read-onlyIdempotent
Inspect

Fetch a single brand kit by ID, including its display settings (showName, showHandle, showImage, isCompanyDetail).

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdYesThe brand ID (get from postnitro_list_brands)

Output Schema

ParametersJSON Schema
NameRequiredDescription
brandYesA brand kit

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which cover the safety profile. The description's 'Fetch' action aligns with these annotations and adds no contradictory or extra behavioral context, so a baseline score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that starts with the main verb 'Fetch'. It efficiently lists the display settings without unnecessary detail, making it easy to parse.

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?

For a simple single-resource fetch, the description is complete: it states what is fetched (brand kit with display settings) and how to identify it (by ID). No additional context is needed for this tool's scope.

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 for brandId is present, giving 100% coverage. The description adds a helpful cross-reference to postnitro_list_brands for obtaining the ID, which is extra value beyond the schema, so a score above baseline is warranted.

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 action (Fetch), the resource (brand kit), and the scope (by ID). It distinguishes from list_brands (fetch all) and update_brand (modify) by specifying a single brand and listing the display settings included.

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 implies usage when you have a specific brandId, and the parameter description cross-references postnitro_list_brands for obtaining the ID. However, it does not explicitly contrast with alternatives or provide explicit when-to-use guidance beyond the ID requirement.

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

postnitro_get_defaultsGet Saved Default SettingsA
Read-onlyIdempotent
Inspect

Retrieve your saved default templateId, brandId, presetId, and responseType. Returns null if no defaults are saved.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoGuidance shown when no defaults are saved
defaultsNoThe saved defaults; omitted when hasDefaults is false
hasDefaultsYesFalse when nothing has been saved yet

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the null-return behavior when no defaults are saved, which is not covered by annotations. This extra detail helps the agent anticipate outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action and key return fields, with no redundant wording. Efficient and to the point.

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?

For a parameterless getter with safety annotations and an output schema, the description fully covers the essential information: what it retrieves, the return null case, and no side effects. Nothing missing for correct invocation.

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 tool has zero parameters, so the description correctly omits parameter details. The baseline for 0-parameter tools is 4, and the description adds no unnecessary parameter info.

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?

Description clearly states the verb 'retrieve' and the specific resource (saved default templateId, brandId, presetId, responseType) and its return behavior (null if none). This distinguishes it from sibling tools like postnitro_set_defaults and other getters.

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 implies its usage: retrieve saved defaults. It does not explicitly mention alternatives or when-not-to-use, but given the sibling set_defaults, the context is clear. No exclusions are stated, but the purpose is unambiguous.

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

postnitro_get_import_templateGet Import Slide TemplateA
Read-onlyIdempotent
Inspect

Returns the exact slide structure and rules for the import tools. Call this BEFORE using postnitro_import_carousel, postnitro_import_and_wait, or the video import tools to understand the required format — video posts use this same slide array, one slide per scene.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
rulesYesNamed rules the slides array must satisfy
slide_fieldsYesEvery slide field, with whether it is required and what it does
example_slidesYesA complete, ready-to-adapt slides array
infographic_configYesThe layoutConfig shape for infographic slides

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint true and destructiveHint false, covering the safety profile. The description adds that it returns a template and notes one slide per scene, but does not discuss side effects, auth, rate limits, or output shape beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core return value, and uses the em dash to add relevant format context without unnecessary fluff.

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?

Given the tool has no parameters and likely has an output schema, the description provides enough context to know what to expect and when to call it. It names affected sibling tools and clarifies the shared slide-array format.

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 tool accepts no parameters, so the baseline of 4 applies. The description adds format context but no parameter semantics are needed.

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?

Description clearly states the tool returns the exact slide structure and rules for the import tools, and names the specific sibling import tools it supports. This makes its purpose distinct from other get/list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to call before using postnitro_import_carousel, postnitro_import_and_wait, or video import tools, and clarifies that video posts share the same slide array format. This gives direct when-to-use guidance and resolves format ambiguity.

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

postnitro_get_outputGet Post OutputA
Read-onlyIdempotent
Inspect

Retrieve the generated output for a completed post. Always returns the design's designId (the value to pass when scheduling — postnitro_create_scheduled_post / postnitro_generate_and_schedule) and an editorUrl deep link to open it in the editor. For PDF/PNG/MP4 output it also returns the rendered file(s) as public URLs (data, mimeType, outputType) — a single URL for PDF and MP4, one per page for PNG; for DESIGN output there is no rendered file, so those fields are omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
embedPostIdYesThe embed post ID of a completed post

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)

TDQS

A5/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds concrete behavioral details: what fields are always returned, what fields are conditionally present for PDF/PNG/MP4, and that DESIGN output omits rendered file fields. This gives the agent a clear expectation of the tool's response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph that covers all necessary aspects without redundancy. Each clause adds meaningful information (what is returned, when it applies, and the conditional output), and no irrelevant details are included.

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?

Given the tool's simplicity (one parameter, simple output), the description is complete. It explains the purpose, the input, the output structure, and the edge case (DESIGN output). The agent has everything needed to invoke this tool correctly without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter embedPostId is described as 'The embed post ID of a completed post', which adds contextual meaning beyond the simple type. Since schema coverage is 100% and the description enriches the parameter's purpose, it exceeds the baseline.

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 verb 'Retrieve' and the resource 'generated output for a completed post'. It distinguishes itself from sibling tools by explicitly mentioning the always-returned designId and editorUrl, and the conditional rendered file data, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies the condition 'for a completed post', which tells when this tool is appropriate. It also clarifies that for DESIGN output no rendered file is returned, preventing misuse. This effectively guides selection among related tools like check_status or get_scheduled_post.

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

postnitro_get_scheduled_postGet Scheduled PostA
Read-onlyIdempotent
Inspect

Fetch a single scheduled post by ID, with its captions, selected social accounts, platform settings, attached design details, and publishing status.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduledPostIdYesThe scheduled-post ID (get from postnitro_list_scheduled_posts)

Output Schema

ParametersJSON Schema
NameRequiredDescription
postYesA scheduled post or draft

TDQS

A4.5/5.0
Behavior4/5

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

The 'Fetch' language aligns with the readOnly/idempotent/non-destructive annotations, and the description adds useful context about the returned fields such as captions, social accounts, platform settings, design details, and publishing status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundant content, front-loading the core operation and then listing the relevant returned details.

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?

For a simple read operation with one parameter and existing annotations, the description fully captures what the tool returns and how to identify the target post. No important context is missing.

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 only parameter, scheduledPostId, is a required string with a clear description and a source instruction to obtain it from list_scheduled_posts. Schema coverage is complete and the description of the parameter is helpful.

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?

Clearly states it fetches a single scheduled post by ID and enumerates the returned data, distinguishing it from sibling list/create/update/delete operations.

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 parameter description explicitly tells the agent to get the ID from postnitro_list_scheduled_posts, which provides practical usage guidance. It does not explicitly name alternative tools, but the single-post fetch intent is clear.

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

postnitro_get_social_accountGet Social AccountA
Read-onlyIdempotent
Inspect

Fetch a single connected social account by ID, including its scheduled-post usage broken down by status (PENDING, PUBLISHED, etc.) and token expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
socialAccountIdYesThe social-account ID (get from postnitro_list_social_accounts)

Output Schema

ParametersJSON Schema
NameRequiredDescription
usageNoScheduled-post counts for this account, broken down by status (e.g. { DRAFT: 2, PUBLISHED: 8 })
socialAccountYesThe connected account

TDQS

A4.3/5.0
Behavior3/5

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

The annotations already declare readOnly, idempotent, and non-destructive behavior, and the description does not contradict that. However, the description adds no extra behavioral caveats such as side effects, auth requirements, or rate limits beyond what the annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words. The key verb, object, and distinguishing output details are front-loaded, making it easy to scan and understand quickly.

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?

Because an output schema exists, the description does not need to enumerate every return field, and it still highlights the most meaningful output characteristics. The input provenance is also present, so the agent has enough context to call the tool successfully.

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 only parameter, socialAccountId, is fully described and includes its source from postnitro_list_social_accounts, which is helpful provenance. Since the schema covers 100% of parameters, the description does not need to compensate for missing fields.

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 the specific action 'Fetch' and the precise resource: a single connected social account identified by ID. It also names the distinguishing output details (scheduled-post status breakdown and token expiry), which separates it from list-oriented siblings like postnitro_list_social_accounts.

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 parameter description provides useful context by telling the agent to get the ID from postnitro_list_social_accounts, and 'single... by ID' implies this is for one-account lookups. It does not explicitly enumerate when-not-to-use alternatives such as listing all accounts or disconnecting an account, so it stops short of fully explicit guidance.

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

postnitro_import_and_scheduleImport Content and Schedule ItAInspect

Convenience tool: creates a post from YOUR OWN content (import), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 15-60 seconds.

Set postType to 'CAROUSEL' (default) or 'VIDEO' and provide a 'slides' ARRAY, or 'IMAGE' and provide a single 'slide' OBJECT — this mirrors postnitro_import_carousel / postnitro_import_video / postnitro_import_image.

IMPORTANT: Call postnitro_get_import_template FIRST to see the exact slide structure and rules.

templateId, brandId, and responseType are optional if saved via postnitro_set_defaults.

The design attached is the imported design's ID (result.designId), resolved automatically. Pass designId only to attach a pre-existing design instead of the freshly imported one.

If scheduling fails after the design was already created (e.g. an invalid platform-settings combination), this tool returns the created designId so you can fix the inputs and retry with postnitro_create_scheduled_post — WITHOUT re-importing.

Provide the scheduling fields (status, scheduledAt, selectedAccounts, captions, and any required per-platform settings) just as you would for postnitro_create_scheduled_post.

ParametersJSON Schema
NameRequiredDescriptionDefault
slideNoFor postType 'IMAGE': a SINGLE slide object (not an array). Only 'heading' is required. Ignored for CAROUSEL.
slidesNoFor postType 'CAROUSEL' or 'VIDEO': an array of 3+ typed slides (exactly 1 starting_slide, ≥1 body_slide, exactly 1 ending_slide). For VIDEO each slide is a scene. Ignored for IMAGE.
statusYes'DRAFT' or 'SCHEDULED'
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
designIdNoAttach a pre-existing design instead of the freshly imported one. Leave unset to use the imported design.
postTypeNo'CAROUSEL' (default) imports a multi-slide carousel — provide 'slides' (an array). 'IMAGE' imports a single-image post — provide 'slide' (a single object). 'VIDEO' imports a video whose slides are its scenes — provide 'slides' (an array), plus videoSettings when rendering to MP4.CAROUSEL
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
postContentNoCaption text keyed by platform. Required unless a designId is set; at least one key must be non-empty. Hashtags are extracted automatically.
requestorIdNoOptional custom tracking ID
scheduledAtYesISO-8601 datetime string. Must be in the future.
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.
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back, or 'MP4' for a rendered video (postType 'VIDEO' only). Optional if saved via postnitro_set_defaults.
videoSettingsNoVideo render settings — postType 'VIDEO' only. Required when responseType is 'MP4'. Scheduling a reel reuses these automatically, so you usually don't also need postSettings.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.
selectedAccountsNoSocial-account IDs to publish to (from postnitro_list_social_accounts)
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

ParametersJSON Schema
NameRequiredDescription
postYesA scheduled post or draft
messageYesConfirmation message
successYes
designIdYesThe design attached to the scheduled post
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesThe generation/import job ID
scheduledPostIdYesID of the created scheduled post

TDQS

A4.6/5.0
Behavior5/5

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

Annotations indicate the tool is not read-only and not destructive, and the description matches by explaining it creates a design and then a scheduled post. It goes beyond annotations by disclosing the 15–60 second wait, the failure behavior and designId reuse path, the paid-plan requirement for AI images, quota consumption, added latency, and the best-effort nature of image generation. No behavioral contradictions with the annotations exist.

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 front-loaded with the core purpose and then provides necessary orchestration details, failure handling, and per-postType guidance. It is long but every section serves a real instructional need; minor redundancy (e.g., repeating the scheduling-fields instruction) keeps it from being perfectly concise.

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?

Given the tool's complexity and the existence of an output schema, the description covers the essential context: the import-then-schedule workflow, how to avoid re-importing on failure, which sibling tools to consult first, defaults for optional parameters, video settings fallback behavior, and AI image generation caveats. No critical usage context appears missing.

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?

The schema already covers 100% of parameter descriptions, including the slide vs. slides distinction, videoSettings vs. postSettings, and responseType. The tool description mostly restates these relationships rather than adding new parameter-level meaning. It adds some high-level orchestration context, but per the rubric baseline for full schema coverage, this is adequate but not exceptional.

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 this is a convenience tool that imports content, waits for it to finish, then creates a scheduled post attaching the resulting design. It distinguishes itself from sibling import and scheduling tools by naming the mirrored tools (postnitro_import_carousel / postnitro_import_video / postnitro_import_image) and postnitro_create_scheduled_post, so an agent knows exactly what this composite operation does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit, actionable guidance: which postType maps to which slide input, that postnitro_get_import_template should be called first, that optional parameters can come from defaults, and that if scheduling fails after import the returned designId can be reused with postnitro_create_scheduled_post without re-importing. It also tells the agent to provide scheduling fields exactly as in postnitro_create_scheduled_post, leaving no ambiguity about when to use this tool.

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

postnitro_import_and_waitImport Carousel and Wait for OutputAInspect

Convenience tool: imports custom slide content, polls until completion, and returns the final output. May take 15-60 seconds.

IMPORTANT: Call postnitro_get_import_template FIRST to see the exact slide structure and rules.

templateId, brandId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

Strict rules:

  1. First slide MUST be type "starting_slide" (exactly 1)

  2. Middle slides MUST be type "body_slide" (at least 1)

  3. Last slide MUST be type "ending_slide" (exactly 1)

  4. Infographic columnCount must not exceed 3

  5. When columnDisplay is "cycle", data in FIRST column only

  6. layoutType "infographic" replaces the image field

ParametersJSON Schema
NameRequiredDescriptionDefault
slidesYesArray of slides
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.6/5.0
Behavior5/5

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

Description discloses important behavior beyond annotations: polling until completion, 15-60 second latency, optional defaults, strict slide rules, and detailed best-effort behavior of image generation including quota consumption and failure handling. No contradictions with 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?

The description is long but well-organized with a summary, an IMPORTANT prerequisite callout, and numbered strict rules. It front-loads the core purpose and then provides necessary details for a complex tool.

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?

Given the tool's complexity, the description covers purpose, prerequisites, parameter behavior, polling, latency, and failure handling. Since an output schema exists, not detailing return values is acceptable, and the description is otherwise complete enough for correct use.

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 already high, but the description adds meaningful usage context around slide ordering, layout constraints, and the generateImages context requirement. This supplements the schema descriptions without redundancy issues.

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?

Description states exactly what the tool does: imports custom slide content, polls until completion, and returns the final output. It also distinguishes itself as a convenience wrapper with a wait-and-return behavior, separating it from sibling import tools.

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?

Provides clear guidance on prerequisites (call postnitro_get_import_template first) and optional parameters if defaults are saved. It also specifies strict structural rules for slides. It does not explicitly enumerate alternatives like postnitro_import_carousel, but the wait-for-output behavior is clearly implied.

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

postnitro_import_imageImport Single Image PostAInspect

Create a single-image post (postType IMAGE) from one slide of your own content. Returns an embedPostId to track progress.

Unlike a carousel, an image post is ONE slide — pass slide as a single object, NOT an array, with no slide type. Only heading is required. An infographic layout IS supported: set layoutType 'infographic' + layoutConfig on the slide (same shape as carousel infographics).

templateId, brandId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

Use postnitro_check_status to monitor, then postnitro_get_output to retrieve. Or use postnitro_import_image_and_wait for one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
slideYesThe single image slide (one object, not an array). Only 'heading' is required.
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial job status ('PENDING')
messageNoMessage returned by the PostNitro API
successYesTrue when the job was accepted
nextStepYesThe suggested follow-up call
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesGeneration-job ID — pass to postnitro_check_status, then postnitro_get_output
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.7/5.0
Behavior4/5

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

The description discloses behavioral aspects beyond the annotations: it indicates the operation is asynchronous ('Returns an embedPostId to track progress') and suggests using check_status to monitor completion. It also mentions the alternative '_and_wait' for synchronous blocking. However, it does not explicitly state that the operation is not idempotent or that it may consume credits, though annotations already imply non-idempotence.

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 moderately lengthy but each sentence is purposeful. It is structured logically: first the main purpose, then the contrast with carousel, then notes on optional defaults, and finally the workflow. No redundant or filler content is present, though it could be slightly more concise without losing critical details.

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?

For a tool with a nested object schema and multiple optional parameters, the description is highly complete. It covers the core usage, the distinction from siblings, the asynchronous workflow, and the conditions under which parameters can be omitted. It also mentions the 'generateImages' feature and its implications (requires paid plan, consumes quota, adds latency), which is important context for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant semantic value beyond the schema. It clarifies that 'slide' must be a single object, not an array, and that only 'heading' is required. It explains the 'infographic' layout type and its relationship to carousel infographics, and notes that 'responseType' defaults to 'DESIGN' for faster operation. This directly resolves ambiguities present in the schema.

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 single-image post (postType IMAGE) from one slide of your own content.' It explicitly distinguishes it from carousel posts and explains the key difference (single object vs array). It also mentions the return of an embedPostId for tracking, reinforcing the core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it contrasts with carousel usage, explains when to use this vs. the '_and_wait' variant, and mentions that parameters like templateId, brandId, and responseType can be omitted if defaults are saved. It also directs users to postnitro_check_status and postnitro_get_output for monitoring and retrieval, giving a clear workflow.

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

postnitro_import_image_and_waitImport Single Image Post and Wait for OutputAInspect

Convenience tool: creates a single-image post (postType IMAGE) from one slide, polls until completion, and returns the final output. May take 15-60 seconds.

Pass slide as a single object, NOT an array, with no slide type. Only heading is required. An infographic layout IS supported: set layoutType 'infographic' + layoutConfig on the slide (same shape as carousel infographics).

templateId, brandId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
slideYesThe single image slide (one object, not an array). Only 'heading' is required.
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
responseTypeNoOutput format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back. Optional if saved via postnitro_set_defaults.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A5/5.0
Behavior5/5

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

The description discloses that it polls until completion, may take 15-60 seconds, and returns the final output. It also mentions optional AI image generation behaviors (best-effort, quota, latency) without contradicting 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a concise opening summary, then important clarifications. It avoids redundancy with the schema and keeps the essential usage notes front-loaded. Length is appropriate for the tool's complexity.

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, combined with the detailed schema, provides complete information for an agent to decide when to use this tool and what to expect. It covers waiting behavior, default handling, and the single-image scope, while the schema covers all parameter specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds valuable clarifications beyond the schema, such as passing slide as a single object (not an array), the infographic layout support, and that templateId/brandId/responseType are optional if defaults are saved. This complements the schema's thorough field descriptions.

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 it creates a single-image post from one slide, polls until completion, and returns the final output. It distinguishes from sibling tools that handle carousels, videos, or non-waiting imports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly mentions 'single-image post' and 'polls until completion', indicating when to use this instead of the carousel/video or non-waiting variants. It also notes the optional defaults from postnitro_set_defaults and the waiting latency.

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

postnitro_import_videoImport Video PostAInspect

Create a video post (postType VIDEO) from your own scene content. Returns an embedPostId to track progress.

Scenes use the SAME slide array as a carousel: exactly 1 starting_slide, at least 1 body_slide, exactly 1 ending_slide — each slide becomes a scene. Infographic layouts work as they do on carousel slides.

Output: 'DESIGN' (default) creates the design without rendering; 'MP4' renders the video file and requires videoSettings (duration, optional audio track).

templateId, brandId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

Use postnitro_check_status to monitor, then postnitro_get_output to retrieve. Or use postnitro_import_video_and_wait for one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
slidesYesThe scenes, as an array of 3+ typed slides (exactly 1 starting_slide first, 1+ body_slide, exactly 1 ending_slide last).
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
responseTypeNoOutput format for a video. 'DESIGN' (default) creates the design without rendering — fastest, and enough for scheduling or finishing in the editor. 'MP4' renders the video file and requires videoSettings. A video cannot be rendered as PDF or PNG.
videoSettingsNoVideo render settings. REQUIRED when responseType is 'MP4' (a render needs a duration); optional for 'DESIGN'. When this video is later scheduled as a reel, the API reuses these settings automatically.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial job status ('PENDING')
messageNoMessage returned by the PostNitro API
successYesTrue when the job was accepted
nextStepYesThe suggested follow-up call
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
embedPostIdYesGeneration-job ID — pass to postnitro_check_status, then postnitro_get_output
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool returns an embedPostId, tracks progress, and supports DESIGN vs MP4 output, which goes beyond the annotations. It does not contradict the readOnly/destructive/idempotent hints, and while it doesn't mention credit consumption, the async tracking info is sufficient.

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 well-structured and each sentence adds value, but it is somewhat long with multiple paragraphs. It could be slightly more condensed without losing important details, yet it remains efficient and readable.

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 covers the core action, output types, defaults, monitoring workflow, and alternative one-step tool. It gives an agent everything needed to decide when and how to use this tool correctly, including the slide-array relationship to carousels and infographic layouts.

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?

The input schema already covers all parameter descriptions at 100% coverage, so the baseline is 3. The description adds a few high-level reminders (e.g., videoSettings required for MP4, defaults optional) but does not provide substantial new parameter semantics beyond what the schema already states.

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 creates a video post from user-provided scene content, using a specific verb and resource. It distinguishes itself by emphasizing 'own scene content' (import rather than generate) and explains the slide structure clearly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent to use postnitro_check_status and postnitro_get_output for monitoring/retrieval, and points to postnitro_import_video_and_wait as a one-step alternative. It also notes that templateId/brandId/responseType can be omitted if defaults are saved, giving clear when-to-use guidance.

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

postnitro_import_video_and_waitImport Video Post and Wait for OutputAInspect

Convenience tool: creates a video post (postType VIDEO) from your own scenes, polls until completion, and returns the final output. Rendering a video takes longer than a carousel — typically 15-45 seconds when responseType is 'MP4', and longer for designs with animations or GIFs (which use the enhanced renderer).

Scenes use the SAME slide array as a carousel: exactly 1 starting_slide, at least 1 body_slide, exactly 1 ending_slide — each slide becomes a scene.

Output: 'DESIGN' (default) creates the design without rendering; 'MP4' renders the video file and requires videoSettings.

templateId, brandId, and responseType are optional if you've saved defaults via postnitro_set_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
slidesYesThe scenes, as an array of 3+ typed slides (exactly 1 starting_slide first, 1+ body_slide, exactly 1 ending_slide last).
brandIdNoBrand ID (optional if saved via postnitro_set_defaults)
templateIdNoTemplate ID (optional if saved via postnitro_set_defaults)
requestorIdNoOptional custom tracking ID
responseTypeNoOutput format for a video. 'DESIGN' (default) creates the design without rendering — fastest, and enough for scheduling or finishing in the editor. 'MP4' renders the video file and requires videoSettings. A video cannot be rendered as PDF or PNG.
videoSettingsNoVideo render settings. REQUIRED when responseType is 'MP4' (a render needs a duration); optional for 'DESIGN'. When this video is later scheduled as a reel, the API reuses these settings automatically.
generateImagesNoOptional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoPublic URL of the rendered file — a single URL for PDF and MP4, an array of them for PNG (one per page). Omitted for responseType 'DESIGN'.
nameNoDesign name
statusYesJob status, e.g. 'COMPLETED'
successYesTrue when the post finished processing
designIdNoDesign ID — the value to pass as designId when scheduling. Absent only when it could not be resolved from the output.
mimeTypeNoMIME type of the rendered file. Omitted for responseType 'DESIGN' (no file is rendered).
warningsNoNon-fatal issues worth surfacing to the user (e.g. AI image generation did not complete)
editorUrlYesDeep link that opens the design in the PostNitro editor; null when it cannot be resolved
outputTypeNoRendered output type: 'pdf', 'png', or 'mp4'. Omitted for responseType 'DESIGN'.
aspectRatioNoDesign aspect ratio, e.g. '4:5'
creditsUsedNoCredits consumed by this post
embedPostIdYesThe generation-job ID
responseTypeYesOutput format of the post: 'PDF', 'PNG', 'DESIGN', or 'MP4' (video posts)
usedDefaultsYesThe values actually applied — explicit arguments, saved defaults, or an auto-selected sole candidate

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses important behaviors such as polling until completion, rendering latency, the need for videoSettings when MP4 is requested, and reliance on saved defaults for optional parameters. It does not exhaustively cover failure or partial-completion behavior, but the main behavioral contract is clear.

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 organized in clear paragraphs and front-loads the core purpose. It repeats a little of the schema information, but the extra context is relevant and not overly verbose.

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?

Given the nested objects and multiple optional settings, the description provides enough high-level context to understand the tool's role and key constraints. It relies on the schema for detailed nested structures, which is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has high coverage, and the description adds extra meaning by clarifying scene/slide equivalence to carousel slides, the exact slide type counts, output modes, and how saved defaults affect optional parameters. This helps the agent understand the data model and requirements.

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 that the tool creates a video post from user-provided scenes, polls until completion, and returns the final output. It also distinguishes this from carousel generation by explicitly mentioning postType VIDEO and the scene/slide structure.

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 gives useful context on when to use this tool: it is a convenience tool that waits for completion, describes the expected rendering time, and explains the difference between DESIGN and MP4 outputs. It does not explicitly name alternative non-waiting tools, but the usage context is clear enough.

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

postnitro_list_ai_presetsList AI PresetsA
Read-onlyIdempotent
Inspect

List available AI configuration presets. Returns preset IDs with platform, tone, audience, language, slide count, and model.

Use postnitro_set_defaults to save your preferred presetId for future calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoResults per page (default: 10, max: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYesPage returned
countYesNumber of presets on this page
limitYesPage size used
presetsYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds transparency by detailing exactly what the response contains, and it does not contradict 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two clear sentences. It front-loads the main purpose and immediately follows with useful return details and a relevant next-step hint.

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?

With an output schema present, the description does not need to explain the return format. It provides enough context about the tool's role in the workflow, especially the relationship to setting defaults, making it reasonably complete.

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?

The schema coverage is 100% and both parameters (page, limit) are described in the schema. The description does not add additional parameter context, so it remains at the baseline for high schema coverage.

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: to list available AI configuration presets. It also names the specific resource (AI presets) and the fields returned, distinguishing it from other list tools like postnitro_list_templates and postnitro_list_brands.

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 implies the primary use case — browsing available presets before saving a preferred preset — by explicitly directing the user to postnitro_set_defaults afterward. It does not explicitly contrast with sibling tools, but the purpose is clear enough for an agent to choose this tool when listing presets.

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

postnitro_list_audioList Audio FilesA
Read-onlyIdempotent
Inspect

List the audio files in your workspace, newest first. Call this to resolve an audioId — the ID a video post needs in videoSettings.audioId, or a scheduled reel in postSettings.audioId. Those fields take an ID, never a URL.

Audio is uploaded in the PostNitro app; this API lists and deletes but does not upload. An empty list means the workspace has no audio yet — ask the user to upload some in the app, and create the video without audio in the meantime.

When several files match what the user described, show the candidates (name, duration) and let them choose rather than guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
limitNoResults per page (default 10, max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of audio files on this page
audiosYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint false. The description adds helpful context about not uploading audio, what an empty list means, and how to present matches to the user, though it does not go into side effects or system behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then provides concise, non-redundant usage guidance. Each paragraph adds distinct value: what the tool lists, how to use it for `audioId`, and how to handle empty or ambiguous results.

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?

Given the output schema exists, the description does not need to detail return values. It covers key contextual points including the relationship to video/reel settings, the prohibition on URLs, the upload workflow, and user-facing handling of search results, making it complete for correct invocation.

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?

The schema already provides 100% coverage for both parameters (`page` and `limit`) with clear descriptions including defaults and max. The description adds no additional parameter-specific semantics, so a baseline score is appropriate.

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 function: 'List the audio files in your workspace, newest first.' It also distinguishes this from sibling tools by focusing on audio resources and explicitly ties the tool to resolving an `audioId` for video and scheduled reel settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to call this tool ('Call this to resolve an `audioId`'), gives behavioral guidance for empty results ('ask the user to upload some in the app, and create the video without audio in the meantime'), and clarifies that this API does not upload audio, setting appropriate expectations.

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

postnitro_list_brandsList BrandsA
Read-onlyIdempotent
Inspect

List available brand configurations. Returns brand IDs, names, handles, and display settings.

Use postnitro_set_defaults to save your preferred brandId for future calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoResults per page (default: 10, max: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYesPage returned
countYesNumber of brands on this page
limitYesPage size used
brandsYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds that it returns brand IDs, names, handles, and display settings, but this is likely already in the output schema. No additional behavioral traits (e.g., ordering, filtering, rate limits) are disclosed, so the description adds only marginal value beyond 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?

The description is concise with two sentences. The first sentence front-loads the purpose and return fields, and the second sentence provides a useful pointer to a related tool (postnitro_set_defaults). It is efficient and without fluff, though the second sentence is not strictly necessary for calling the tool correctly.

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?

Given the tool's simplicity (2 optional parameters, no required params, output schema present, and annotations covering read-only/idempotent/non-destructive behavior), the description is complete. It states the tool's purpose, the return fields, and a relevant next step. Nothing an agent needs to invoke it correctly is missing.

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?

Both parameters (page and limit) have complete descriptions in the input schema (100% coverage), including defaults and maximums. The tool description adds no extra semantics about how these parameters affect the results beyond what the schema already states. This matches the baseline of 3 when schema does the heavy lifting.

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 a specific verb ('List') and a specific resource ('available brand configurations'), and specifies the returned fields (brand IDs, names, handles, display settings). This distinguishes it from singular retrieval tools like postnitro_get_brand and creation tools like postnitro_create_brand without needing to inspect the schema.

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 does not explicitly compare this tool to alternatives or state when not to use it. It only implies usage for listing available brands, and the mention of postnitro_set_defaults suggests a follow-up action but not a selection criterion. The usage context is implied by the tool's nature as a list operation, but no explicit exclusions or alternatives are given.

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

postnitro_list_scheduled_postsList Scheduled PostsA
Read-onlyIdempotent
Inspect

List scheduled posts and drafts whose scheduled time falls within a date range. Returns each post with its captions, selected social accounts, and attached design details.

Optionally narrow the results to specific social accounts with socialAccountIds — useful for "what's scheduled on my LinkedIn next week". The filter applies to POSTS, not to the accounts within them: a post targeting both LinkedIn and Instagram is returned when you filter by either, and its accounts array still lists every account it targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
toDateYesEnd of range (ISO-8601 recommended). Matches scheduledAt <= toDate.
fromDateYesStart of range (ISO-8601 recommended). Matches scheduledAt >= fromDate.
socialAccountIdsNoOptional social-account IDs (from postnitro_list_social_accounts) to filter by. Returns only posts targeting at least ONE of them. Omit for every post in the range. Unknown IDs are not an error — they simply match nothing, so a filter of only unknown IDs returns an empty list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of posts in the range
postsYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds important edge-case behavior: filtering applies to posts, not to accounts within posts, and unknown socialAccountIds match nothing rather than causing errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but complete. It avoids unnecessary detail while covering key behaviors and an example use case, with no redundant or confusing phrasing.

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?

Given the output schema is present and the description covers purpose, filtering behavior, edge cases, and examples, the tool description is fully sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are fully described in the schema, and the description adds practical details: ISO date recommendations, the 'at least one' account matching rule, the option to omit for all posts, and behavior for unknown IDs.

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: listing scheduled posts and drafts within a date range, with optional account filtering. It distinguishes itself from single-post retrieval by focusing on a date-ranged list operation.

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?

Provides clear usage context, including a practical example ('what's scheduled on my LinkedIn next week') and explains filtering semantics. It does not explicitly mention alternative tools, but the guidance is strong enough for correct selection.

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

postnitro_list_social_accountsList Social AccountsA
Read-onlyIdempotent
Inspect

List the connected social accounts in your workspace, grouped by platform (linkedin, instagram, tiktok, threads).

These account IDs are what you pass as selectedAccounts when creating a scheduled post. All four platform arrays are always present (empty when none connected).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesTotal connected accounts across all platforms
accountsYesEvery connected account, flattened across platforms

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark it as read-only and idempotent. The description adds useful behavioral detail that all platform arrays are always present, even when empty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, well-structured, and directly communicates the tool's purpose and output behavior without unnecessary detail.

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?

Provides enough context for an agent to know when to call it and what to expect, including the always-present empty arrays. Lacks a detailed output schema, but the simple grouped-list behavior is sufficiently described.

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 tool has no parameters, and the description accurately reflects that. No parameter explanation is needed.

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?

Clearly states the tool lists connected social accounts grouped by platform, and distinguishes the account IDs as the values used for selectedAccounts in scheduled post creation.

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?

Explains when the returned IDs are needed (for creating scheduled posts) and notes the grouping. It does not explicitly contrast with get_social_account, but the purpose is clear enough for correct selection.

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

postnitro_list_templatesList TemplatesA
Read-onlyIdempotent
Inspect

List available carousel templates. Returns template IDs, names, and dimensions.

Use postnitro_set_defaults to save your preferred templateId for future calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoResults per page (default: 10, max: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYesPage returned
countYesNumber of templates on this page
limitYesPage size used
templatesYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds value by specifying the output fields, which is not in annotations, and does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences, direct, and free of fluff or redundant details. Every word contributes to understanding the tool's function.

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?

For a list operation, the description provides sufficient context: what is listed, what is returned, and a relevant pointer to a companion tool. It is complete given the output schema exists and no nested objects require explanation.

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 descriptions already cover both parameters (page and limit) with defaults and ranges (100% coverage). The description adds no additional parameter semantics beyond what the schema provides, so it remains at baseline.

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?

Description clearly states the verb 'List', the resource 'carousel templates', and explicitly mentions the return fields (IDs, names, dimensions). It is unambiguous and distinguishes from sibling list tools by resource type.

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?

Provides a follow-up action (use postnitro_set_defaults) but does not explicitly state when to use this tool versus alternatives or when not to use it. The guidance is minimal and inferential.

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

postnitro_set_defaultsSave Default SettingsA
DestructiveIdempotent
Inspect

Save default templateId, brandId, presetId, and responseType so you don't have to provide them every time.

These defaults persist across sessions. Any generate/import tool will automatically use them when those parameters are not explicitly provided.

Typical first-time setup workflow:

  1. Call postnitro_list_templates → pick a template

  2. Call postnitro_list_brands → pick a brand

  3. Call postnitro_list_ai_presets → pick a preset

  4. Call postnitro_set_defaults with the chosen IDs

  5. From now on, just call generate/import without specifying IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
brandIdNoDefault brand ID (get from postnitro_list_brands)
presetIdNoDefault AI preset ID (get from postnitro_list_ai_presets)
templateIdNoDefault template ID (get from postnitro_list_templates)
responseTypeNoDefault output format. 'DESIGN' creates the design with no rendered file (fastest); 'PDF'/'PNG' return a rendered file. 'MP4' cannot be saved as a default because it only applies to video posts — pass it per call on the video tools instead (a saved 'PDF'/'PNG' default is treated as 'DESIGN' there).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYesConfirmation message
successYes
defaultsYesEvery default now stored, merged with previously saved values

TDQS

A4.4/5.0
Behavior4/5

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

The description adds useful behavioral context by stating that defaults persist and that MP4 cannot be saved as a default, which clarifies limits on future tool calls. The destructive and idempotent hints are already declared in annotations, and the description does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a short explanatory paragraph followed by a clear numbered workflow. No redundant or fluff content is present.

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?

Given the high schema coverage and explicit annotations, the description provides enough context for correct use. It explains persistence, how defaults are consumed, and important exceptions, though it does not describe the exact return value; this is acceptable since an output schema 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?

Input schema coverage is 100% with detailed descriptions for each parameter, including special notes on responseType behavior. The tool description reinforces that all parameters are optional and sourced from list tools, adding practical guidance beyond the schema.

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?

Clearly states that the tool saves default templateId, brandId, presetId, and responseType, and explains that these defaults are then used automatically by generate/import tools. This distinguishes it from sibling tools like postnitro_get_defaults and the individual generation tools.

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?

Provides a practical first-time setup workflow and explains that defaults persist across sessions, so users know when to call this tool before running generate/import operations. It could be slightly stronger by explicitly contrasting with postnitro_get_defaults, but the usage context is clear.

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

postnitro_update_brandUpdate BrandA
DestructiveIdempotent
Inspect

Update an existing brand kit. All seven fields are required by the API.

name, handle, and image are only overwritten when a non-empty value is sent; the boolean display flags (isCompanyDetail, showName, showHandle, showImage) are always applied.

Tip: call postnitro_get_brand first to read current values, then send them back with your changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBrand display name (required)
imageYesLogo image URL (required)
handleYesSocial handle, e.g. '@postnitroai' (required)
brandIdYesThe brand ID to update (get from postnitro_list_brands)
showNameYesRender the name on slides
showImageYesRender the logo on slides
showHandleYesRender the handle on slides
isCompanyDetailYesTreat as a company brand (vs personal)

Output Schema

ParametersJSON Schema
NameRequiredDescription
brandYesThe brand after the update
messageYesConfirmation message
successYes

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses important behavioral details beyond annotations: name, handle, and image are only overwritten with non-empty values, while boolean display flags are always applied. This informs the agent of side effects and required care when updating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and each sentence adds value. The tip is short and actionable, with no unnecessary fluff.

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?

The description is largely complete for an update operation, including behavior and a practical tip. It falls short slightly because of the incorrect field count, which could mislead an agent into omitting a required parameter. Otherwise, it adequately explains the update semantics and prerequisites.

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 already covers all parameters with descriptions, so baseline is 3. The description adds valuable semantic context about conditional overwriting of name/handle/image and unconditional application of booleans. However, the statement 'All seven fields are required' is inaccurate—there are eight required parameters—which slightly undermines clarity about required fields.

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 updates an existing brand kit, distinguishing it from create or list operations. The verb 'update' and the resource 'brand kit' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance by advising to call postnitro_get_brand first to read current values and send them back. This directly tells the agent when and how to use the tool correctly, especially given the conditional overwrite behavior.

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

postnitro_update_scheduled_postUpdate Scheduled PostA
DestructiveIdempotent
Inspect

Update an existing scheduled post or draft. The body and validation mirror postnitro_create_scheduled_post exactly.

The update REPLACES the post's captions and selected accounts with what you send — send the full intended state, not just changed fields. Tip: call postnitro_get_scheduled_post first to read the current values.

ParametersJSON 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.
scheduledPostIdYesThe scheduled-post ID to update (get from postnitro_list_scheduled_posts)
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

ParametersJSON Schema
NameRequiredDescription
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

TDQS

A4.2/5.0
Behavior4/5

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

The description explicitly states that the update REPLACES captions and accounts, disclosing destructive behavior beyond the annotations. It also mentions the need to send the full state, which is useful behavioral detail. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loading the core behavior and a key tip. No unnecessary words or redundancy.

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?

Given the schema's high coverage, the description does not need to repeat parameter details. It adds the essential context of replace semantics and a retrieval tip, making it sufficient for an agent to correctly invoke the tool.

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?

The schema descriptions already cover 100% of parameters, so the baseline is 3. The tool description adds a general note about replace semantics and a tip, but does not provide additional parameter-specific meaning beyond the schema.

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 updates an existing scheduled post or draft, with a specific verb and resource. It also distinguishes itself by mentioning it mirrors the create tool, making its purpose unambiguous.

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 provides guidance on when to use it (updating vs. creating) and includes a practical tip to call the getter first. It does not explicitly name alternative tools but clearly implies the update counterpart to the create tool.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 35 tool updates
    • First observedpostnitro_check_status
    • First observedpostnitro_create_brand
    • First observedpostnitro_create_scheduled_post
    • First observedpostnitro_delete_audio
    • First observedpostnitro_delete_scheduled_post
    • First observedpostnitro_disconnect_social_account
    • First observedpostnitro_generate_and_schedule
    • First observedpostnitro_generate_and_wait
    • First observedpostnitro_generate_carousel
    • First observedpostnitro_generate_image
    • First observedpostnitro_generate_image_and_wait
    • First observedpostnitro_generate_video
    • First observedpostnitro_generate_video_and_wait
    • First observedpostnitro_get_brand
    • First observedpostnitro_get_defaults
    • First observedpostnitro_get_import_template
    • First observedpostnitro_get_output
    • First observedpostnitro_get_scheduled_post
    • First observedpostnitro_get_social_account
    • First observedpostnitro_import_and_schedule
    • First observedpostnitro_import_and_wait
    • First observedpostnitro_import_carousel
    • First observedpostnitro_import_image
    • First observedpostnitro_import_image_and_wait
    • First observedpostnitro_import_video
    • First observedpostnitro_import_video_and_wait
    • First observedpostnitro_list_ai_presets
    • First observedpostnitro_list_audio
    • First observedpostnitro_list_brands
    • First observedpostnitro_list_scheduled_posts
    • First observedpostnitro_list_social_accounts
    • First observedpostnitro_list_templates
    • First observedpostnitro_set_defaults
    • First observedpostnitro_update_brand
    • First observedpostnitro_update_scheduled_post

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT
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