PostNitro
Design. Schedule. Publish
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
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 and image posts, manage brand kits 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 and image generation, brands, social accounts, and scheduling — using the same Embed API key and credits as the REST API.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-09-03
- Tool count
- 35
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competitive lineup
35 tools agents can invoke
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).
postnitro_check_status
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.
postnitro_create_brand
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.
postnitro_create_scheduled_post
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.
postnitro_delete_audio
Delete a scheduled post (or draft) and all of its related content. This action cannot be undone.
postnitro_delete_scheduled_post
Disconnect (delete) a connected social account. This also removes it from every scheduled post it was attached to. This action cannot be undone.
postnitro_disconnect_social_account
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.
postnitro_generate_and_schedule
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.
postnitro_generate_and_wait
Generate a carousel post using PostNitro's AI engine. Returns an embedPostId to track progress. For a single-image post instead of a carousel, use postnitro_generate_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_and_wait for one step.
postnitro_generate_carousel
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.
postnitro_generate_image_and_wait
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.
postnitro_generate_image
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.
postnitro_generate_video_and_wait
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.
postnitro_generate_video
Fetch a single brand kit by ID, including its display settings (showName, showHandle, showImage, isCompanyDetail).
postnitro_get_brand
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.
postnitro_get_import_template
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.
postnitro_get_output
Retrieve your saved default templateId, brandId, presetId, and responseType. Returns null if no defaults are saved.
postnitro_get_defaults
Fetch a single scheduled post by ID, with its captions, selected social accounts, platform settings, attached design details, and publishing status.
postnitro_get_scheduled_post
Fetch a single connected social account by ID, including its scheduled-post usage broken down by status (PENDING, PUBLISHED, etc.) and token expiry.
postnitro_get_social_account
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
postnitro_import_and_wait
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.
postnitro_import_and_schedule
Create a carousel by importing your own slide content. 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 (violations will cause errors): 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", put ALL data in the FIRST columnData entry only 6. Setting layoutType "infographic" replaces the image field Minimal example: slides: [ { type: "starting_slide", heading: "Welcome!", description: "Intro", cta_button: "Swipe →" }, { type: "body_slide", heading: "Key Point", description: "Details here" }, { type: "ending_slide", heading: "Thanks!", cta_button: "Learn More" } ]
postnitro_import_carousel
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.
postnitro_import_image
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.
postnitro_import_image_and_wait
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.
postnitro_import_video
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.
postnitro_import_video_and_wait
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.
postnitro_list_ai_presets
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.
postnitro_list_audio
List available brand configurations. Returns brand IDs, names, handles, and display settings. Use postnitro_set_defaults to save your preferred brandId for future calls.
postnitro_list_brands
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.
postnitro_list_scheduled_posts
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).
postnitro_list_social_accounts
List available carousel templates. Returns template IDs, names, and dimensions. Use postnitro_set_defaults to save your preferred templateId for future calls.
postnitro_list_templates
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
postnitro_set_defaults
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.
postnitro_update_brand
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.
postnitro_update_scheduled_post
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.