MCP

Справочник по инструментам

Полный список инструментов сервера MCP PostNext с описанием входных параметров, структуры ответа и готовым примером для каждого.

Аутентификация

Каждый запрос к https://mcp.postnext.io/api требует заголовок Authorization с Bearer-токеном. Получить токен можно двумя способами.

OAuth (рекомендуется для ИИ-клиентов)

ИИ-клиенты при первом подключении выполняют Dynamic Client Registration и проводят пользователя через экран согласия OAuth. Страница /mcp/connect делает это автоматически, и клиент получает токен доступа на 30 дней.

API-ключ

Для скриптов и CI создайте персональный API-ключ в приложении PostNext в разделе Аккаунт → API-ключи. Ключ начинается с apikey_ и передаётся как обычный Bearer-токен.

Endpoint

Все вызовы инструментов идут на один JSON-RPC 2.0 endpoint по HTTPS POST.

POST https://mcp.postnext.io/api

Инструменты

list_scheduled_posts

Список ваших запланированных публикаций (поставленных в очередь на публикацию, но ещё не отправленных).

Аргументы

limitnumber ·необязательный · default 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).
fromstring (ISO 8601) ·необязательный
ISO-метка времени: возвращать только публикации, запланированные не ранее этого момента.

Возвращает

Объект с posts: [{id, platform, content, scheduledAt, status}]. До limit результатов.

Пример

curl -X POST https://mcp.postnext.io/api \
  -H "Authorization: Bearer apikey_xxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":1,
       "params":{"name":"list_scheduled_posts",
                 "arguments":{"limit":5}}}'

list_drafts

Список ваших черновиков (ещё не запланированных).

Аргументы

limitnumber ·необязательный · default 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).

Возвращает

Объект с drafts: [{id, platform, content, updatedAt}]. До limit результатов.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":2,
 "params":{"name":"list_drafts","arguments":{"limit":10}}}

list_connected_accounts

Список социальных аккаунтов, подключённых к вашей команде.

Аргументы

Без аргументов.

Возвращает

Объект с accounts: [{platform, handle, connected, lastSyncAt}].

Пример

{"jsonrpc":"2.0","method":"tools/call","id":3,
 "params":{"name":"list_connected_accounts","arguments":{}}}

get_account_healthПлатный план

Сводка состояния по всем подключённым платформам.

Аргументы

platformenum ·необязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
windowDays7 | 30 | 90 ·необязательный · default 30
Период анализа в днях: 7, 30 или 90 (по умолчанию 30).

Возвращает

Объект с windowDays, postsScheduled, postsPublished, postsFailed, разбивкой byPlatform и topErrors[].

Пример

{"jsonrpc":"2.0","method":"tools/call","id":4,
 "params":{"name":"get_account_health",
           "arguments":{"windowDays":30}}}

create_post_draft

Создание нового черновика публикации. Черновики не публикуются автоматически.

Аргументы

platformenum ·обязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
contentstring ·обязательный
Текст публикации (1-2200 символов).
mediaUrlsarray<string> ·необязательный
До 10 URL-адресов изображений или видео.
clientRequestIdstring ·необязательный
Необязательный ключ идемпотентности. Одинаковый ключ в течение 5 минут возвращает кэшированный результат.

Возвращает

Объект с новым черновиком: {id, platform, content, status: "DRAFT", createdAt}.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":5,
 "params":{"name":"create_post_draft",
           "arguments":{"platform":"twitter",
                        "content":"Hello from MCP"}}}

update_post_draft

Обновление существующего черновика. Необходимо указать хотя бы одно из полей: content или mediaUrls.

Аргументы

postIdstring ·обязательный
Идентификатор публикации PostNext из результатов запроса списка.
contentstring ·необязательный
Текст публикации (1-2200 символов).
mediaUrlsarray<string> ·необязательный
До 10 URL-адресов изображений или видео.
clientRequestIdstring ·необязательный
Необязательный ключ идемпотентности. Одинаковый ключ в течение 5 минут возвращает кэшированный результат.

Возвращает

Объект с обновлённым черновиком: {id, platform, content, mediaUrls, status, updatedAt}.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":6,
 "params":{"name":"update_post_draft",
           "arguments":{"postId":"",
                        "content":"Updated copy"}}}

