postnitro
PostNitro: генерация карусели, изображений и видео с планированием публикаций
Что умеет
- Генерировать карусели, изображения и видео по шаблонам
- Импортировать готовый контент по шаблону
- Управлять брендовыми наборами и AI-пресетами
- Подключать и просматривать социальные аккаунты
- Планировать и просматривать запланированные публикации
Какие данные видит
Ассистент использует тот же ключ Embed API и кредиты аккаунта PostNitro, что и обычный REST-доступ.
Нужен ли аккаунт
Не нужен: сервер работает без входа
PostNitro даёт ассистентам Claude, Cursor и ChatGPT готовые инструменты вместо ручных вызовов REST API: создание карусели, изображений и видео по шаблонам, управление брендовыми наборами, аудиотреками, подключёнными соцсетями и планирование постов. Сервер работает на том же ключе Embed API и кредитах, что и REST API.
Как подключить
Как подключить postnitro к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://postnitro--muneeb.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить postnitro к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://postnitro--muneeb.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить postnitro к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://postnitro--muneeb.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (29)
Технические названия из tools/list. Нужны только разработчикам.
| postnitro_set_defaults | 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_get_defaults | Retrieve your saved default templateId, brandId, presetId, and responseType. Returns null if no defaults are saved. |
| postnitro_list_templates | List available carousel templates. Returns template IDs, names, and dimensions. Use postnitro_set_defaults to save your preferred templateId for future calls. |
| postnitro_list_brands | 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_ai_presets | 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_get_import_template | Returns the exact slide structure and rules for the import carousel tools. Call this BEFORE using postnitro_import_carousel or postnitro_import_and_wait to understand the required format. |
| postnitro_generate_carousel | 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_import_carousel | 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_check_status | 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_get_output | 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 output it also returns the rendered file(s) (`data`, `mimeType`, `outputType`); for DESIGN output there is no rendered file, so those fields are omitted. |
| postnitro_generate_and_wait | 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_import_and_wait | 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_generate_image | 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_and_wait | 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_import_image | 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_and_wait | 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_create_brand | 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_get_brand | Fetch a single brand kit by ID, including its display settings (showName, showHandle, showImage, isCompanyDetail). |
| postnitro_update_brand | 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_list_social_accounts | 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_get_social_account | Fetch a single connected social account by ID, including its scheduled-post usage broken down by status (PENDING, PUBLISHED, etc.) and token expiry. |
| postnitro_disconnect_social_account | Disconnect (delete) a connected social account. This also removes it from every scheduled post it was attached to. This action cannot be undone. |
| postnitro_list_scheduled_posts | 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. |
| postnitro_create_scheduled_post | Create a scheduled post or draft for LinkedIn, Instagram, TikTok, and/or Threads. Workflow: 1. postnitro_list_social_accounts → pick account IDs for selectedAccounts 2. (optional) attach a designId — a carousel you created with PostNitro. Use the design's ID (the 'designId' field returned by postnitro_get_output / postnitro_generate_and_wait), NOT the generation embedPostId. 3. provide a caption via postContent and/or a designId (a post needs at least one) Rules enforced by the API (surfaced as error messages here): - scheduledAt must be a future ISO-8601 datetime. - A post must have either a designId or non-empty postContent. designId may be null only for DRAFT. - Per-platform *PostSettings are conditionally required based on the selected accounts' platforms and whether a designId is set (see each field's description). LinkedIn requires a designId when SCHEDULED. - postSettings (video metadata) is required when any postType resolves to 'reel'. |
| postnitro_get_scheduled_post | Fetch a single scheduled post by ID, with its captions, selected social accounts, platform settings, attached design details, and publishing status. |
| postnitro_update_scheduled_post | 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_delete_scheduled_post | Delete a scheduled post (or draft) and all of its related content. This action cannot be undone. |
| postnitro_generate_and_schedule | Convenience tool: generates a post with AI (postType 'CAROUSEL' by default, or 'IMAGE' for a single-image post), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 30-180 seconds. 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_import_and_schedule | 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) and provide a 'slides' ARRAY, or 'IMAGE' and provide a single 'slide' OBJECT — this mirrors postnitro_import_carousel / 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. |