connect_channel

Генерация одноразового URL, который пользователь может открыть для авторизации подключения новой платформы.

Аргументы

platformenum ·обязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.

Возвращает

Объект с authUrl (одноразовая ссылка, которую пользователь открывает для авторизации), expiresAt и platform.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":7,
 "params":{"name":"connect_channel",
           "arguments":{"platform":"linkedin"}}}

schedule_post

Перемещает черновик (статус DRAFT) в очередь публикации BullMQ на будущий timestamp. Идемпотентен в пределах дрейфа ±60 секунд; отклоняет попытки перепланирования на другое время без явной отмены.

Аргументы

postIdstring ·обязательный
Идентификатор публикации PostNext из результатов запроса списка.
scheduledAtstring (ISO 8601) ·обязательный
ISO 8601 timestamp; не может быть более чем на 5 минут в прошлом.

Возвращает

Объект с postId, scheduledAt (ISO), status: SCHEDULED.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":8,
 "params":{"name":"schedule_post",
           "arguments":{"postId":"",
                        "scheduledAt":"2026-05-10T09:00:00Z"}}}

cancel_scheduled_post

Отменяет запланированный пост и удаляет его из очереди публикации. Базовый черновик сохраняется.

Аргументы

postIdstring ·обязательный
Идентификатор публикации PostNext из результатов запроса списка.

Возвращает

Объект с postId и status: CANCELLED.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":9,
 "params":{"name":"cancel_scheduled_post",
           "arguments":{"postId":""}}}

delete_draft

Окончательно удаляет черновик. Отклоняет посты не в статусе DRAFT (используйте cancel_scheduled_post для SCHEDULED).

Аргументы

postIdstring ·обязательный
Идентификатор публикации PostNext из результатов запроса списка.

Возвращает

Объект с postId и deleted: true.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":10,
 "params":{"name":"delete_draft",
           "arguments":{"postId":""}}}

get_post

Возвращает полный PostGroup для postId с контентом по платформам + статус + timestamps.

Аргументы

postIdstring ·обязательный
Идентификатор публикации PostNext из результатов запроса списка.

Возвращает

Объект с postId, status, scheduledAt, createdAt, updatedAt и providers (карта платформа → контент).

Пример

{"jsonrpc":"2.0","method":"tools/call","id":11,
 "params":{"name":"get_post",
           "arguments":{"postId":""}}}

search_posts

Подстрочный поиск (без учёта регистра) по контенту постов активной команды. Фильтры: status, platform, limit (1-100, по умолчанию 20).

Аргументы

querystring ·обязательный
Подстрока для поиска (3-200 символов; regex-метасимволы экранируются).
statusenum ·необязательный
Опционально: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·необязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
limitnumber ·необязательный · default 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).

Возвращает

Объект с posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. Snippet содержит совпадающий контекст с многоточием с обеих сторон.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":12,
 "params":{"name":"search_posts",
           "arguments":{"query":"launch","limit":10}}}

list_teams

Возвращает команды, которыми владеет или администрирует аутентифицированный пользователь, с пометкой активной команды.

Аргументы

Без аргументов.

Возвращает

Объект с currentTeamId и teams: [{teamId, teamName, isCurrent}].

Пример

{"jsonrpc":"2.0","method":"tools/call","id":13,
 "params":{"name":"list_teams","arguments":{}}}

set_current_team

Переключает активную команду для этого Bearer-токена. Пользователь должен быть участником. Сохраняется в OAuth-токене; in-session-мутация делает эффект немедленным для последующих инструментов в той же беседе.

Аргументы

teamIdstring ·обязательный
Целевой teamId из list_teams. Членство повторно проверяется на сервере.

Возвращает

Объект с teamId, teamName, persisted (true для OAuth, false для API-ключа) и опциональным note.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":14,
 "params":{"name":"set_current_team",
           "arguments":{"teamId":"team_xxxxx"}}}

get_plan_limits

Возвращает текущий тариф пользователя и квоты по тарифу (каналы, хранилище, AI-кредиты, публикация). Доступен на любом плане. Полезен перед изменяющими инструментами, чтобы предсказать, будет ли вызов заблокирован.

Аргументы

Без аргументов.

Возвращает

Объект с tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts каждое как {limit, current, exceeded} или {limit, allowed}) и creditsAvailable ({total, subscriptionRemaining, purchasedBalance} или null).

Пример

{"jsonrpc":"2.0","method":"tools/call","id":15,
 "params":{"name":"get_plan_limits","arguments":{}}}

get_post_metrics

Получает метрики вовлечённости для опубликованного поста по каждой платформе, на которую он был отправлен. Twitter и Instagram возвращают заполненные метрики (лайки, ретвиты/репосты, комментарии/ответы, показы); LinkedIn, Threads и TikTok возвращают только статус публикации и URL (сбор метрик вовлечённости отложен на более поздний релиз). Нормализованный сводный totals суммирует лайки/комментарии/репосты/показы по тем платформам, которые сообщили данные.

Аргументы

postId Идентификатор публикации PostNext из результатов запроса списка.

Возвращает

Объект с postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] и totals: {likes, comments, shares, impressions}. metrics представляет собой объект числовых счётчиков по платформе или null, если платформа пока не собирает данные вовлечённости.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":16,
 "params":{"name":"get_post_metrics",
           "arguments":{"postId":""}}}

get_publish_status

Диагностирует запланированную публикацию: статус очереди, успех/ошибка по платформам, время обработки и jobId воркера. Возвращает isScheduled=false для публикаций, которые существуют как черновики, но не были перемещены в очередь публикации, с подсказкой на schedule_post.

Аргументы

postId Идентификатор публикации PostNext из результатов запроса списка.

Возвращает

Объект с postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError и results: [{platform, success, publishedPostId, publishedAt, error}]. Содержит hint, когда isScheduled равно false.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":17,
 "params":{"name":"get_publish_status",
           "arguments":{"postId":""}}}

update_brand_profile

Обновляет активный профиль бренда пользователя. Разрешённые поля: bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Всё остальное молча отбрасывается. Разрешает "активный" сначала как дефолт команды, затем как первый активный профиль пользователя.

Аргументы

brandVoice Массив дескрипторов голоса бренда (например, ["профессиональный", "краткий"]).

Other patchable fields: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Возвращает

Объект с profileId, name, updated: [имена полей, которые были изменены] и текущими значениями bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize после изменения.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":18,
 "params":{"name":"update_brand_profile",
           "arguments":{"brandVoice":["professional","concise"]}}}

get_best_time_to_post Платный план

Рекомендует лучшие N слотов (деньНедели, час) для следующей публикации на платформе, отсортированные по вовлечённости на пост за последние 90 дней. Twitter и Instagram возвращают взвешенные по вовлечённости оценки; LinkedIn, Threads, TikTok сортируют только по частоте. Время в указанной IANA-таймзоне (по умолчанию UTC). Требуется платный план.

Аргументы

platform Социальная платформа: twitter, instagram, linkedin, threads или tiktok.

timezone Название IANA-таймзоны (например, Europe/Moscow, America/New_York). По умолчанию UTC.

topN Количество рекомендаций слотов (1-24, по умолчанию 5).

Возвращает

Объект с platform, timezone, sampleWindowDays, sampleSize, metricsAvailable и recommendations: [{dayOfWeek (1-7, Пн=1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Содержит hint для случаев cold-start или недоступных метрик.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":19,
 "params":{"name":"get_best_time_to_post",
           "arguments":{"platform":"twitter","timezone":"Europe/Berlin","topN":5}}}

get_channel_analytics

Сводная статистика одного подключённого канала или сразу всех. Возвращает показы, охват, лайки, комментарии и вовлечённость за период, изменение к предыдущему периоду такой же длины и динамику подписчиков. Без platform приходит итог по всей команде. Для одной публикации используйте get_post_metrics, для планирования — get_best_time_to_post.

Аргументы

platform Социальная платформа: twitter, instagram, linkedin, threads или tiktok.

channelName Какой подключённый аккаунт, если на площадке их несколько.

period Период отчёта: 7d, 30d, 90d или all (по умолчанию 30d).

Возвращает

Объект с scope, period, totals, vsPrevious, coverage, dataThrough и followers, где есть trackingSince, current, change и сам ряд.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":34,
 "params":{"name":"get_channel_analytics",
           "arguments":{"platform":"linkedin","period":"30d"}}}

search_tools

Ищет в каталоге инструментов MCP по тексту, категории или намерению. Возвращает категории, requiresScope, однострочные описания и теги вариантов использования, которые совпали. Доступно на любом плане (поверхность обнаружения).

Аргументы

All optional. Call with no arguments to list every available tool.

query Свободный поиск по именам, описаниям и тегам использования инструментов.

category Фильтр по одной категории: posts, accounts, analytics, brand, teams, discovery, other.

Возвращает

Объект с totalTools, matchCount, categories: [string[]] и tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Содержит hint, когда нет совпадений или нет фильтра.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":20,
 "params":{"name":"search_tools",
           "arguments":{"query":"why did my post fail"}}}

get_plan

Тариф и даты оплаты: уровень, дата продления, окончание пробного периода и признак отмены подписки в конце периода. За лимитами и расходом обращайтесь к get_plan_limits.

Аргументы

Без аргументов.

Возвращает

Объект с полями tier, tierDisplayName, isPaid, isTrial, gated, subscriptionStatus, renewsAt, trialEndsAt, cancelAtPeriodEnd, currency и upgradeUrl.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":21,
 "params":{"name":"get_plan",
           "arguments":{}}}

upload_asset

Загрузка изображения или видео в медиатеку прямо в base64. Надёжно работает только для очень маленьких файлов, примерно до 8 КБ: всё, что больше, молча обрезается в аргументах инструмента и сохраняется повреждённым. Для файлов побольше используйте request_asset_upload.

Аргументы

filename Имя файла вместе с расширением, до 255 символов.

contentType MIME-тип файла из разрешённого списка изображений и видео.

base64 Содержимое файла в кодировке base64. Держите его очень маленьким и сначала прочитайте предупреждение выше.

Возвращает

Объект с assetId, url, sizeBytes и mimeType. Передайте url в create_post_draft как mediaUrls.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":22,
 "params":{"name":"upload_asset",
           "arguments":{"filename":"logo.png","contentType":"image/png","base64":"iVBORw0KGgo..."}}}

request_asset_upload

Рекомендуемый способ загрузки, для изображений и видео любого размера. Два шага: вызываете инструмент и получаете подписанную ссылку и готовую команду curl, затем отправляете файл методом PUT по этой ссылке. В ответе на PUT приходит итоговый адрес файла.

Аргументы

filename Имя файла вместе с расширением, до 255 символов.

contentType MIME-тип файла из разрешённого списка изображений и видео.

sizeBytes Точный размер файла в байтах, нужен для подписи загрузки.

Возвращает

Объект с uploadId, uploadUrl, uploadToken, expiresInSeconds и instructions, где лежит точная команда PUT.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":23,
 "params":{"name":"request_asset_upload",
           "arguments":{"filename":"clip.mp4","contentType":"video/mp4","sizeBytes":4194304}}}

get_latest_blog_post

Подключён ли у команды блог на WordPress, плюс фрагмент самой свежей записи. Только чтение, кредиты не расходуются. Вызывайте перед create_blog_plan или test_blog_connection, чтобы увидеть, что уже настроено.

Аргументы

Без аргументов.

Возвращает

Объект с blogConnected, сводкой по интеграции без учётных данных и latestPost с заголовком, фрагментом, статусом и адресом публикации.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":24,
 "params":{"name":"get_latest_blog_post",
           "arguments":{}}}

list_blog_plans

Список планов для блога, начиная с самых новых, со статусом, числом тем по статусам, зарезервированными кредитами и ссылкой в панель. Только чтение, кредиты не расходуются.

Аргументы

limit Максимум планов в ответе (1-50, по умолчанию 20).

status Фильтр по статусу: generating, active, paused, completed, cancelled или failed.

Возвращает

Объект с plans и total. У каждого плана есть id, статус, число тем и ссылка в панель.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":25,
 "params":{"name":"list_blog_plans",
           "arguments":{"status":"active","limit":10}}}

create_blog_plan Платный план

Создаёт контент-план для блога по профилю бренда. Темы генерируются асинхронно, поэтому план возвращается сразу со статусом generating: следите за ходом через list_blog_plans. На тарифах Business и Teams записи ещё и создаются и публикуются в подключённом блоге WordPress.

Аргументы

startDate Первый день, который охватывает план, в формате YYYY-MM-DD.

planDays Сколько дней охватывает план (1-30, по умолчанию 7).

brandProfileId Профиль бренда, для которого строится план. По умолчанию активный профиль команды.

integrationId Какой подключённый блог использовать, если у команды их несколько.

autoPublish Автоматически публиковать созданные записи в подключённом блоге (Business и Teams).

Возвращает

Объект с planId, status, startDate, planDays, brandProfileId, integrationId, topicCount и dashboardUrl.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":26,
 "params":{"name":"create_blog_plan",
           "arguments":{"startDate":"2026-10-01","planDays":14,"autoPublish":true}}}

test_blog_connection Платный план

Проверяет, отвечает ли подключённый блог на WordPress и действителен ли его токен, и записывает результат в интеграцию. Возвращает версию плагина и его возможности.

Аргументы

integrationId Какой подключённый блог использовать, если у команды их несколько.

Возвращает

Объект с success, message, version, capabilities, integrationId и обновлённым status.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":27,
 "params":{"name":"test_blog_connection",
           "arguments":{}}}

list_mini_sites

Список био-страниц выбранной команды с публичным адресом, статусом публикации и прогрессом настройки. Начните отсюда: все остальные инструменты для био-страницы принимают siteId из этого ответа и могут обойтись без него, когда у команды одна страница.

Аргументы

Без аргументов.

Возвращает

Объект с sites, у каждого есть id, slug, name, published, url, views и прогресс настройки.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":28,
 "params":{"name":"list_mini_sites",
           "arguments":{}}}

get_mini_site

Читает био-страницу целиком: шапку профиля, иконки соцсетей, все блоки контента, SEO-метаданные, тему и настройки авто-пина. Длинные тексты обрезаются до превью в 300 символов, учётные данные не возвращаются никогда.

Аргументы

siteId С какой био-страницей работать. Можно не указывать, если у команды она одна.

Возвращает

Объект с id, slug, published, url, header, socials, meta, theme, autoPin, campaign и массивом blocks.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":29,
 "params":{"name":"get_mini_site",
           "arguments":{}}}

get_mini_site_analytics

Как работает био-страница: просмотры, клики, лучшие ссылки, источник, устройство и страна посетителей, обращения ИИ-краулеров, а также какие опубликованные посты дали клики. Все цифры, кроме строк атрибуции, считаются за всё время, а не за период: скажите об этом, когда сообщаете результаты.

Аргументы

siteId С какой био-страницей работать. Можно не указывать, если у команды она одна.

attributionDays Окно в днях для атрибуции от поста к клику (1-90, по умолчанию 30).

Возвращает

Объект с viewsAllTime, clicksAllTime, topLinks, bySource, byDevice, byCountry, ai, attribution и attributionWindowDays.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":30,
 "params":{"name":"get_mini_site_analytics",
           "arguments":{"attributionDays":30}}}

add_mini_site_block

Добавляет блок на био-страницу: link, featured, product, event, presave, эпизод подкаста, booking, часы работы, header, text, image или gallery. Обязательные поля зависят от типа. Публичная страница меняется сразу.

Аргументы

siteId С какой био-страницей работать. Можно не указывать, если у команды она одна.

type Тип добавляемого блока, например link, product, event, hours или gallery.

... Плюс поля, свойственные этому типу блока, например url, title, price или startDate.

Возвращает

Объект с сохранённым block, новым blockCount и alreadyExisted, если такой блок уже был.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":31,
 "params":{"name":"add_mini_site_block",
           "arguments":{"type":"link","url":"https://example.com","title":"New single"}}}

update_mini_site_block

Правит существующий блок: заголовок или адрес ссылки, цену товара, дату события, часы работы или порядок вывода. Меняются только переданные поля, тип блока изменить нельзя. В ответе блок приходит в том виде, в каком сохранён, поэтому отклонённое значение видно сразу.

Аргументы

siteId С какой био-страницей работать. Можно не указывать, если у команды она одна.

blockId Id блока, как его возвращает get_mini_site.

... Плюс поля, свойственные этому типу блока, например url, title, price или startDate.

Возвращает

Объект с блоком в сохранённом виде, списком изменённых полей и списком проигнорированных.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":32,
 "params":{"name":"update_mini_site_block",
           "arguments":{"blockId":"blk_7f3a","title":"Updated title"}}}

remove_mini_site_block

Удаляет блок с био-страницы по blockId, например прошедшую дату тура или снятую с продажи ссылку на товар. Сначала вызовите get_mini_site, чтобы найти id. Публичная страница меняется сразу.

Аргументы

siteId С какой био-страницей работать. Можно не указывать, если у команды она одна.

blockId Id блока, как его возвращает get_mini_site.

Возвращает

Объект с removed, blockId и числом оставшихся блоков.

Пример

{"jsonrpc":"2.0","method":"tools/call","id":33,
 "params":{"name":"remove_mini_site_block",
           "arguments":{"blockId":"blk_7f3a"}}}

MCP-ресурсы

Ресурсы представляют собой контекст только для чтения, который клиент может получить через MCP-метод resources/read. Claude загружает их в начале каждой беседы, поэтому имеет контекст аккаунта/команды/бренда без необходимости каждый раз объяснять заново.

postnext://account/summary

E-mail и имя пользователя аккаунта (чтобы Claude мог подтвердить, с каким аккаунтом он работает), план, использованные AI-кредиты / лимит, количество черновиков, количество запланированных, подключённые каналы. Подсчёты ограничены 100 каждый для быстрой загрузки.

postnext://channels/connected

Та же форма, что и результат list_connected_accounts; экспонировано как ресурс, чтобы Claude загрузил его один раз в начале беседы (без round-trip вызова инструмента).

postnext://brand-profiles/active

Активный профиль бренда пользователя (default команды, с fallback на первый собственный профиль). Возвращает только LLM-релевантные поля: bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

postnext://teams/current

Метаданные текущей команды (teamId, teamName) плюс totalTeamsAvailable. Используйте вместе с list_teams + set_current_team для переключения.

Именованные рабочие сценарии

Команды слэш-меню, которые объединяют несколько инструментов. Выберите сценарий, и ИИ-ассистент проведёт вас через многошаговую задачу, запрашивая подтверждение перед каждым изменением.

/weekly-plan

Анализирует профиль бренда, подключённые каналы и очередь публикаций, затем предлагает 5-10 черновиков, распределённых с понедельника по пятницу.

/draft-thread

Создаёт тред из 5-10 постов для Twitter или Threads по заданной теме или ссылке в голосе вашего бренда.

/audit-queue

Проверяет запланированные публикации на ближайшие 7 дней и отмечает дубликаты, перегруз платформ и пробелы в расписании.

/channel-sweep

Сравнивает подключённые каналы с поддерживаемым набором и предлагает, какие из них стоит подключить или обновить.

Endpoint-ы discovery и OAuth

Метаданные по стандартам, чтобы любой MCP-клиент мог настроиться автоматически.

  • GET /.well-known/oauth-protected-resource/api — RFC 9728
  • GET /.well-known/oauth-authorization-server — RFC 8414
  • GET /oauth/.well-known/openid-configuration — OIDC
  • POST /oauth/reg — Dynamic Client Registration (RFC 7591)
  • GET /oauth/auth — Authorize (PKCE-S256 required)
  • POST /oauth/token — Token exchange

Открытый исходный код

Готовые рецепты и справочник для разработчиков размещены в нашем публичном репозитории документации. Лицензия MIT; pull-запросы приветствуются. github.com/postnextio/postnext-mcp

Управляйте соцканалами из любого AI-ассистента

Планируйте, создавайте, расписывайте и проверяйте публикации на 7 платформах через диалог с Claude, ChatGPT или Cursor. Одно безопасное подключение, все возможности PostNext.

×